当使用带有链接重定向的 Okta 单点登录(而不是发送 + 生成 SAML 请求对象)时,是否可以动态包含中继状态?(例如包括 RelayState 标头或查询字符串)
问问题
3677 次
2 回答
2
是的你可以。
假设您正在谈论这个: 通过访问会话重定向链接来检索会话 cookie
我的做法如下:
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 编码中继状态。
URL 编码可能不是强制性的,但我这样做的效果很好。
生成的重定向 URL 很糟糕,但它可以工作。
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
于 2016-02-17T19:50:08.697 回答
2
通过向重定向链接添加查询字符串输出
https://your.okta.com/.../sso/saml?RelayState=/param1/param2
输出的 Relay State 将在返回消息体中发送
{ SAMLResponse: ..., RelayState: "/param1/param2" }
于 2016-02-18T15:39:33.510 回答