2.5.1.6 元素<ProxyRestriction>
本博客采用知识共享署名 4.0 国际许可协议进行许可
元素<ProxyRestriction>指定断言方对“希望随后自己充当断言方并根据原始断言中包含的信息发布自己的断言的”依赖方施加的限制。作为断言方的依赖方不得基于包含<ProxyRestriction>元素的断言发布一个其本身都违反<ProxyRestriction>元素中指定的条件限制的断言。
Count [可选]
指定断言方允许在此断言与最终基于此断言发布的断言之间存在的最大代理数量。
<Audience> [零个或多个]
指定断言方允许将基于此断言生成的新断言发布给哪些受众集合。
义臻注:在存在代理的场景中,限制代理的最大层数(Count),以及代理可以是哪些中间人(Audience)。
当Count的值为0时,代表依赖方不能基于收到的断言向另一个依赖方发布断言。如果Count的值大于0,代表任何通过代理方式发布的断言,其本身必须包含一个<ProxyRestriction>元素,并且其Count属性值最多比原值小一。
义臻注:原因是如果减少大于一个,会造成上游的断言中指定的值不成立。
如果没有指定<Audience>元素,则不会对可以向其发出后续断言的依赖方施加任何限制。否则,任何通过此方式发布的断言,其必须包含一个<AudienceRestriction>元素,并且该元素中至少包含一个在之前的<ProxyRestriction>元素中出现过的<Audience>元素,并且不会包含在之前的<ProxyRestriction>元素中没有出现过的<Audience>元素。
SAML授权机构不能在一个断言的一个<Conditions>元素中包含超过一个的<ProxyRestriction>元素。
义臻注:SAML授权机构的英文是SAML authority,指的是生成并发布断言的一方。
当评估<Conditions>元素的有效性时,可以认为<ProxyRestriction>元素总是有效的。也就是说,<ProxyRestriction>元素不影响<Conditions>元素的合法性,而仅仅是一个使用条件。
下列的schema片段定义了<ProxyRestriction>元素以及它的ProxyRestrictionType
复杂类型:
<element name="ProxyRestriction" type="saml:ProxyRestrictionType"/>
<complexType name="ProxyRestrictionType">
<complexContent>
<extension base="saml:ConditionAbstractType">
<sequence>
<element ref="saml:Audience" minOccurs="0"
maxOccurs="unbounded"/>
</sequence>
<attribute name="Count" type="nonNegativeInteger" use="optional"/>
</extension>
</complexContent>
</complexType>
Last updated
Was this helpful?