1

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

4

2 回答 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 回答