在 REST 服务(无状态)中验证令牌 ST Apereo CAS
Validate token ST Apereo CAS in REST service (Stateless)
抱歉我的英语不好。
我将 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 会话已经存在。在这些情况下,前端需要执行代理以获得后端的代理票。代理票被传递到后端的相关端点,因此它可以通过 CAS 检索和验证它并最终产生响应。
跟踪路线可能如下所示:
- 浏览器导航到前端。
- 前端重定向到 CAS。
- CAS 使用 ST 进行身份验证并重定向回前端。
- 前端尝试验证 ST,并请求 PGT。
- CAS 确认 ST 验证,并签发代理授权票证 PGT。
- 前端要求 CAS 为后端生成 PT API,在其请求中提供 PGT。
- CAS 为后端生成 PT API。
- 前端联系服务 S 端点,在请求中传递 PT。
- 后端 API 尝试通过 CAS 验证 PT。
- CAS 验证 PT 并生成成功响应。
- 后端API接收响应,并为前端生产数据。
- A接收数据并在浏览器中显示。
See this 了解详情。
抱歉我的英语不好。
我将 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 会话已经存在。在这些情况下,前端需要执行代理以获得后端的代理票。代理票被传递到后端的相关端点,因此它可以通过 CAS 检索和验证它并最终产生响应。
跟踪路线可能如下所示:
- 浏览器导航到前端。
- 前端重定向到 CAS。
- CAS 使用 ST 进行身份验证并重定向回前端。
- 前端尝试验证 ST,并请求 PGT。
- CAS 确认 ST 验证,并签发代理授权票证 PGT。
- 前端要求 CAS 为后端生成 PT API,在其请求中提供 PGT。
- CAS 为后端生成 PT API。
- 前端联系服务 S 端点,在请求中传递 PT。
- 后端 API 尝试通过 CAS 验证 PT。
- CAS 验证 PT 并生成成功响应。
- 后端API接收响应,并为前端生产数据。
- A接收数据并在浏览器中显示。
See this 了解详情。