XACML 在策略中结合 PIP

XACML combining PIPs in policy

我是 XACML 体系结构的新手,如果您能帮助我解决下一个问题,我将不胜感激。

是否可以使用从一个 PIP 中提取的答案作为其他 PIP 的输入参数的方式来使用多个 PIP?

如果可以,您能否提供简单的 XML 请求示例?

提前致谢

是的,可以使用多个 PIP,将一个 PIP 解析的属性用作另一个 PIP 的输入。

基于XACML architecture,由 PDP 决定如何使用 PIP 解析属性。

它在高层次上的工作原理:

  1. 向 PDP 的输入请求(从 PEP)包含一个属性说 Subject-ID=Alice
  2. PDP 根据输入请求的属性评估 XACML 策略。例如,政策规定 permit if Action-ID=Read
  3. 由于策略中没有定义 Subject-ID,PDP 会尝试请求一个或多个 PIP 来解析 Action-ID 并向 PIP 提供它所具有的值 Subject-ID(来自输入请求)。 例如,假设我们有 2 个 PIP - PIP A 可以从 Subject-IDPIP B 解析 resource-ID 可以从 resource-ID
  4. 解析 Action-ID
  5. 在这里,PDP 首先使用 PIP A 根据 Subject-IDfrom 输入请求解析 resource-ID,然后使用 resource-ID使用 PIP B 解析 Action-ID,然后 PDP 使用它来评估策略。如果 PIP B returns Alice,你会得到 permit 的决定,否则会是 NotApplicable

请注意,这 取决于 PDP 的实现方式 以在您的用例中使用链式 PIP 解析属性。

一家名为 Axiomatics 的公司的 PDP 能够执行链式 PIP 查找。

披露:我在 Axiomatics 工作,我们提供基于 XACML 的访问控制解决方案