gpt4 book ai didi

authorization - XACML PEP 如何与上下文交互?

转载 作者:行者123 更新时间:2023-12-04 18:19:56 28 4
gpt4 key购买 nike

我的问题与 XACML 上下文处理程序的角色和目的有关。如果我正确理解 OASIS XACML3.0 规范,PEP 会拦截来自客户端应用程序的对某些资源或访问的请求,然后使用上下文处理程序创建适合 PDP 处理的 native XACML 上下文对象。在我的设计中,我将上下文处理程序作为一个全局类,其中包含创建请求对象和解析 xml 结果的方法。我设想这个类看起来像这样:

public static class ContextHandler
{
public static bool CreatePolicy(PolicyType policyName)
{
// Serialize PolicyType to xml document

}

public static PolicyType LoadPolicy(string policyName)
{
// 1. Load policy from db, filesystem...
// 2. Hydrate/deserialize into XACML policy object
// 3. Return PolicyType object
}

public static RequestType BuildRequest(
Dictionary<string, string> subjects,
Dictionary<string, string> resources,
Dictionary<string, string> actions,
Dictionary<string, string> environment)
{
// 1. Create AttributesType collection, populate with subjects, resource...
// 2. Populate RequestType object
// 3. Return Request

}
}

对象 RequestType , AttributesType和其他是 XACML 上下文的一部分。

这是上下文处理程序类的正确方法还是我完全错过了上下文处理程序的要点?

非常感谢!

最佳答案

在完整的 XACML 2.0/3.0 实现中,所有授权过程的真正中心节点或瓶颈是 Context Handler 组件,既不是 PEP,也不是 PDP。 official documentation 中建议的数据流清楚地表明了这一点。

所以,我认为第一个问题是“为了简单起见,将 Context Handler 组件粘贴到另一个组件中是一种好方法吗?”是的。然后“如果是,最好的地方是 PEP 还是 PDP?”好吧,它认为这取决于您自己的实际情况。

在一般的简单场景中,例如当您不需要 PIP 时,我建议像您一样将上下文处理程序粘贴在 PEP 域中。这有很多原因:

  • 你可能有很多 PEP,而不仅仅是一个,所以你应该实现 PEP 和 PDP 之间的解耦
  • 每个 PEP 都知道自己特定的授权请求规范,因此它能够将本地请求转换为标准 XACML 请求,反之亦然
  • 您获得一个不受特定 PEP 逻辑、PEP 依赖项(即第三方库)和 PEP 代码管理(即授权请求规范的更改、错误修复、新部署等)影响的中央和标准 PDP

  • 在更复杂的场景中,您的授权请求可能不包含 PDP 做出决定所需的所有信息。在这种情况下,PDP 将需要向 Context Handler 请求这些信息,并且 Context Handler 必须能够访问 PIP 组件以检索那些用户-资源-环境值。因为 PIP 通常访问中心化的资源,所以它通常是一个中心化的服务。 PDP 通常也是一种集中式服务,因此 PDP 和 PIP 通常在同一个域中。

    在这种情况下,您可能很想将上下文处理程序粘贴到 PDP 组件中。但是如果你这样做了,你将需要处理其他问题,因为你在简单的场景中失去了解耦和上面列出的所有特性。此外,按照 XACML 规范,我希望标准 PDP 能够通过 XACML 消息进行对话,但是,如果您将 Context Handler 直接放在那里,PDP 就会真正开始使用 PEP 本地语言。

    关于authorization - XACML PEP 如何与上下文交互?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10882723/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com