首页 > 解决方案 > OneLogin 程序化会话 cookie 验证 - 无浏览器

问题描述

我有以下场景,我很好奇是否可以实现。我需要使用 SSO,更具体地说是 OneLogin,通过我的 Java 独立应用程序中的自定义 UI 对用户进行身份验证。我知道这可以通过创建会话登录令牌然后通过令牌One Login API 调用创建会话来完成。通过一些解析,我可以从上次调用中获取会话 cookie 并将其存储。

现在我需要以编程方式访问 API 服务器,该服务器仍将被构建,并且该服务器需要以某种方式验证我将与请求一起发送的会话 cookie。没有浏览器中的关键字“以编程方式”

OneLogin 不提供 SDK 来验证现有会话 cookie => 如果可以的话,那就太好了,基于会话 cookie 找出它是否仍然有效以及用于此会话的用户名是什么。如果会话无效,API 服务器将返回未授权。

这甚至可能吗?或者是否有可能以其他方式?

  1. 基本上 One Login 已经在我们的生态系统中使用了,我必须继续使用它
  2. 将用户登录并获取会话 cookie 的应用程序可能不是调用 API 服务器的应用程序。这可能是另一个接收会话的 java 应用程序

我想我正在寻找的是在通用 API 中与 Open ID Connect API 等效的Validate Session

标签: sessionsingle-sign-onsession-cookiesonelogin

解决方案


通过该session_tokenAPI 返回的有效期很短,仅用于发出返回会话 cookie 的创建会话请求。

听起来 OpenId Connect 可能是这个用例的最佳选择。如果您有用户凭据,那么您可以使用资源所有者密码授予流程对用户进行身份验证并获取id_token.

id_token是一个包含用户详细信息的 JWT,然后可以通过检查其签名、受众和到期声明来验证其真实性。它还可以保存您的后端应用程序可能使用的有关用户的其他自定义信息。


推荐阅读