1

在实现 ABAC/XACML 时,规范表明您应该使用 PEP 拦截对敏感数据的请求,PEP 将请求路由到 PDP(在调用 PDP 时,PEP 包括有关主题、环境、资源和操作的属性)。

然后,PDP 确定需要为访问决策评估哪些规则。

来自维基百科: https ://en.wikipedia.org/wiki/XACML

XACML 提供了一个目标,[5] 它基本上是一组针对主题、资源和操作的简化条件,策略集、策略或规则必须满足这些条件才能应用于给定请求。一旦发现策略或策略集适用于给定请求,就会评估其规则以确定访问决策和响应。

策略集、策略和规则都可以包含目标元素。

我的理解是,PDP 如何决定 PIP 中的哪些规则适用是特定于实现的,但这似乎是流程中非常重要的部分——例如,如果您错过了一条规则,您将无法正确评估请求。人们以什么方式实现了这一点?什么有效,什么无效?(我不情愿地倾向于针对 EAV 表进行查找。)

4

1 回答 1

1

您始终使用一组策略配置 PDP。您可以为 PDP 提供任意数量的策略和策略集(策略组),但您必须指定入口点,即必须有根策略。然后,该根策略可能包含和/或链接到其他策略(或策略集)。

PDP 根据来自 PEP 的传入请求单独决定调用和评估哪些策略。PEP 不知道有多少政策。您不会错过您在问题中陈述的规则。PDP 有责任不这样做。您通常不会实现自己的 PDP。你会使用现成的。有几个开源引擎,例如 SunXACML 和商业替代品,例如 Axiomatics。

PIP 用于属性值检索,而不是用于策略检索。

XACML 策略的示例表示

于 2016-04-27T10:03:00.407 回答