过去一周,我一直在尝试在policy
wso2IdendityServer 4.5.0版本中定义policyset
。
policyset
编辑器创建policyset
,但也可以添加policy
,但问题是XML格式。我生成的策略集看起来像这样(示例策略集)
<PolicySet>
<Target>
...
</Target>
<PolicyIdReference>simple1</PolicyIdReference>
</PolicySet>
问题
如果我们在<PolicyIdReference>
标记中看到,它会参考政策“simple1”。但是,我的要求不是仅使用引用名称“simple1”,而应该替换此处的完整策略正如我在一些示例中看到的那样。像这样:
<PolicySet>
<Target>
</Target>
<PolicyIdReference>urn:oasis:names:tc:xacml:2.0:example:policyid:3</PolicyIdReference>
<Policy PolicyId="urn:oasis:names:tc:xacml:2.0:example:policyid:2" RuleCombiningAlgId="urn:oasis:names:tc:xacml:1.0:rule-combining-algorithm:deny-overrides">
<Description>
Policy for any medical record in the
http://www.med.example.com/schemas/record.xsd namespace
</Description>
<Target/>
<Rule RuleId="urn:oasis:names:tc:xacml:2.0:example:ruleid:1" Effect="Permit"/>
<Rule RuleId="urn:oasis:names:tc:xacml:2.0:example:ruleid:2" Effect="Permit"/>
<Rule RuleId="urn:oasis:names:tc:xacml:2.0:example:ruleid:4" Effect="Deny"/>
</Policy>
</PolicySet>
在这里,我们可以在标记之后看到它在策略集中添加策略。
所以我的问题是wso2 IdentityServer的哪个版本创建了这种类型的策略集,它还使用了哪个版本的xacml架构版本?
谢谢和问候 Deepali Singh
答案 0 :(得分:1)
WSO2 Identity Server策略集编辑器仅允许您将策略集定义为策略ID引用。因此,选择的策略将作为参考添加。如果需要在策略集中添加已完成的策略,则可以使用XML视图编辑器执行此操作。基本上,您可以使用XML视图编辑创建的策略集,并将策略添加到其中。这不会影响PDP运行时间。两种选择都有效。 从编辑器用户界面创建策略集只是一个限制。但是我想这将会改进,以便将来从策略集编辑器UI添加完整的策略。
答案 1 :(得分:0)
您可以使用Eclipse的ALFA插件以及Axiomatics策略管理点来创建完全符合XACML 3.0的策略和策略,包括引用策略/策略集或直接按您的请求嵌入它们的选项。
也就是说,在有意义的情况下引用策略可能是一种更好的做法,因为它可以使策略生命周期变得更加简单。