#2022争霸赛*干货满满#关于CAS单点登陆和注销流程的学习笔记
  

Men_chou 15282人觉得有帮助

{{ttag.title}}
本帖最后由 Men_chou 于 2022-9-29 09:04 编辑

一、CAS简介
       CAS(Central Authentication Service)是耶鲁大学的一个开源项目,旨在为web应用系统提供一种可靠的单点登录解决方案。
       CAS包含两个角色:CAS Server和CAS Client。
       CAS Server负责完毕对用户的认证工作,会为用户签发两个重要的票据:登录票据(TGT)和服务票据(ST)来实现认证过程,CAS Server须要独立部署。
       CAS Client负责处理对客户端受保护资源的访问请求,如果判断需要进行用户登陆,就会重定向到CAS Server进行认证。CAS Client与受保护的客户端应用部署在一起,以 Filter方式保护受保护的资源。

二、CAS术语解释
      1、TGT
      Ticket Grangting Ticket:TGT是CAS Server为用户签发的登录票据,拥有了TGT,用户就可以证明自己在CAS Server成功登录过。
      TGT封装了Cookie值以及此Cookie值对应的用户信息。用户在CAS Server认证成功后,CAS Server生成cookie(叫TGC),写入浏览器,同时生成一个TGT对象,放入自己的缓存,TGT对象的ID就是cookie的值。当http再次请求到来时,如果传过来的有CAS Server生成的cookie,则CAS Server以此cookie值为key查询缓存中有无TGT,如果有的话,则说明用户之前登录过,如果没有,则用户需要重新登录。

      2、TGC
      Ticket Granting Cookie:存放用户身份认证凭证的cookie,在浏览器和CAS Server间通讯时使用,并且只能基于安全通道传输(Https),是CAS Server用来识别用户身份的凭证。

      3、ST
      Service Ticket:服务票据,ST是CAS Server为用户签发的访问某一service的票据。
用户访问service时,service发现用户没有ST,则要求用户去CAS Server获取ST。用户向CAS Server发出获取ST的请求,如果用户的请求中包含cookie,则CAS Server会以此cookie值为key查询缓存中有无TGT,如果存在TGT,则用此TGT签发一个ST,返回给用户。用户凭借ST去访问service,service拿ST去CAS Server验证,验证通过后,允许用户访问资源。
      4、Session
      会话:服务器为了保存用户状态而创建的一个特殊的对象。
      全局会话:用户浏览器到CAS Server登录后,用户浏览器和CAS Server之间建立起了会话,我们把这个会话称为全局会话。
      局部会话:用户浏览器和系统应用建立起局部会话,局部会话保持了客户端与该系统应用的登录状态,局部会话依附于全局会话存在,全局会话消失,局部会话必须消失。
      用户访问应用时,首先判断局部会话是否存在,如存在,即认为是登录状态,无需再到CAS Server去判断。如不存在,就重定向到CAS Server判断全局会话是否存在,如存在,CAS Server会通知该应用,该应用与客户端就建立起它们之间局部会话,下次请求该应用,就不去CAS Server验证了。
三、CAS单点登陆流程
      CAS认证中心服务器地址:https://cas.test.com
      部署CAS的应用a地址:https://a.test.com,图书馆资源放在/lib目录下
      部署CAS的应用b地址:https://b.test.com
      CAS单点流程如下图所示,主要分为以下四个部分:
          •      首次登陆应用a(1-29)
          •      再次访问应用a下的图书馆资源(30-34)
          •      首次访问应用b(35-58)
          •      从应用b注销登陆(59-75)


四、后记
      1、参考了很多网上的资料,没有研究的很深;
      2、搭建的测试环境有点问题,只能抓到登陆的包,注销的数据包没有抓到;
      3、有什么错误的地方,欢迎大佬指正,大家一起学习。

登陆.zip

5.38 KB, 下载次数: 14

打赏鼓励作者,期待更多好文!

打赏
2人已打赏

339015 发表于 2022-10-7 00:16
  
感谢楼主分享,文章介绍了CAS认证原理以及自己的一次实战测试结果分析,期待楼主带来更多有价值的案例分享
新手751436 发表于 2022-10-1 21:00
  
楼主研究得很深入,学习一下
平凡的小网工 发表于 2022-10-1 21:37
  
果然是高手在民间,楼主帖子写的不错,很有参考价值,还想看更多精彩分享,期待楼主下一篇好帖!
一个无趣的人 发表于 2022-10-2 09:34
  
楼主的文章图文并茂,清晰易懂,看完这波操作可以轻松上手了,如遇到问题再向楼主请教~
水之蓝色 发表于 2022-11-17 10:09
  
感谢分享,学习了!!!!!!
发表新帖
热门标签
全部标签>
每日一问
2024年技术争霸赛
技术盲盒
技术笔记
干货满满
信服课堂视频
产品连连看
新版本体验
技术晨报
功能体验
秒懂零信任
每周精选
2023技术争霸赛专题
GIF动图学习
技术咨询
安全攻防
信服圈儿
问题分析处理
运维工具
通用技术
华北区交付直播
答题自测
在线直播
安装部署配置
原创分享
深信服技术支持平台
社区帮助指南
天逸直播
以战代练
自助服务平台操作指引
齐鲁TV
北京区每日一练
畅聊IT
专家问答
技术圆桌
MVP
网络基础知识
升级
上网策略
测试报告
日志审计
流量管理
每日一记
云计算知识
用户认证
解决方案
sangfor周刊
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
SDP百科
标准化排查
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
加速技术
排障笔记本
产品预警公告
玩转零信任
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
答题榜单公布
纪元平台
卧龙计划
华北区拉练
山东区技术晨报
文档捉虫活动

本版版主

26
76
83

发帖

粉丝

关注

本版达人

新手24268...

本周建议达人

阿凯

本周分享达人

新手39341...

本周提问达人