【问题标题】:XACML Authzforce PDP configuration in multiple policy files多个策略文件中的 XACML Authzforce PDP 配置
【发布时间】:2019-12-24 19:06:04
【问题描述】:

我正在使用 Authzforce PDP 引擎和配置 pdp.xml 文件运行 XACML,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<pdp xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xmlns="http://authzforce.github.io/core/xmlns/pdp/6.0"
     version="6.0.0">
  <rootPolicyProvider id="rootPolicyProvider"
        xsi:type="StaticRootPolicyProvider" policyLocation="${PARENT_DIR}/policy.xml" />
</pdp>

现在,由 PDP 引擎通过 rootPolicyProvider 读取的文件 ${PARENT_DIR}/policy.xml 包含实际的 XACML 策略并且变得相当大。所以,我想将XACML策略分成多个文件policy1.xml、policy2.xml、policy3.xml等,然后这些文件需要PDP引擎读取。

有谁知道 PDP 引擎配置 xml 文件是否能够使用多个 policyProviders 或其他方式指定这一点?应该不会太难,但是我在网上搜索了几个小时还没有找到任何解决方案。

期待您的回复。

谢谢,杰克。

【问题讨论】:

    标签: authorization xacml abac pdp authzforce


    【解决方案1】:

    对于这个用例,我建议升级到 AuthzForce Core 14.0.0 或更高版本。然后你有两个选择(注意 XML 模式和命名空间已经改变了一点):

    1. 多个“policyLocation”元素,例如:
    <?xml version="1.0" encoding="UTF-8"?>
    <pdp xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://authzforce.github.io/core/xmlns/pdp/7.0" version="7.0.0">
        <policyProvider id="refPolicyprovider" xsi:type="StaticPolicyProvider">
            <policyLocation>${PARENT_DIR}/policy1.xml</policyLocation>
            <policyLocation>${PARENT_DIR}/policy2.xml</policyLocation>
        </policyProvider>
        <rootPolicyRef>policy1</rootPolicyRef>
    </pdp>
    
    1. 例如使用通配符模式作为“policyLocation”(包括所有扩展名为“.xml”的策略文件):
    <?xml version="1.0" encoding="UTF-8"?>
    <pdp xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://authzforce.github.io/core/xmlns/pdp/7.0" version="7.0.0">
        <policyProvider id="refPolicyprovider" xsi:type="StaticPolicyProvider">
            <policyLocation>${PARENT_DIR}/*.xml</policyLocation>
        </policyProvider>
        <rootPolicyRef>policy1</rootPolicyRef>
    </pdp>
    

    在这两种情况下,“rootPolicyRef”都标识了根策略(PDP 评估开始的地方)。在这种情况下,根策略应该结合其他策略,即是一个 XACML PolicySet,其中定义了 PolicyCombiningAlgId 和一个或多个 PolicyIdReferences 或 PolicySetIdReferences 到其他策略。

    您可以在authzforce github 上找到使用通配符选项的完整示例。

    您还可以在XML schema 中找到有关 PDP 配置格式(最新版本)的更多信息。

    【讨论】:

    • 非常感谢西里尔,我会深入研究并尝试一下!最好的,杰克
    • 如果它适合你,请accept the answer
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-17
    • 2017-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多