XACML:如何在多头列表中查找多头(列表包含)

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

我正在尝试检查XACML策略。我在主题(urn:ch:xxxx:attribute:subject:1.0:participantid)中有一个很长的内容,希望在一个longs列表中找到(urn:ch:xxxx:attribute:resource:1.0: participantids)在我的资源上下文中。我正在尝试使用功能integer-is-in

我到目前为止已经尝试过:

<Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:integer-is-in">
  <SubjectAttributeDesignator AttributeId="urn:ch:xxxx:attribute:subject:1.0:participantid" DataType="http://www.w3.org/2001/XMLSchema#long" />
  <ResourceAttributeDesignator AttributeId="urn:ch:xxxx:attribute:resource:1.0:participantids" DataType="http://www.w3.org/2001/XMLSchema#long" />
</Apply>

我已经对此进行了测试,并且效果很好。

<Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:integer-is-in">
  <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#long">9000501</AttributeValue>
  <ResourceAttributeDesignator AttributeId="urn:ch:xxxx:attribute:resource:1.0:participantids" DataType="http://www.w3.org/2001/XMLSchema#long" />
</Apply>

所以我应该如何传递主题属性,使其起作用?还是函数integer-is-in是错误的方式?

问候

克里斯蒂亚诺

xacml xacml3
1个回答
0
投票
AttributeDesignator在XACML中被视为

bag,换句话说,它是多值。因此,在应用integer-is-in之前,必须在其上应用integer-one-and-only函数,因为integer-is-in首先需要单个值(例如AttributeValue)。论点。

此外,

integer-is-in

integer-one-and-only函数仅与XACML标准中的integer数据类型(来自XML模式)一起使用,而不与long 。因此,您的第二个示例运作良好告诉我您的XACML实现并非100%兼容XACML。最后,您在这里使用XACML 2.0语法,我强烈建议您升级到通常为fixes and enhances XACML的XACML 3.0。在XACML 3.0中,修复程序将如下所示:

<Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:integer-is-in"> <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:integer-one-and-only"> <AttributeDesignator AttributeId="urn:ch:xxxx:attribute:subject:1.0:participantid" Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject" DataType="http://www.w3.org/2001/XMLSchema#integer" MustBePresent="false" /> </Apply> <AttributeDesignator AttributeId="urn:ch:xxxx:attribute:resource:1.0:participantids" Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" DataType="http://www.w3.org/2001/XMLSchema#integer" MustBePresent="false" /> </Apply>

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