通读 SAML 2.0 的核心规范第 2.5.1.4 节(第 23 页)后,我仍然无法完全理解 AudienceRestriction 标签的用途以及它试图纠正的问题。
我对 AudienceRestriction 标签的可能不正确的解释是,它促进了一种意图声明,即声明给定断言对于 SP 的哪个特定 URI 是有效的。
如果有人能解释(a)标签的目的和(b)典型的用例场景和(c)它的排除和/或滥用的任何潜在影响,将不胜感激。
通读 SAML 2.0 的核心规范第 2.5.1.4 节(第 23 页)后,我仍然无法完全理解 AudienceRestriction 标签的用途以及它试图纠正的问题。
我对 AudienceRestriction 标签的可能不正确的解释是,它促进了一种意图声明,即声明给定断言对于 SP 的哪个特定 URI 是有效的。
如果有人能解释(a)标签的目的和(b)典型的用例场景和(c)它的排除和/或滥用的任何潜在影响,将不胜感激。
SAML 2.0AudienceRestriction
几乎就是您所收集到的。它是断言的有效条件。特别是它声明断言的语义只对那个元素中由 URI 命名的依赖方有效。
目的是限制断言有效的条件,并有选择地提供与这种有效性相关的条款和条件。所以元素的语义与信任关系的范围和条件有关。来自SAML 2.0 核心,第 2.5.1.4 节(PDF):
尽管指定受众之外的 SAML 依赖方能够从断言中得出结论,但 SAML 断言方明确不对此类一方的准确性或可信度做出任何陈述......
...该
<AudienceRestriction>
元素允许 SAML 声明方以机器和人类可读的形式明确声明不向该方提供任何保证。虽然不能保证法院在任何情况下都会支持这样的保修排除,但支持保修排除的可能性大大提高了......
即,这不是代码的事情,而是人的事情(风险管理/保修/信任)。如果使用不正确,模块往往会抛出错误——大多数 SP 都希望自己在AudienceRestriction
.