需要根据不同PiP进行评估的XACML策略

问题描述 投票:0回答:1

我是 的新手,我正在尝试了解 PDP 在实践中如何评估依赖于多个 PIP 的政策。举个例子吧:

想象一下,乔什可以扮演

Scrum Master
的角色,但也可以扮演
Business Analyst
的角色。公司内部敏捷角色的所有记录都存储在db1(PIP1)中,而业务角色的所有记录都存储在db2(PIP2)中。

假设创建了以下策略:

  • 只有业务分析师可以编辑销售记录
  • 只有 Scrum Master 可以导出销售记录

首先,PEP 收到 Josh 的请求,要求执行特定操作(例如编辑销售记录)。

问题是:当 PDP 从多个 PIP 获取属性后才需要做出决定时,如何评估请求?此评估位于哪个组件?

当输入可能来自多个 PIP 时,我不太明白在评估策略(规则)时将逻辑放在哪里/如何放置。

authorization xacml abac alfa
1个回答
0
投票

TL;博士;你不需要担心它。

长答案:在ABAC和XACML中,策略不知道(也不关心)属性值来自哪里。 Josh 是 BA 还是 SM 才是最重要的。价值的来源不是(通常)。该流程在大多数 PDP 实现中的工作方式(我工作的 Axiomatics 就是这种情况)是:

  • PEP 发送请求:
    Can Josh edit sales record #123?
  • PDP 研究政策并意识到它需要
    agile role
    值以及
    business role
    值。它将按照先到先得的原则从配置的 PIP 中检索属性值。当然,您也可以为这两个角色使用相同的属性。因此,您只需拥有
    role
    ,而不是敏捷和业务角色。并且让 2 个或更多 PIP 解析/查找相同属性是完全可以接受的。
  • PDP 调用 PIP 1 并检索 Josh 的敏捷角色。乔什是一名业务分析师,因此允许访问。

就这么简单。 PDP 如何调用 PIP 是特定于实现的,您通常不必关心这一点。

© www.soinside.com 2019 - 2024. All rights reserved.