将参数中继到 Okta 并从 IDP 流中检索

Relay parameters to Okta and retrieve from IDP flow

我正在尝试在 Python Flask 中使用 Okta 实现 SSO,但我在他们的文档中没有看到我可以传入参数并在成功登录响应中检索它的任何地方。我目前有 2 个端点模仿 https://github.com/jpf/okta-pysaml2-example/blob/master/app.py.

一个 SP 启动的方法,它获取我传入的参数并向 Okta 发送 SAML 请求。

IDP 发起的方法,在有效登录时,Okta 发送 SAML 响应,然后我重定向到 URL,我想在其中附加传入的初始参数。这可能吗?

用户去哪里 post 登录由中继状态决定。这是一个不透明的值,因此您要设置的任何参数都可以是其中的一部分。为简单起见,中继状态可以是编码的 URL。或者,您的 SP 可能知道如何 translate/decrypt 将用户重定向到下一个状态(即页面)。

对于 SP 发起的请求,您(SP)提供中继状态。

对于 IDP 发起的请求,您应该能够设置默认中继状态。专门针对 okta,在应用程序 - 设置 - 相关应用程序的登录方法下设置默认中继状态。

(如果你想让okta把你送到不同的地方,比如你的SP应用的"main" vs. "admin console"部分,你要么需要多个okta应用,要么你把用户送到同一个地方,您的 SP 确定将它们发送到哪里 "next",可能基于登录的用户名,或者通过身份验证响应中包含的属性值断言。)