我正在尝试使用SAML来理解SSO。我遇到了RelayState参数,并且非常困惑为什么它在单点登录中首先发送编码的URL?这到底是什么意思?
请从the Google Developer documentation阅读以下内容
SAML生成一个
身份验证请求。SAML请求被编码并嵌入到合作伙伴的SSO服务的URL中。包含用户试图访问的Google应用程序的编码URL的RelayState参数也嵌入在SSO中。此RelayState参数是一个不透明的标识符,无需任何修改或检查
即可传回
发布于 2015-12-18 16:54:31
RelayState
的最初含义是SP可以将一些值与AuthnRequest
一起发送到IDP,然后再将其取回。SP可以在RelayState
中放入它想要的任何值,而IDP应该在响应中回显它。
此
RelayState
参数是一个不透明的标识符,无需任何修改或检查即可传回
在使用Idp发起的登录时,RelayState
还有另一个事实上的标准用法。在这种情况下,没有来自SP的传入请求,因此可能没有要中继回的状态。相反,IDP使用RelayState
向SP 发信号通知SP在成功登录后应将哪个URL重定向到。在标准(Bindings 4.1.5)中,声明RelayState“可以是服务提供者处的资源的URL”。
看起来谷歌正在使用RelayState
作为目标网址,甚至在SP发起的登录上也是如此,这是完全没有问题的。但IDP应该,正如文档所说,只需将其转发回来。
发布于 2015-12-19 01:11:02
RelayState是身份提供商(在成功登录后)将用户重定向到的SP上的资源的标识符。这是一种使单点登录过程对用户来说更加短暂的方法,因为用户会再次被重定向到它们最初在SP处请求的相同页面。
发布于 2017-09-20 15:29:29
根据官方SAML文档,
某些绑定定义了一种"RelayState“机制,用于保存和传递状态信息。当这种机制作为SAML协议的初始步骤用于传送请求消息时,它对随后用于传送响应的绑定的选择和使用提出了要求。也就是说,如果SAML请求消息伴随着RelayState数据,那么SAML响应器必须使用也支持RelayState机制的绑定返回其SAML协议响应,并且必须将与请求一起接收的确切RelayState数据放入响应中相应的RelayState参数中。
https://stackoverflow.com/questions/34350160
复制相似问题