"CAS讲义.doc"
CAS(Central Authentication Service)是一种实现Single Sign-On(单点登录,简称SSO)的开源软件,由耶鲁大学发起。SSO的主要目的是让用户在一次登录后,能够访问所有相互信任的应用系统,而无需再次进行身份验证。本文将深入探讨SSO原理以及CAS的基本原理和实现机制。
1. SSO原理
SSO分为Web-SSO和桌面SSO。Web-SSO主要关注基于Web的应用,确保用户只需要在一个地方登录,然后可以在所有关联的Web应用中自由切换,而无需重复输入用户名和密码。在SSO体系中,涉及的角色包括:
- User(用户):使用多个Web应用的个人。
- Web应用(多个):需要用户认证的在线服务。
- SSO认证中心(一个):集中管理用户认证的地方。
实现SSO的关键在于,所有登录操作都发生在SSO认证中心,该中心与各个Web应用建立信任关系,并通过某种方式通知这些应用用户已通过认证。
2. CAS的基本原理
CAS是一个基于Java的Web SSO解决方案,它的核心组件包括:
- CASServer:这是认证服务的中心,处理用户的登录信息,验证凭证(如用户名/密码)。
- CASClient:部署在每个需要保护的Web应用中,它作为过滤器检查并处理请求,确保只有经过认证的用户才能访问受保护资源。如果发现未认证用户,它会将请求重定向到CASServer。
3. CAS协议基础
CAS协议的典型流程如下:
- 用户尝试访问受保护的Web应用资源。
- CASClient(部署在应用服务器上)检查请求,发现用户尚未认证,于是将请求重定向到CASServer。
- 用户在CASServer上输入凭证进行认证。如果认证成功,CASServer生成一个唯一的ServiceTicket,同时向用户的浏览器发送Ticket-granting Cookie (TGC)。
- CASServer将用户重定向回原请求的Web应用,并附带ServiceTicket。
- CASClient收到ServiceTicket后,与CASServer通信验证该Ticket的有效性。
- 验证通过后,用户被允许访问请求的Web应用资源,无需再次登录。
4. CAS实现SSO
当用户访问其他受CAS保护的服务时,由于浏览器持有TGC,CASServer可以通过这个Cookie识别用户,从而避免了再次登录的过程。只要TGC有效,用户就可以在不同应用间无缝切换,享受SSO带来的便利。
CAS通过提供统一的认证服务,简化了用户对多个Web应用的登录流程,提升了用户体验,同时也简化了应用系统的身份验证管理。此外,由于CASServer和CASClient之间的标准协议,使得CAS可以轻松地与其他系统集成,扩展性强,广泛应用在企业级环境中。