Okta重定向动态中继状态

时间:2016-02-17 16:12:28

标签: saml okta

当使用带有链接重定向的Okta单点登录(而不是发送+生成SAML请求对象)时,是否可以动态地包含中继状态? (例如,包括RelayState标头或查询字符串)

2 个答案:

答案 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" }