shimingxy 05192f9a5a c
2020-03-07 22:36:18 +08:00

2.0 KiB
Raw Blame History

1、CAS简介

CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。CAS 具有以下特点:

【1】开源的企业级单点登录解决方案。

【2】CAS Server 为需要独立部署的 Web 应用。

【3】CAS Client 支持非常多的客户端(这里指单点登录系统中的各个 Web 应用),包括 Java, .Net, PHP, Perl, Apache, uPortal, Ruby 等。

2、CAS体系结构

CAS 体系包含两个部分: CAS Server 和 CAS Client。CAS Server 需要独立部署主要负责对用户的认证工作CAS Client 负责处理对客户端受保护资源的访问请求,需要登录时,重定向到 CAS Server。

3、CAS原理

CAS 最基本的协议过程:

SSO单点登录访问流程主要有以下步骤

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

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

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

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

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

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

4、 CAS中3个术语

Ticket Granting ticket (TGT) 可以认为是CAS Server根据用户名密码生成的一张票存在Server端

Ticket-granting cookie (TGC) 其实就是一个Cookie存放用户身份信息由Server发给Client端

Service ticket (ST) 由TGT生成的一次性票据用于验证只能用一次。相当于Server发给Client一张票然后Client拿着这个票再来找Server验证看看是不是Server签发的。