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

Oom*_*ity 47 saml single-sign-on saml-2.0

我正在尝试使用SAML了解SSO.我遇到了RelayState参数,并且非常混淆为什么它首先在SSO中发送编码的URL?究竟是什么意思?

请阅读Google Developer文档中的以下内容:

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

And*_*bel 82

原来的意思RelayState是SP可以与IDP一起发送一些值AuthnRequest,然后将其取回.SP可以在其中放置它想要的任何值,RelayStateIDP应该在响应中回显它.

RelayState参数是一个不透明的标识符,无需任何修改或检查即可传回

RelayState当使用Idp启动的登录时,还有另一个事实上的标准用途.在这种情况下,没有来自SP的传入请求,因此不能传回任何状态.相反,RelayStateIDP使用它向SP发信号通知SP 在成功登录后应该重定向到哪个URL.这不是SAML2标准的一部分.

RelayState即使在SP发起的登录上,Google似乎也在使用目标网址,这非常好.但正如文件所述,国内流离失所者应该将其转发回来.

  • 我很高兴在这里指出了"事实上的标准用途".我一直在努力理解为什么在`RelayState`下发送重定向URL. (6认同)
  • 仅供参考,SP = 服务提供商(通常是用户进行身份验证的 Web 应用程序/服务)和 IDP/IdP = 身份提供商(用户拥有现有身份或帐户的服务)。 (3认同)
  • 使用 RelayState 向 SP 发送 IdP 信号是 [SAML 2 标准](http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0-cd -02.html#5.1.1.简介|大纲)。5.1.1.简介|概述 5.1.1 简介 有时,称为 RelayState 的特定于绑定的字段用于协调 IdP 和 SP 的消息和操作,例如,允许 IdP(通过其发起 SSO)指示与 SP 通信时所需的资源。 (2认同)

小智 7

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

  • 不,这是不正确的。您正在描述断言消费者服务 URL。 (2认同)

Ara*_*vin 6

根据官方 SAML 文件,

一些绑定定义了一个“RelayState”机制来保存和传送状态信息。当这种机制用于传送请求消息作为 SAML 协议的初始步骤时,它对随后用于传送响应的绑定的选择和使用提出了要求。即,如果 SAML 请求消息伴随有 RelayState 数据,则 SAML 响应者必须使用也支持 RelayState 机制的绑定返回其 SAML 协议响应,并且必须将其与请求一起收到的确切 RelayState 数据放入相应的 RelayState响应中的参数。