我是 xacml 的新手,我正在尝试了解 PDP 在实践中如何评估依赖于多个 PIP 的政策。举个例子吧:
想象一下,乔什可以扮演
Scrum Master
的角色,但也可以扮演 Business Analyst
的角色。公司内部敏捷角色的所有记录都存储在db1(PIP1)中,而业务角色的所有记录都存储在db2(PIP2)中。
假设创建了以下策略:
首先,PEP 收到 Josh 的请求,要求执行特定操作(例如编辑销售记录)。
问题是:当 PDP 从多个 PIP 获取属性后才需要做出决定时,如何评估请求?此评估位于哪个组件?
当输入可能来自多个 PIP 时,我不太明白在评估策略(规则)时将逻辑放在哪里/如何放置。
TL;博士;你不需要担心它。
长答案:在ABAC和XACML中,策略不知道(也不关心)属性值来自哪里。 Josh 是 BA 还是 SM 才是最重要的。价值的来源不是(通常)。该流程在大多数 PDP 实现中的工作方式(我工作的 Axiomatics 就是这种情况)是:
Can Josh edit sales record #123?
agile role
值以及 business role
值。它将按照先到先得的原则从配置的 PIP 中检索属性值。当然,您也可以为这两个角色使用相同的属性。因此,您只需拥有 role
,而不是敏捷和业务角色。并且让 2 个或更多 PIP 解析/查找相同属性是完全可以接受的。就这么简单。 PDP 如何调用 PIP 是特定于实现的,您通常不必关心这一点。