3.3.2.3 元素<AttributeQuery>

本博客采用知识共享署名 4.0 国际许可协议进行许可

<AttributeQuery>元素用来进行查询“返回此主体的指定属性”。在策略允许的范围内,成功的响应将会以包含属性声明的断言的格式返回。此元素是AttributeQueryType类型,该类型继承自SubjectQueryAbstractType类型,并且额外增加了以下元素:

  • <saml:Attribute> [任意数量]

每一个<saml:Attribute>元素都指定一个需要被返回的属性。如果没有指定具体的属性,则表示任何被策略所允许的属性都要返回。如果一个<saml:Attribute>元素包含了一个或多个<saml:AttributeValue>元素,那么,如果在响应中返回该属性,它不能包含任何与查询中指定的值不相等的值。在特定配置文件或属性所指定的相等规则不存在的情况下,相等被定义为值的相同的XML表示。关于<saml:Attribute>元素更多的信息,可以参考2.7.3.1章节。

单个的查询一定不能包含两个有相同的NameNameFormat值的<saml:Attribute>元素(即,给定的属性在一个查询中只能被命名一次)。

作为对属性查询的响应,SAML机构返回具有如下属性声明的断言:

  • 第3.3.4节中给出的与查询的<Subject>元素匹配的规则确定了哪些断言会被返回。

  • 如果查询中存在任何<Attribute>元素,那么它们会约束/过滤所返回的属性以及可选的返回值,如上所述。

  • 被返回的属性和值可能也会受到特定应用的策略考量的约束。

第二级状态码urn:oasis:names:tc:SAML:2.0:status:UnknownAttrProfileurn:oasis:names:tc:SAML:2.0:status:InvalidAttrNameOrValue可能被用来说明查询中属性或值信息解释相关的问题。

下列的schema片段定义了<AttributeQuery>元素和它的 AttributeQueryType复杂类型:

<element name="AttributeQuery" type="samlp:AttributeQueryType"/>
<complexType name="AttributeQueryType">
    <complexContent>
        <extension base="samlp:SubjectQueryAbstractType">
            <sequence>
                <element ref="saml:Attribute" minOccurs="0" maxOccurs="unbounded"/>
            </sequence>
        </extension>
    </complexContent>
</complexType>

Last updated

Was this helpful?