CAS单点登录基本概念

2018-08-15  本文已影响39人  codeMan_6616

1.体系结构

从结构体系看,CAS 包括两部分: CAS Server 和 CAS Client 。

CAS Server:

负责完成对用户的认证工作 ,会为用户签发两个重要的票据:登录票据(TGT)和服务票据(ST)来实现认证过程, CAS Server需要独立部署 。

CAS Client:

负责处理对客户端受保护资源的访问请求,需要对请求方进行身份认证时,重定向到 CAS Server 进行认证。准确地来说,它以Filter 方式保护受保护的资源。
对于访问受保护资源的每个 Web 请求,CAS Client 会分析该请求的 Http 请求中是否包含 ServiceTicket(服务票据,由 CAS Server发出用于标识目标服务)。
CAS Client 与受保护的客户端应用部署在一起。

2.核心票据

CAS的核心就是其Ticket,及其在Ticket之上的一系列处理操作。
CAS的主要票据有TGT、ST、PGT、PGTIOU、PT,其中TGT、ST是CAS1.0(基础模式)协议中就有的票据,PGT、PGTIOU、PT是CAS2.0(代理模式)协议中有的票据。

TGT(Ticket Grangting Ticket):
TGC (Ticket-granting cookie):

上面提到,CAS-Server生成TGT放入自己的Session中,而TGC就是这个Session的唯一标识(SessionId),以Cookie形式放到浏览器端,是CAS Server用来明确用户身份的凭证。

ST(ServiceTicket):

3.认证过程

这里用一个终端,对两个CAS—Client的三次请求来说明CAS的认证过程,主要是TGT、TGC、ST等票据的传递,以及如何实现的SSO。
前两次请求都是访问的CAS—Client1,主要来说明TGT、TGC、ST等票据的作用;
然后第三次请求访问的是CAS—Client2,主要来说明如何实现的SSO。

Request1:

【第一步】终端第一次访问CAS—Client1,AuthenticationFilter会截获此请求:

【第二步】终端第一次访问CAS—Server:

【第三步】这时,终端携带ticket再次请求CAS—Client1:

Request2:

上面说了SSO 会话已经建立起来了,这时用户在同一浏览器里第二次访问此web 应用(CAS—Client1)时,
AuthenticationFilter会在session 里读取到用户信息,这就代表用户已成功登录,所以就不会去CAS 认证了。

Request3:

【第一步】与Request1是完全一样的,如下:终端第一次访问CAS—Client2,AuthenticationFilter会截获此请求:

【第二步】然后,终端第二次访问CAS—Server:此时,Request中会带有上次生成的TGC,然后根据TGC(SessionID)去查找是否有对应的TGT(Session),如果有,代表此用户已成功登录过,所以此时用户不必再去登录页登录(SSO的体现),而CAS—Server会直接用找到的TGT签发一个ST,然后重定向到CAS—Client2,剩下的如Request1中的

【第三步】就完全一样了。

上一篇 下一篇

猜你喜欢

热点阅读