CAS学习笔记(一)

本文介绍了单点登录(SSO)的概念及其重要性,重点讨论了CAS(Central Authentication Service)作为SSO的一种实现。文章列举了OpenSSO、JOSSO和CAS等开源SSO解决方案,并详细阐述了CAS的体系结构,包括用户浏览器、CAS客户端和CAS服务器的角色。此外,还解析了CAS协议的流程以及其中的关键概念如Ticket-Granting Ticket(TGT)、Service Ticket(ST)等。最后,提到了CAS的安全机制和本地配置环境。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CAS单点登录学习

一、单点登录

单点登录是一种认证和授权机制,它提供了一个统一的机制来管理用户的认证和实现,决定用户对应用程序和数据的访问的商业规则。

在单点登录系统中, 用户只需要在登录时提供一次用户认证信息(如用户账号和密码),通过认证以后,在访问企业门户中的各个子系统时无需再提供用户认证信息,而是由单点登录系统完成对用户的认证。

二、目前单点登录的开源软件

2.1 OpenSSO

OpenSSO是基于Sun Java System Access Man— ager实现的,是Sun公司支持的一个开源的SSO项目。OpenSSO体系结构设计合理,功能比较强大。

缺点是客户端支持不够广泛,几乎只对基于J2EE的应用支持较好。

2.2 JOSSO

JOSSO也是一个用Java语言写的单点登录产品,通常认为比OpenSSO更成熟一些。JOSSO支持的客户端包括Java,PHP和ASP等语言。

2.3 CAS

耶鲁大学开发的单点登录CAS,是一个独立于平台的,易于理解的开源软件。CAS优点很多,包括设计理念先进、体系结构合理、配置简单、客户
端支持广泛、技术成熟等。

CAS服务器是SSO领域著名的软件产品,在许多大学,如耶鲁大学、剑桥大学和香港科技大学中得到应用。

三、CAS的体系结构

在CAS模型中共有三个实体:用户浏览器、CAS客户端和CAS服务器 。

3.1 用户浏览器

它需要满足三个条件才能在CAS中使用,一是拥有加密引擎支持HTTPS;二是能支持HTTP重定向;三是能存储安全cookie。

3.2 CAS客户端(CAS Client)

(屏蔽和转发)装载了CAS客户端的应用程序。它只向被CAS服务器认证的用户提供服务。当有对本地Web应用的受保护资源的访问请求,并且需要对请求方进行身份认证,Web应用不再接受任何的用户名密码等类似的凭证,而是重定向到CAS服务器进行认证。

3.3 CAS服务器(CAS Server)

单点登录服务的核心,采用集中式认证,验证用户名和密码用户名/密码等凭证,CAS的认证方式跟CAS协议是分离的,这个认证的实现细节可以自己定制和扩展。它扮演两个角色:一是认证用户;二是传送和确认被认证用户的身份。

四、CAS中核心关键词

4.1 Ticket—Granting Cookie(TGC)
授权的票据证明;

4.2 Ticket Granting Ticket(TGT)
票据授权票据,获取这样一张票据后,申请各种其他服务票据(ST)便不必再提交身份认证信息;

4.3 Ticket—Granting Service(TGS)
票据授权服务,索取TGT,发放ST;

4.4 Service Ticket(ST)
服务票据,由TGS发放。任何一个系统都需要拥有一张有效的Service Ticket才能访问域内部的应用。如果能正确接收Service
Ticket,说明在CAS Client与CAS Server之间的信任关系已经被正确建立起来,通常为一张数字加密的证书。

五、CAS协议

这里写图片描述

步骤1 用户通过Web浏览器访问已部署CAS Client的Web应用,CAS Client的Filter会分析http中是否含有Service Tickets,如果有则进入允许访问,如没有则进入步骤2。

步骤2 CAS Client将用户的访问请求重新定向到CAS Server。用户的Web浏览器将进入统一身份认证的登录界面。

步骤3 用户通过Web提供用户名/密码,CAS Server将在LDAP服务器(认证机制可以自己写的程序也可以是标准的认证方法)中查询该用户提供的用户名/密码是否正确。

步骤4 如果正确,CAS server会产生一个随机的Service Ticket,并将该Ticket缓存,然后重新将请求定向到用户所请求的Web应用,这次请求将会附带生成 Service Ticket,并为客户端浏览器设置一个Ticket Granted Cookie(TGC)。

步骤5 CAS Client将Ticket返回给CAS server。CAS Server将Ticket与缓冲里的Ticket列表匹配。

步骤6如果第五步顺利完成,CAS server将该用户的Username发回给CAS Client,用户则可以顺利进入该Web应用,并获得相应的身份角色。

这里写图片描述

六、安全机制

TGC/PGT通过HTTPs协议传送,且有自己的存活周期,超时则无效。
ST基于随机数生成,只能使用一次,无论ST验证是否成功,CAS Server都会将服务端的缓存中清除;

假设用户拿到ST之后,他请求服务的过程又被中断了,ST就被空置了。此时为了防止ST被截取盗用,给ST设定了比TGC短得多的存活周期;

七、本地配置
7.1 开发环境
MyEclipse10.0+tomcat7.0+JDK7.0+MySQL+CAS
CAS版本:服务器:cas-server-3.5.2 客户端:cas-client-3.2.1
下载地址:http://downloads.jasig.org/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值