session - OneLogin 程序化会话 cookie 验证 - 无浏览器
问题描述
我有以下场景,我很好奇是否可以实现。我需要使用 SSO,更具体地说是 OneLogin,通过我的 Java 独立应用程序中的自定义 UI 对用户进行身份验证。我知道这可以通过创建会话登录令牌然后通过令牌One Login API 调用创建会话来完成。通过一些解析,我可以从上次调用中获取会话 cookie 并将其存储。
现在我需要以编程方式访问 API 服务器,该服务器仍将被构建,并且该服务器需要以某种方式验证我将与请求一起发送的会话 cookie。没有浏览器中的关键字“以编程方式”
OneLogin 不提供 SDK 来验证现有会话 cookie => 如果可以的话,那就太好了,基于会话 cookie 找出它是否仍然有效以及用于此会话的用户名是什么。如果会话无效,API 服务器将返回未授权。
这甚至可能吗?或者是否有可能以其他方式?
- 基本上 One Login 已经在我们的生态系统中使用了,我必须继续使用它
- 将用户登录并获取会话 cookie 的应用程序可能不是调用 API 服务器的应用程序。这可能是另一个接收会话的 java 应用程序
我想我正在寻找的是在通用 API 中与 Open ID Connect API 等效的Validate Session
解决方案
通过该session_token
API 返回的有效期很短,仅用于发出返回会话 cookie 的创建会话请求。
听起来 OpenId Connect 可能是这个用例的最佳选择。如果您有用户凭据,那么您可以使用资源所有者密码授予流程对用户进行身份验证并获取id_token
.
这id_token
是一个包含用户详细信息的 JWT,然后可以通过检查其签名、受众和到期声明来验证其真实性。它还可以保存您的后端应用程序可能使用的有关用户的其他自定义信息。
推荐阅读
- coq - 带有布尔值的 Coq `ring` 策略:不是有效的环方程
- javascript - TypeError: this.setState.darkMode 在尝试实现暗模式时不是函数
- node.js - node js html文件加载问题,我该如何解决?
- python-3.x - 错误的匹配正则表达式
- node.js - 我们如何在更新中使用 $subtract 聚合管道运算符和位置 $ 运算符?
- amazon-web-services - 如何在 EC2 实例上运行命令?SSM 中缺少 AWS-RunShellScript
- r - 根据文件扩展名选择文件的最佳方法(用 r 编写)
- bash - 禁止 stderr 控制台输出,但在 Shell 中保留退出代码
- python - 压缩 Python 生成器,第二个更短:如何检索被静默消耗的元素
- reactjs - 在将数据存储到firebase并在react redux中更新状态时出现以下错误