gpt4 book ai didi

java - 在 REST 服务中验证 token ST Apereo CAS(无状态)

转载 作者:太空宇宙 更新时间:2023-11-04 09:04:03 25 4
gpt4 key购买 nike

我为我的英语不好而道歉。

我有 Apereo CAS 工具用作登录 SSO。当我与应用程序状态一起使用时,这非常有效。但我想针对特定场景调用 API REST(无状态)并验证登录的用户(并使用您的服务信息)。我的后端API是用Spring Boot开发的。有人需要类似的情况吗?

Ps:此 API 将通过前端和没有前端的服务进行访问,因此我将无法使用 cookie。

序列图来举例说明我的想法:

enter image description here

谢谢。

最佳答案

您的前端应用程序需要向 CAS 服务器请求代理身份验证。

代理身份验证的更常见用例之一是能够获取也受 CAS 保护的后端 [基于 REST] 服务的票证。通常的场景是:

  • 用户面临的是受 CAS 保护的应用程序 A。
  • 后端应用程序 A 需要联系服务 S 来生成数据。
  • 服务 S 本身受 CAS 本身保护。

由于前端通过不涉及浏览器的服务器到服务方法联系后端服务,因此后端将无法识别 SSO session 已存在。在这些情况下,前端需要进行代理才能获得后端的代理票。代理票证被传递到后端的相关端点,以便后端可以通过 CAS 检索和验证它,并最终生成响应。

跟踪路线可能如下所示:

  • 浏览器导航至前端。
  • 前端重定向到 CAS。
  • CAS 通过 ST 进行身份验证并重定向回前端。
  • 前端尝试验证 ST,并请求 PGT。
  • CAS 确认 ST 验证,并颁发代理授予票 PGT。
  • 前端要求 CAS 为后端 API 生成 PT,并在其请求中提供 PGT。
  • CAS 为后端 API 生成 PT。
  • 前端联系服务 S 端点,并在请求中传递 PT。
  • 后端 API 尝试通过 CAS 验证 PT。
  • CAS 验证 PT 并生成成功的响应。
  • 后端 API 接收响应,并为前端生成数据。
  • A 接收数据并在浏览器中显示。

See this了解详情。

关于java - 在 REST 服务中验证 token ST Apereo CAS(无状态),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60440338/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com