cas单点登录流程

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

CAS单点登录

1 CAS原理

1.1结构体系

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

1.1.1 CAS Server

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

1.1.2 CAS Client

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

CAS Client 与受保护的客户端应用部署在一起,以 Filter 方式保护受保护的资源。

1.2基础模式

基础模式 SSO 访问流程主要有以下步骤:

1.访问服务: SSO 客户端发送请求访问应用系统提供的服务资源。

2.定向认证: SSO 客户端会重定向用户请求到 SSO 服务器。

3.用户认证:用户身份认证。

4.发放票据: SSO 服务器会产生一个随机的 Service Ticket 。

5.验证票据: SSO 服务器验证票据 Service Ticket 的合法性,验证通过后,允许客户端访问

服务。

6.传输用户信息: SSO 服务器验证票据通过后,传输用户认证结果信息给客户端。

下面是 CAS 最基本的协议过程:

2登录流程

时序图:

2.1用户第一次访问web1 应用

1、Web1的CAS客户端检测到session中无令牌凭证信息,将用户重定向到Cas-server端进行验证。

2、服务端检测到传来的请求没有带TGT参数,所以跳到Login页面进行用户登录验证。

3、服务端认证结束后,生成TGT令牌和随机Ticket-ST,并且在用户的浏览器中写入Cookie-STC,随后让用户的浏览器重定向到Web1应用中,并将随机参数ST带上一起传参过去,之后Web1的cas客户端将检测到此ST参数,发送到server端进行校验,校验成功之后,服务端主动销毁此ST,并继续返回到web1应用中,web1应用此时将令牌信息写入到自己的session中,从而完成用户的单点登录认证,服务端同样的也会用一个Map记录web1加入到单点登录范围内。

4、带上ST参数重定向到web1应用。

5、web1拿到ST参数发送到服务端进行校验。

6、校验成功,进入W1应用,w1将令牌凭证TGT写入session,与此同时,完成用户第一次访问应用web1的情形。

2.2用户第一次访问web2应用

1、此时,用户第一次访问Web2应用,web2在自己的session中无法找到令牌信息,所以将用户重定向到服务端,服务端拿到用户的浏览器传来的cookie,从里面读出TGT,生成一个随机的ST,发回w2,w2拿到ST,就立即和服务端进行校验,服务端校验成功后,立即销毁此ST,并将web2加入到单点登录范围内,用户此时可以在Web2中进行业务操作,web2也同样的会在session中记录此令牌凭证,至此,完成用户的单点登录功能。当用户下次访问web1或者web2的时候,由于各自的session中能够拿到TGT信息,所以,只需要从中读到每次请求时所带的ST参数即可和服务端进行交互,验证正确之后达到一站登录,多站访问的SSO效果。

2、w2让用户浏览器带cookie重定向到服务端。

3、服务端认证结束后,生成TGT令牌和随机Ticket-ST,并且在用户的浏览器中写入Cookie-STC,随后让用户的浏览器重定向到Web2应用中,并将随机参数ST带上一起传参过去,之后Web2的cas客户端将检测到此ST参数,发送到服务端进行校验,校验成功之后,服务端主动销毁此ST,并继续返回到web2应用中,web2应用此时将令牌信息写入到自己的session中,从而完成用户的单点登录认证,服务端同样的也会用一个Map记录web2加入到单点登录范围内。

4、w2根据参数ST发回到服务端进行校验

5、校验成功,可以访问W2,W2令牌写入session。

术语解释:

Ø Service ticket(ST) :服务票据,服务的惟一标识码 , 由 CAS Server 发出( Http 传送),通过客户端浏览器到达业务服务器端;一个特定的服务只能有一个惟一的 ST ;

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

Ø Ticket Granting ticket(TGT) :票据授权票据,由 KDC 的 AS 发放。即获取这样一张票据后,以后申请各种其他服务票据 (ST) 便不必再向 KDC 提交身份认证信

息 (Credentials) ;

Ø Authentication service(AS) --------- 认证用服务,索取 Credentials ,发放 TGT ;Ø Ticket-granting service (TGS) --------- 票据授权服务,索取 TGT ,发放 ST ;

Ø KDC( Key Distribution Center ) ---------- 密钥发放中心;

3客户端接入流程

说明:以下配置说明在蛙宝洗车项目上集成。

1、引入cas client jar包,由于系统使用了spring-security做登录管理,所以需要引入cas

spring-security的集成jar包,如下图:

2、修改项目配置文件applicationContext-security.xml,引入cas client切入,配置登录拦截

相关文档
最新文档