2015-07-04 258 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