0

我正在阅读 XACML 标准并且看到了这些元素,但是文档非常技术性,我找不到有关这些元素的示例。

XACML中的元素CombinerParametersCombinerParameter作用是什么?

谢谢。

4

1 回答 1

0

背景

XACML ( ) 核心规范由 OASIS 定义,可在此处找到。XACML 是一种实现基于属性的访问控制 ( ) 的语言。

该规范定义:

  1. 架构
  2. 政策语言
  3. 一种发送授权请求和接收授权响应的方法

语言元素 - 组合器参数

您的问题与语言本身有关。该语言包含许多不同的元素,其中:

组合器参数与组合算法一起使用。

什么是组合算法?

当一个policyset或一个policy元素包含多个子元素时,这些子元素可能会发生冲突。例如,策略可以包含以下规则:

  • 经理可以查看其部门中的文档
  • 管理人员无法查看机密文件

这 2 条规则是相互冲突的。哪一个赢了?这就是组合算法的作用(规范定义|博客文章|维基百科)。组合算法有助于确定哪些策略和规则获胜。例如,拒绝覆盖使拒绝决定胜过许可决定。

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>

它包含:

  • 一系列属性值
  • 参数名称,例如location

属性值由以下部分组成:

  • 一个值,例如Chicago
  • 数据类型,例如http://www.w3.org/2001/XMLSchema#string

XML 中的示例属性值如下所示:

<AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">Chicago</AttributeValue>

换句话说,组合器参数是:

  • 标识符,例如位置
  • 一个值组成了值本身,例如“芝加哥”和数据类型,例如字符串。
于 2016-06-01T20:09:17.243 回答