cas(Central Authentication Service)详细教程(3) - cas协议详解

CAS协议是一个简单且十分强大的基于票据管理的CAS专用协议,协议详细文档请移步http://jasig.github.io/cas/4.1.x/protocol/CAS-Protocol-Specification.html
该协议中涉及到一个或多个CAS客户端和服务端的交互,客户端嵌入了CAS的类库,而CAS服务端则是一个独立的应用程序。CAS服务端负责用户的认证和授予访问权限给访问请求。CAS客户端负责保护应用程序和接收CAS服务端对用户的认证数据。交互过程主要涉及到概念有:

  • TGT(Ticket Granting Ticket),存储在名为CASTGC的cookie中,代表一个用户的单点登录session
  • ST(Service Ticket),作为Http的GET请求的一个参数在URL中传递,代表了CAS针对某个特定用户授予了准予访问的权限

一般认证流程:

目前最新的CAS协议版本为3.0,最新的版本草案也将实现代码放在CAS的代码库中,作为对2.0版本最常见问题的修复和增强,在3.0所有新增功能点中,最引人注目的就是3.0中增加了通过新链接/p3/serviceValidate返回认证/用户属性的功能。
CAS一般认证流程
根据上述流程简述CAS认证过程。假定cas服务器的地址是:http://cas.service.com,web应用的地址是:http://web1.service.com。

代理认证流程:

代理认证主要针对应用1跳转到应用2时可以简化访问的步骤,若不使用代理认证,需要进行多次重定向而使用代理认证应用1获取到代理票据以后即可跳转到应用2

CAS代理认证流程

关于proxy列表:Proxy列表列出了此代理链中所有代理应用的pgtUrl。并且,最近的proxy列在最前面。
如果email服务器再代理登录到第三个应用,如:http://web3.example.com/casProxyLogin3,则此时的proxy列表有两个proxy,顺序如下:

-------------本文到此结束,感谢您的阅读-------------