一.什么是CAS
CAS是实现单点登陆的框架。用户只需要登陆一次就可以访问所有相互信任的应用系统。
CAS通过票据之间的传递达到目的。
二.CAS的几大核心概念
1. 基本票据介绍
首先明确:CAS只是控制分布式集群 的单点登陆,并不负责资源权限的控制
TGT(登陆票据): 表示某用户登陆 整个系统的票据,Session实现。 对应多个Session
TGC: TGT存放在Cookie的id,Cookie实现
ST(服务票据): 表示用户访问 某单点系统的票据。
2.特殊票据介绍
TGC: 用户持有的对自己身份信息的一种凭证。用户免输密码获得其他服务的Service Ticket
PGT: CAS Client持有的对用户身份信息的一种凭证。Web应用代理用户实现后端认证,而无需用户参数
2.几大组件
多个应用系统,一个认证中心,多个浏览器
一个Cookie,多个Session
全局会话:Cookie实现,浏览器中保存相应的CookieId
局部会话:Session实现,浏览器中保存相应的JessionId,存放 用户对象
三.登陆流程
3.1用户首次登陆流程
1)用户访问系统A,系统A通过JessionID检查其是否有票据,若没有,则重定向到CAS Server进行登陆认证
2)CAS Server通过CookID检查其是否登陆,若没登陆,则返回登陆页面进行验证,若通过,则生成登陆票据TGT,
然后生成服务票据ST,然后重定向到应用系统A,此时浏览器记录CookieId。
3)应用系统A收到ST后,发往CAS Server进行票据验证,若验证成功,创建Session保存用户对象,并返回给浏览器
受限资源并携带JessionId。
3.2用户二次访问系统A
1) 用户二次访问系统A,Filter过滤请求携带的JessionId,若可以从Session读取用户对象,则返回浏览器受限资源
3.3用户首次登陆系统B
1) 用户首次访问系统B,检查没有JessionId,也没有ST,则重定向到CAS Server进行登陆认证
2) CAS Server 通过检查请求中携带CookieId,生成相应服务的ST,重定向到系统B
3) 系统B将ST发往CAS Server进行票据验证,若认证成功则创建Session保存用户对象,并返回给浏览器
受限资源并携带JessionId。
四. 登出流程
五. CAS代理模式
六. CAS安全性讨论