SAML 2.0中的Destination和RelayState差异

时间:2016-08-04 22:07:19

标签: saml saml-2.0

我知道很多服务提供商使用中继状态来跟踪SP发起SSO时访问的资源,因此SP可以在SAML断言消耗后重定向到它。

但是,我正在查看SAML响应的目标属性,看起来它是专为此案例设计的。

我错过了什么吗?为什么服务提供商以这种方式使用中继状态(使用目的地)?

1 个答案:

答案 0 :(得分:5)

正如您所说,RelayState是SP成功完成SAML身份验证过程后重定向用户的位置。

但是签署邮件时需要Destination属性(与SAML的绑定/传输相关)。

从3.4.5.2 SAML Bindings spec的安全注意事项,

  

如果消息已签名,则根目录中的Destination XML属性   协议消息的SAML元素必须包含到的URL   发件人已指示用户代理传递邮件。该   收件人必须验证该值是否与位置匹配   消息已经收到。

这主要是为了避免某人检索到IdP在中间发送的SAMLResponse,并将该消息发送给未创建SAMLResponse并发送给的其他SP方。

如果目标包含在SAMLResponse中(也有签名),则预期的SP(接收方)可以验证目标属性值是否与收到SAMLResponse的目的地/位置匹配。也许预期的SP知道目的地/位置URL,他们可以验证这两个值是否相等。如果它们相同,则由IdP将SAMLResponse发送到预期的SP,并且SP接受它,否则SP必须拒绝SAMLResponse。