【问题标题】:Dynamic root policyset for multi-tenancy using Authzforce Core使用 Authzforce Core 的多租户动态根策略集
【发布时间】:2020-06-15 16:16:26
【问题描述】:

我基本上想在多租户系统中使用Authzforce

现在,我有一个单一的根策略,其中包含一些指向其他策略集(每个组织)的 PolicySetIdReference 元素,但我注意到它尝试解析每个引用元素并查询数据库(我设置了我的MongoDbBasedRefProvider 的自己的版本)。我担心我会不必要地为其他组织加载所有其他策略。

<PolicySet PolicySetId="ROOT" ....>
    <PolicySetIdReference>ID-for-org-1</PolicySetIdReference>
    <PolicySetIdReference>ID-for-org-2</PolicySetIdReference>
</PolicySet>

我能否让根策略提供者检查某些条件(基于组织),以便我检查的策略明显更小?在上面的例子中,我只想检索ID-for-org-1的那个

【问题讨论】:

    标签: authorization access-control xacml abac authzforce


    【解决方案1】:

    对于完全多租户,我建议每个租户有一个 PDP 实例,即根据租户 (org) ID 将请求分派到特定的 PdpEngine 实例,例如通过 String-to-PdpEngine 映射或其他方式,只是一个建议。

    如果您仍想为所有租户使用相同的 PDP 引擎(即为所有租户处理策略),请确保执行所有这些操作:

    1. 在 ROOT 策略中使用 first-applicable 策略组合算法(以便评估在其中的第一个适用策略集处停止)。
    2. 确保 XACML 请求中存在租户/组织 ID 属性。
    3. 在每个组织策略集中定义一个 XACML 目标,并在此租户/组织 ID 属性上使用匹配(相等),以确保策略集仅在租户/组织 ID 匹配时应用(评估)。
    4. 在 PDP 上实现并启用 Decision Cache

    【讨论】:

      猜你喜欢
      • 2021-03-31
      • 2019-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多