目录

基于 CAS 的单点登陆方案

名词解释

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

Ticket-granting cookie(TGC) 存放用户身份认证凭证的 cookie,在浏览器和 CAS Server 间通讯时使用,并且只能基于安全通道传输(Https),是 CASServer 用来明确用户身份的凭证。

Service ticket(ST) 服务票据,服务的惟一标识码 , 由 CASServer 发出( Http 传送),用户访问 Service 时,service 发现用户没有 ST,则要求用户去 CAS 获取 ST.用户向 CAS 发出获取 ST 的请求,CAS 发现用户有 TGT,则签发一个 ST,返回给用户。用户拿着 ST 去访问 service,service 拿 ST 去 CAS 验证,验证通过后,允许用户访问资源

CAS 组成

CAS 服务端 CASServer 负责完成对用户的认证工作 , 需要独立部署 , CAS Server 会处理用户名 /密码等凭证 (Credentials) 。

CAS 客户端 负责处理对客户端受保护资源的访问请求,需要对请求方进行身份认证时,重定向到 CAS Server 进行认证。(原则上,客户端应用不再接受任何的用户名密码等 Credentials )。 CASClient 与受保护的客户端应用部署在一起,以 Filter 方式保护受保护的资源。

CAS 原理图 ./cas-1.png

相关资源