首页 > 解决方案 > 使用 Okta 会话进行单点登录

问题描述

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

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

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

请分享想法。

标签: javasingle-sign-onoktaokta-api

解决方案


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

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


推荐阅读