【问题标题】:Okta SSO between 2 apps w/o user having to know about Okta2 个应用程序之间的 Okta SSO,用户无需了解 Okta
【发布时间】:2021-12-16 16:00:23
【问题描述】:

背景

我们有两个应用,应用 A 和应用 B。我正在开发一个 POC,用于将应用相互连接。

作为背景,IT 想以某种方式使用 Okta。我对 Okta 的体验一直是 IDP 和 SSO 是通过正常的 SAML 或 OIDC 工作流程完成的。但这需要用户了解 Okta 并登录 Okta。此设置适用于通过 Okta 管理用户的公司。

所需的用户体验

我们正在寻找的用户体验涉及用户使用新浏览器(任何地方都没有 cookie)登录到 App A,然后能够单击 App A 中的链接并最终在 App B 中进行身份验证,而无需查看 Okta 页面(但是,通过 Okta URL 进行重定向是可以的)。我们还希望支持相反的情况(应用 B 将经过身份验证的用户发送到应用 A)。应用程序之间有一个共同的约定,即用户的电子邮件地址在双方都是相同的。

显然我们可以在这些应用程序之间直接创建某种形式的 SSO,但 IT 想要管理我们在 Okta 中使用的任何身份验证连接(出于安全性等原因)。

在不知道前进方向的情况下,我的直觉告诉我,我们需要使用 Okta 作为 IDP,但我们需要使用某种 Okta SCIM API 在 Okta 中注册用户,在我们发送之前的某个时间点他们从 App A 到 App B。这是正确的吗?如果是这样,是否也可以对用户进行身份验证,以便他们不必登录 Okta 即可在 App B 处进行身份验证?这是完全错误的吗?这基本上需要我们让 App A 和 App B 既是身份提供者又是消费者?或者对于这种情况是否有某种更好/更简单的工作流程?

【问题讨论】:

    标签: single-sign-on okta okta-api


    【解决方案1】:

    如果您使用的是 Okta 小部件或 Okta API,则可以在不重定向到 Okta 的情况下进行 Okta 登录。然后,您无需向用户显示任何 Okta UI。只有一件事,确保 Okta cookie 与这些请求一起发送,以便 Okta 知道您已经有一个会话。

    【讨论】:

    • Okta cookie 是从哪里来的?在我所描述的场景中,用户一开始就不会登录 Okta。换句话说,用户从一个没有任何 cookie 的新浏览器会话开始,然后登录到 App A,单击来自 App A 的链接,然后突然进入 App B 并在那里进行身份验证。在这种情况下,我们拥有这两个应用程序,但它们都是完全独立托管的,从技术角度来看没有任何共享。
    • 从应用程序 A 登录 Okta 后,浏览器将拥有 cookie。所以假设你使用相同的浏览器登录 B,你应该很好。
    【解决方案2】:

    您只需为应用 A 和应用 B 分别实施 SSO。 A 和 B 都将与 IdP 共享同一个 Okta 租户。

    【讨论】:

      猜你喜欢
      • 2017-08-21
      • 2020-05-29
      • 2021-08-09
      • 2015-10-10
      • 2016-04-01
      • 2021-08-28
      • 1970-01-01
      • 1970-01-01
      • 2017-08-13
      相关资源
      最近更新 更多