我正在阅读XACML标准,我看到了这些元素,但文档非常技术性,我找不到关于这些元素的示例。
元素CombinerParameters
和CombinerParameter
在XACML中起什么作用?
谢谢。
背景
XACML(XACML)核心规范由OASIS定义,可以在此处找到。XACML是一种实现基于属性的访问控制(abac)的语言。
规范定义:
- 架构
- 政策语言
- 一种发送授权请求和接收授权响应的方式
语言元素-组合器参数
你的问题与语言本身有关。该语言包含许多不同的元素:
- CombinaterParameter(此处定义)
- CombinaterParameters(此处定义)
组合器参数与组合算法一起使用。
什么是组合算法
当policyset
或policy
元素包含多个子元素时,这些子元素可能会发生冲突。例如,一个策略可能包含以下规则:
- 经理可以查看其部门中的文档
- 经理无法查看机密文档
这两条规则相互冲突。哪一个获胜?这就是组合算法的步骤(规范定义|博客文章|维基百科)。组合算法有助于确定哪些策略和规则获胜。例如,拒绝覆盖使拒绝决策胜过许可决策。
XACML中的组合算法可以具有组合器参数来影响它们的工作方式请注意,规范中定义的默认组合算法都不使用组合器参数如果您愿意,您可以实现一个自定义的组合算法,该算法将使用组合器参数。
详细的组合器参数
第一个元素包含下文定义的任何数量的第二个元素:
<xs:element name="CombinerParameters" type="xacml:CombinerParametersType"/>
<xs:complexType name="CombinerParametersType">
<xs:sequence>
<xs:element ref="xacml:CombinerParameter" minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
第二个元素定义如下
<xs:element name="CombinerParameter" type="xacml:CombinerParameterType"/>
<xs:complexType name="CombinerParameterType">
<xs:sequence>
<xs:element ref="xacml:AttributeValue"/>
</xs:sequence>
<xs:attribute name="ParameterName" type="xs:string" use="required"/>
</xs:complexType>
它包含:
- 属性值序列
- 参数名称,例如CCD_ 5
属性值由以下部分组成:
- 一个值,例如
Chicago
- 数据类型,例如
http://www.w3.org/2001/XMLSchema#string
XML中的一个示例属性值如下所示:
<AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">Chicago</AttributeValue>
换句话说,组合器参数为:
- 标识符,例如位置
- 一个值由值本身(例如"Chicago")和数据类型(例如字符串)组成