背景

由于公司项目甲方众多,各甲方为了统一登录用户体系实现单点登录(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. 用户通过浏览器请求服务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重定向请求到服务A未携带ST的地址,业务响应返回结果

总结

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

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

最新文章

  1. torrent
  2. asp.net添加验证码
  3. 启动tomcat报错 Could not reserve enough space for object heap的解决办法
  4. PG sys function
  5. Handlebars expressions
  6. Java中ThreadLocal无锁化线程封闭实现原理
  7. struts2中使用json插件实现ajax交互
  8. android绑定Service失败原因
  9. shell编程之服务脚本编写,文件锁以及信号捕获
  10. python学习===将py文件从打包成exe程序
  11. 使用github pages搭建个人博客
  12. SQL Sever 2012版本数据库的完全安装流程
  13. python-day2列表、元祖、字典;编码;字符串
  14. 使用cmd命令删除文件夹下所有文件
  15. Java 将 List 里面的内容写入桌面的 txt 文档
  16. Pycharm调试:进入调用函数后返回
  17. 014 view-controller标签
  18. [吴恩达机器学习笔记]12支持向量机2 SVM的正则化参数和决策间距
  19. python gun readline
  20. 【Docker】Dockerfile使用apt-get来安装jdk

热门文章

  1. App内容分享
  2. shell条件测试语句实例-测试apache是否开启
  3. 莫烦python教程学习笔记——数据预处理之normalization
  4. Quartz使用AutoFac依赖注入问题小结
  5. 『与善仁』Appium基础 — 22、获取元素信息的操作(一)
  6. Java变量和常量
  7. df和du显示不同
  8. 测试工具_siage
  9. LuoguP7534 [COCI2016-2017#4] Kartomat 题解
  10. CF1473B String LCM 题解