当使用带有链接重定向的Okta单点登录(而不是发送+生成SAML请求对象)时,是否可以动态地包含中继状态? (例如,包括RelayState标头或查询字符串)
答案 0 :(得分:2)
是的,你可以。
假设你在说这个: Retrieving a session cookie by visiting a session redirect link
我这样做的方式如下:
appSSOUrl = 'https://your.okta.com/app/identifier/sso/saml'
RelayStateValue = URLENCODE(desired relay state here)
redirectUrl = URLENCODE(appSSOUrl + '?RelayState=' + RelayStateValue)
将userAgent发送到
https://your.okta.com/login/sessionCookieRedirect?token={cookieToken}&redirectUrl={redirectUrl}
此处{redirectUrl}是您的okta应用程序SSO URL的URL编码版本?附加一个RelayState参数。该参数的值是在重定向之前动态生成的URL编码的relaystate。
URL编码可能不是强制性的,但我在这方面做得很好。
生成的重定向网址是一个doozy但它可以工作。
https://your.okta.com/login/sessionCookieRedirect?token=00FAyayhEPQj3O7czF192BaEzjWhGjOSKk7f4QNRfe&redirectUrl=https%3A%2F%2Fyour.okta.com%2Fapp%2Fidentifier%2Fsso%2Fsaml%3FRelayState%3DParam1%253Dvalue1%2526param2%253Dvalue2%2526param3%253Dvalue3
答案 1 :(得分:1)
通过向重定向链接添加查询字符串输出
https://your.okta.com/.../sso/saml?RelayState=/param1/param2
输出中继状态将在返回消息正文中发送
{ SAMLResponse:..., RelayState:" / param1 / param2" }