为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 JASIG SSO 一次验证两个客户端

如何使用 JASIG SSO 一次验证两个客户端

慕姐4208626 2021-09-03 15:15:43
老实说,不确定标题是否具有足够的描述性,所以这里是文字:背景故事我正在使用 Spring 框架重建一个 Web 应用程序。但是,旧应用程序在 PHP 上运行。有一个宽限期,两个应用程序将同时运行,所以我将慢慢地将东西移到 Java 端并远离 PHP。对我来说幸运的是,后端和前端之间的大部分通信都是通过 jQuery 和 AJAX 完成的。我已经设置了许多休息端点来处理阅读,我的列表中的下一个是保存。问题现在问题来了,我的 Spring 应用程序需要知道是否真的允许登录的用户保存数据。一位同事建议我使用 Jasig CAS SSO 作为身份验证,以便 php 和 java 应用程序都使用相同的登录名。然而,这里也存在一个问题。我已经设置了 Spring Security 来使用 SSO,而且 PHP 知道如何处理它。但是,当我向 Spring 端发出 AJAX 请求时,问题就出现了。Spring security 检测到我没有登录(可能是因为没有发送 cookie),因此返回 302 以便我转到 CAS 登录页面。我设法让所有东西都在同一个(不是向外的)域上运行:cas.domain.localapp.domain.local (PHP)tools.domain.local (Java)请求来自 app.domain.local 到 tools.domain.local我已经阅读了很多关于票据授予 cookie、票据授予票据、在我的 ajax 请求中发送会话信息以及称为身份验证代理的内容。问题通过 ajax 请求告诉 java 端我已经通过了 cas SSO 服务器的身份验证的最佳方法是什么?请询问是否需要更多信息。
查看完整描述

3 回答

?
LEATH

TA贡献1936条经验 获得超6个赞

在这种情况下,我认为您不会对 CAS 感到满意。我最好的猜测是使用JWT来处理您的身份验证。JWT 可以以安全的方式封装您的身份验证信息,您可以通过 Http-Header 将它们发送到两个应用程序或通过您在超级domain.local域上设置的 cookie以便两个域都能获取它。您仍然可以为您的应用程序使用两个单独的“本地”会话。


查看完整回答
反对 回复 2021-09-03
?
慕虎7371278

TA贡献1802条经验 获得超4个赞

您需要将一些设置添加到 spring-security. 单击此处查看文档。


查看完整回答
反对 回复 2021-09-03
  • 3 回答
  • 0 关注
  • 143 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信