前一段时间,公司项目因为要与其他项目之间进行集成,弄成一个整体的大项目,因为各个项目都是老项目了,每一个项目都有一个自己的登录过滤机制,这时的需求就变成了只需一次登录,就可以登录进去其他子项目,不用每次访问其他项目都需要登录一次。
这个任务就交给了我这个刚毕业参加工作没多久的身上,说实话,对我来说还是挺难的。后来在网上查找各种资料,就选定了用的比较多的成熟框架 CAS 。在实际开发中,也碰到了很多各种各样的问题,在这里把自己对 CAS 的理解,碰到的问题总结一下,也希望能够帮助到更多的人。
单点登录
单点登录就是一次登录过后,再没有退出或者清缓存的情况下,用户再访问其他集成了这个功能的项目时,就不需要进行重复的登录操作,这样会大大的方便用户的使用。如果每次都需要用户登录一遍,估计这个项目也就没多少人用了,所以单点登录这个功能是非常必要的。
CAS
CAS 是耶鲁大学开源的一个单点登录框架,旨在为 web 应用系统提供一个安全可靠的单点登录框架,最终,在我们公司的项目中选择了使用 CAS 框架。
名词解释
在我们了解 CAS 的工作原理之前,我们应该首先了解下在 CAS 里面的一些概念,这样对我们理解 CAS 有一个更好的帮助。
ST:Service Ticket,服务票据,服务的唯一标识码,由 CAS 认证中心生成,返回给用户,这时 service 拿到 ST 后,又会去到 CAS 验证中心去验证,如果验证成功,则允许用户访问资源。
TGC:Ticket Granting Cookie,CAS 系统用来识别用户身份的凭证。
TGT:Ticket Grangting Ticket,票据授权票据,获取这个 TGT 后才能申请服务票据(ST),用户如果在 CA S系统认证成功之后,就会生成 TGC 写入浏览器,同时也生成一个 TGT,TGT 对象的id就是 cookie 值。之后每次请求过来通过此 cookie 来从缓存获取 TGT,就不用提交身份认证信息(Credentials)。

本文介绍了CAS单点登录框架的原理和工作过程,包括Service Ticket、Ticket Granting Cookie和Ticket Grangting Ticket的概念。CAS作为耶鲁大学开源的SSO解决方案,简化了用户在多个项目间的登录流程,提高用户体验。文章详细阐述了CAS的工作流程,从用户访问服务到验证票据,再到传输用户信息的过程,并提及了TGC在单点登录中的关键作用。
最低0.47元/天 解锁文章
2071

被折叠的 条评论
为什么被折叠?



