CAS单点登录下存在两种登录认证模式,第一种我姑且叫它为普通模式吧,因为这种类型是我们使用的最多的场景;另外一种是代理模式,这种模式不常见,但是CAS单点登录是支持的,也在这里一并说明。采用时序图来进行相关的说明,展示两种模式的不同点。
在说展示具体的时序图之前,先把几个概念表达一下。
ST(Service Ticket )。ST是CAS为用户签发的访问某一service的票据。用户访问service时,service发现用户没有ST,则要求用户去CAS获取ST。用户向CAS发出获取ST的请求,CAS发现用户有TGT,则签发一个ST,返回给用户。用户拿着ST去访问service,service拿ST去CAS验证,验证通过后,允许用户访问资源。
TGT(Ticket Granting Ticket )。TGT是CAS为用户签发的登录票据,拥有了TGT,用户就可以证明自己在CAS成功登录过。TGT封装了Cookie值以及此Cookie值对应的用户信息。当HTTP请求到来时,CAS以此Cookie值为key查询缓存中有无TGT ,如果有的话,则相信用户已登录过。
PGT(Proxy TicketGranting Ticket)。Proxy Service认证成功后,CAS会生成PGT,并将值回传给Proxy Service 。Proxy Service拿到PGT后,就可以为Target Service做代理,为其申请PT。
PGTIOU(Proxy TicketGranting Ticket IOU)。PGTIOU是CAS协议中定义的一种附加票据,它增强了传输、获取PGT的安全性。
PT(Proxy Ticket)。PT是用户访问Target Serivce的票据。用户经由Proxy Service去CAS获取到PT后,再访问Target Serivce,Target Serivce去CAS验证PT成功后,才允许用户访问。
1、CAS单点登录普通模式时序图
2、CAS单点登录代理模式时序图
基于个人总结,可能有不足之处,详细的可以参考官方网站上对应的单点登录时序图。具体地址为:[CAS protocol登录时序图](https://apereo.github.io/cas/4.2.x/protocol/CAS-Protocol.html)