java - 使用 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 检索当前活动会话)。
请分享想法。
解决方案
这完全取决于您如何集成应用程序:重定向到 Okta 或使用 Okta 小部件。如果您确实进行了重定向,则几乎可以保证在您的第二个应用程序中进行身份验证时会出现零问题,因为您对第二个应用程序的重定向会将sid
cookie 发送回 Okta,该 cookie 在使用您的第一个应用程序进行身份验证时设置。
使用小部件,事情可能会变得有点复杂,因为它取决于 3rd 方 cookie。okta-auth-js
GitHub repo 提供了一些示例,说明当您尝试对用户进行身份验证时,如何使用 okta 检查会话是否存在。检查https://github.com/okta/okta-auth-js#third-party-cookies
推荐阅读
- php - 使用 php 生成 Laravel 密码
- c# - Automapper 表达式映射问题
- python - 如何从电子表格中的特定单元格调用 Python 脚本
- php - 从回复电子邮件中使用 SwiftMessage 在 Laravel 中接收自定义标头
- android - 由于“多个 dex 文件定义 Lcom/google/common/util/concurrent/ListenableFuture”,应用程序无法在设备上运行
- machine-learning - SVC 分类器花费太多时间进行训练
- angular-material - How to set a specific tab always active in Material tab group while opening Bootstrap Modal multiple times?
- javascript - how can I change the value of the completedcount in second array to 230?
- reactjs - mapStateToProps 返回一个空对象
- amazon-web-services - 如何解决有限的实例间通信?