使用 Okta 会话进行单点登录

Single Sign On with Okta session

我在不同域中有多个 Web 应用程序 运行。 Okta 是所有这些应用程序的 identity/auth 提供商。在其中一个应用程序中与 Okta 集成后(遵循 Okta 文档中提供的 Java 示例),一个新的 cookie (sid) 正在 Okta 域 (https://developer.okta.com/docs/reference/api/sessions/).

我如何使用它来 SSO 到其他 Web 应用程序。允许访问其他应用程序而无需再次提示登录凭据的最佳方法是什么?

我是否需要在每个应用程序中调用 getCurrentSession API 并仅在 API 响应为 404 时重定向到登录页面(根据文档, getCurrentSession 将根据 Okta cookie 检索当前活动会话)。

请分享想法。

这完全取决于您集成应用程序的方式:重定向到 Okta 或使用 Okta 小部件。如果您确实重定向,则几乎可以保证在您的第二个应用程序中进行身份验证时出现零问题,因为您对第二个应用程序的重定向会将 sid cookie 发送回 Okta,这是在对您的第一个应用程序进行身份验证时设置的。

有了小部件,事情可能会变得有点复杂,因为它取决于第 3 方 cookie。 okta-auth-js GitHub repo 有一些示例,说明在您尝试对用户进行身份验证时如何检查 okta 的会话是否存在。检查 https://github.com/okta/okta-auth-js#third-party-cookies