CAS学习笔记二:CAS单点登录流程

背景

由于公司项目甲方众多,各甲方为了统一登录用户体系实现单点登录(SSO)开始要求各乙方项目对接其搭建的CAS单点登录服务,有段时间对CAS的流程很迷,各厂商还有基于CAS进行二次开发的情况,所以对它的官方文档进行了一定的学习,记录下来帮助有需要的同学。

由于CAS的验签协议较多,此处将仅使用 验签 略过其子流程,感兴趣的可以查看官方文档进行系统学习。

术语

此处将不介绍验签相关的术语,约等于CAS1

  • CAS (Central Authentication Service) - 中央认证服务器
  • SSO (Single Sign On) - 单点登录
  • CAS Client - 集成CAS登录流程的应用服务
  • TGT (Ticket Granting Ticket) - 存在 CAS 服务端的用户票据,可使用此票据颁发ST
  • TGC (Ticket Granting Cookie)- 存在浏览器的 Cookie,对应 CAS 服务端的 TGT
  • ST (Service Ticket) - 服务票据,CAS为每个登录成功的应用服务生成唯一票据,对应应用服务的服务名(serverName)

CAS单点登录流程

单点登录流程:

1~5步 为首次访问服务A的单点登录流程,6~9步为访问A服务单点登录成功后再访问服务B的单点流程

  1. 用户通过浏览器请求服务A资源
  2. 服务A校验发现此请求未认证,重定向浏览器到CAS服务端登录地址
  3. 用户通过浏览器输入用户名密码,发起登录请求
  4. CAS服务端校验用户名密码通过,响应头会将TGC写入浏览器CAS域名的Cookie中,重定向浏览器到 服务A地址 + 服务A的ST
  5. 服务A向CAS服务端发起校验ST请求,验证通过后服务A重定向请求到服务A未携带ST的地址,业务响应返回结果
  6. 用户通过浏览器请求服务B的资源
  7. 服务B发现此请求未认证,重定向浏览器到CAS服务端登录地址,由于CAS地址的Cookie有TGC,重定向时会被携带传递给CAS服务端
  8. CAS服务端校验TGC发现有对应的TGT,颁发ST给服务B,重定向浏览器到 服务B + 服务B的ST
  9. 服务B向CAS服务端发起校验ST请求,验证通过后服务B重定向请求到服务B未携带ST的地址,业务响应返回结果

总结

  1. 用户登录成功会创建TGT,由TGT颁发ST。
  2. 用户浏览器端会保存TGC,它对应一个TGT
  3. 浏览器端存在未过期的TGC,访问CAS服务端时携带TGC,CAS使用TGT颁发ST,实现单点登录

本文同步于本人博客园(hellxz.cnblogs.com) 与 CSDN(https://blog.csdn.net/u012586326),禁止转载。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东北小狐狸-Hellxz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值