CAS 相关的内容好久没写了,可能下周会继续更新一些内容吧。
在上一篇中的单点流程序列图由于是从官网直接下载来的,上面都是英文,可能有的朋友看不懂,因此修改成中文的。
PS:只修改了一个,第二个图明天在加...
在这之前,先解释几个CAS 相关的术语解释吧:
1.概念相关
①.术语解释
TGT、ST、PGT、PGTIOU、PT,其中CAS1.0协议中就有的票据,PGT、PGTIOU、PT是CAS2.0协议中有的票据。
CAS为用户签发的登录票据,拥有了CAS成功登录过。CAS认证成功后,TGT对象,放入自己的缓存,CAS生成的cookie,则TGT ,如果有的话,则说明用户之前登录过,如果没有,则用户需要重新登录。
http://www.coin163.com/java/cas/ticket.html
· TGC (Ticket-granting cookie):
存放用户身份认证凭证的cookie,在浏览器和CAS Server用来明确用户身份的凭证。
· ST(Service Ticket)
ST是CAS获取ST。用户向CAS会以此cookie值为key查询缓存中有无TGT,则用此CAS验证,验证通过后,允许用户访问资源。
· PGT(Proxy Granting Ticket)
Proxy Service的代理凭据。用户通过CAS生成一个PGT对象,缓存在 · PGTIOU(全称 Proxy Granting Ticket I Owe You)
PGTIOU是CAS的serviceValidate接口验证ST成功后,CAS会生成验证ST成功的xml消息,返回给Proxy Service,xml消息中含有PGTIOU,proxy service收到Xml消息后,会从中解析出PGTIOU的值,然后以其为key,在map中找出PGT的值,赋值给代表用户信息的Assertion对象的pgtId,同时在map中将其删除。
· PT(Proxy Ticket)
PT是用户访问Target Service(back-end service)的票据。如果用户访问的是一个Web应用,则Web应用会要求浏览器提供ST,浏览器就会用cookie去CAS获取ST,而是通过访问proxy service的接口,凭借proxy service的PGT去获取一个PT,然后才能访问到此应用。
②、TGT、ST、PGT、PT之间关系
1)ST是CAS上认证成功后,TGT,用TGT对象,然后把ST的值redirect到客户应用。
2)PGT是ST签发的。用户凭借ST去访问Proxy service,Proxy service去CAS),如果ST验证成功,则TGT对象。
3)PT是PGT签发的。Proxy service代理back-end service去CAS根据传来的pgt参数,获取到PGT对象,然后调用其grantServiceTicket方法,生成一个PT对象。
2.CAS 基本流程图(没有使用PROXY代理)
3. 使用代理的 CAS 流程图
未完待续...