解决XACML策略冲突

时间:2015-07-04 15:00:45

标签: authorization access-control xacml abac

XACML如何处理政策冲突?如果PAP(策略管理点)在两个<policy>文件中包含两个不同的policy.xml元素,其中两个策略具有相同的Target,哪一个将被评估?这两个策略都在<policy>的不同文件中自包含。

如果<policy>元素都位于<PolicySet>内,则会使用PolicyCombiningAlgId。但是,它们存在时,它们是如何解决XACML引擎处理这个问题的呢?

1 个答案:

答案 0 :(得分:2)

(注意:我清理了你的问题,因为你有很多XACML不准确)。

有两种方法可以解决XACML中的冲突。这些是:

  • 策略组合算法。它们在PolicySet元素中设置,用于组合PolicySet子项的结果(Policy和PolicySet元素的混合)。
  • 规则组合算法。这些设置在内部策略元素用于组合规则子项的结果。

您的问题最具体地与您使用多个策略配置策略决策点(PDP)(而不是您编写的PAP)的情况有关。哪一个获胜?由于它们都没有被包裹,因此没有任何组合算法可供选择。此行为未在XACML标准中定义,并且取决于您使用的XACML引擎。

例如,Axiomatics XACML引擎强制您始终选择根策略(集),即引擎将其视为其入口点的策略(集)。只有在根策略引用它们时,才会使用传递给PDP的任何其他策略。

如果您想了解有关组合算法的更多信息,请查看我最近写的blog post