2.5.1.4 元素<AudienceRestriction>和<Audience>

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

<AudienceRestriction>元素指定了断言是针对哪些特定受众的,这些特定的受众通过<Audience>元素来标识。尽管目标受众之外的SAML依赖方能够从断言中得出结论,但是断言方明确地并不会对此类依赖方就准确性或可信度问题作出任何描述。它包括了下列的元素:

  • <Audience>

一个标识目标受众的URI引用。该URI引用可以标识一个描述受众成员资格和条件的文档。也可以包含唯一URI标识符,该标识符来自于一个描述系统实体的SAML名称标识符(参见8.3.6章节)。

译者(义臻)注:Audience的值可以用来标识一个文档,也可以用来标识一个SAML系统实体,比如SAML依赖方的标识符。

当且仅当SAML依赖方是指定的Audience列表中的一个或多个成员时,才可以将AudienceRestriction条件评估为是有效的。

SAML断言方不能阻止接受方根据所提供的信息采取行动。但是,<AudienceRestriction>元素允许SAML断言方明确声明不以机器和人类可读的形式向该接收方提供任何担保。虽然不能保证法院在任何情况下都会支持这种担保排除,但支持担保排除的可能性大大提高。

译者(义臻)注:上面的话可以理解为,SAML断言方控制不了依赖方。因此,SAML断言方在发布断言的时候就把丑话说前头,不论依赖方做什么都与断言方无关。

注意在一个断言中可能存在多个<AudienceRestriction>元素,每一个都必须被独立评估。这个要求以及之前的定义的效果是,在一个给定的条件下,多个<Audience>元素之间是OR的关系,多个<AudienceRestriction>元素之间是AND的关系。

译者(义臻)注:当条件中存在多个<AudienceRestriction>元素时,必须要求每个<AudienceRestriction>元素都是有效的。当一个<AudienceRestriction>元素中存在多个<Audience>时,满足其中的一个及以上就可以了。

下列的schema片段定义了<AudienceRestriction>元素以及它的AudienceRestrictionType复杂类型。

<element name="AudienceRestriction" type="saml:AudienceRestrictionType"/>
<complexType name="AudienceRestrictionType">
    <complexContent>
        <extension base="saml:ConditionAbstractType">
            <sequence>
                <element ref="saml:Audience" maxOccurs="unbounded"/>
            </sequence>
        </extension>
    </complexContent>
</complexType>
<element name="Audience" type="anyURI"/>

Last updated

Was this helpful?