2015-07-04 202 views
1

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

如果两个<policy>元素都在<PolicySet>之内,它将使用PolicyCombiningAlgId。但是,因为它们存在隔离,XACML引擎如何处理这个问题?

回答

2

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

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

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

您的问题最具体地涉及您使用多种策略配置策略决策点(PDP)(而不是您写的PAP)的情况。哪一个胜利?由于它们都没有被包装,所以没有任何组合算法可供选择。此行为未在XACML标准中定义,并将取决于您使用的XACML引擎。例如,XACML引擎迫使您始终选择一个根策略(set),即引擎将视为其入口点的策略(set)。传递给PDP的任何其他策略只有在根策略引用它时才会使用。

如果你想了解更多关于组合算法,请看看我最近写的这个blog post