什么是SSO(例如SAML)中使用的RelayState参数?

时间:2015-12-18 07:07:02

标签: single-sign-on saml saml-2.0

我正在尝试使用SAML了解SSO。我遇到了RelayState参数,我很困惑为什么它首先在SSO中发送编码的URL?究竟是什么意思?

请阅读the Google Developer documentation

中的以下内容
  

Google会生成SAML身份验证请求。 SAML请求已编码并嵌入到合作伙伴的SSO服务的URL中。包含用户尝试访问的Google应用程序的编码URL的RelayState参数也嵌入在SSO URL中。此RelayState参数是一个不透明的标识符,无需任何修改或检查即可传回

3 个答案:

答案 0 :(得分:7)

RelayState是SP的资源标识符,IDP将用户重定向到该资源(成功登录后)。这是一种使SSO过程对用户更加短暂的方法,因为它们会再次重定向到他们最初在SP请求的同一页面。

答案 1 :(得分:3)

根据SAML官方文件,

  

一些绑定定义了一个" RelayState"保存和传递国家信息的机制。什么时候   这种机制用于传送请求消息作为SAML协议的初始步骤,它   对随后用于传达响应的绑定的选择和使用提出了要求。   即,如果SAML请求消息伴随有RelayState数据,则SAML响应者   必须使用也支持RelayState机制的绑定返回其SAML协议响应,以及   它必须将随请求接收的确切RelayState数据放入相应的RelayState中   响应中的参数。

答案 2 :(得分:0)

下面的流程图可以逐步帮助您。 ACS URL 和relayState 都不同。 relayState 为您提供更多信息/url 来处理用户想要去的确切位置。 more details

saml-sso-idp-initialted-flow-relay-state