OneLogin 编程会话 cookie 验证 - 无浏览器

OneLogin programmatic session cookie validation - No browser

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

现在我需要以编程方式访问 API 服务器,该服务器仍处于构建状态并且该服务器需要以某种方式验证我将随请求一起发送的会话 cookie。关键字"Programatically" as in 不会有浏览器

OneLogin 不提供 SDK 来验证现有的会话 cookie => 如果可以的话,我会很好,基于会话 cookie 查明它是否仍然有效以及用于此会话的用户名是什么。如果会话无效 API 服务器将 return 未经授权。

这可能吗?还是可以通过其他方式实现?

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

我想我要找的是 Validate Session 等同于 Open ID Connect API 一般 API

通过 API 返回的 session_token 的有效期很短,仅用于创建 returns 会话 cookie 的会话请求。

听起来 OpenId Connect 可能是此用例的最佳选择。如果您有用户凭据,那么您可以使用 Resource Owner Password Grant flow 来验证用户并获得 id_token

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