我正在使用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-file是否能够使用多个policyProviders或其他方式指定?这应该不会太难,但在网上搜索了几个小时后,我还没有找到任何解决方案。
期待您的回复。
谢谢,杰克。
发布于 2019-12-27 10:16:58
对于此用例,我建议升级到AuthzForce核心14.0.0或更高版本。然后您有两个选择(注意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}/policy1.xml</policyLocation>
<policyLocation>${PARENT_DIR}/policy2.xml</policyLocation>
</policyProvider>
<rootPolicyRef>policy1</rootPolicyRef>
</pdp><?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评估开始的位置)。在这种情况下,根策略应该组合其他策略,即是具有定义的PolicyCombiningAlgId的XACML PolicySet,以及到其他策略的一个或多个PolicyIdReferences或PolicySetIdReferences。
您可以在authzforce github上找到使用通配符选项的完整示例。
此外,您还可以在XML schema中找到有关PDP配置格式(最新版本)的更多信息。
https://stackoverflow.com/questions/59472630
复制相似问题