CAS介绍

1.概述 
单点登陆(Single Sign On),简称为 SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只须要登陆一次就能够访问全部相互信任的应用系统。 耶鲁大学(yale)开发的单点登陆(Single Sign On)系统称为CAS(Central Authentication Service)被设计成一个独立的Web应用程序(cas.war)。 CAS在2004年12月成为Jasig项目,因此也叫JA-SIG CAS。本文中服务器版本基于4.0.0版本,官网: http://jasig.github.io/cas/4.0.x/index.html

2. CAS 原理和协议 html

CAS 具备如下特色:git

  •  开源的企业级单点登陆解决方案。
  •  CAS Server 为须要独立部署的 Web 应用。
  •  CAS Client 支持很是多的客户端(这里指单点登陆系统中的各个 Web 应用),包括 Java, .Net, PHP, Perl, Apache, uPortal, Ruby 等


CAS 包含两个部分: CAS Server 和 CAS Client。github

CAS Server 负责完成对用户的认证工做, CAS Server 须要独立部署,有不止一种 CAS Server 的实现。

CAS Server 会处理用户名 / 密码等凭证 (Credentials) ,它可能会到数据库检索一条用户账号信息,也可能在 XML 文件中检索用户密码,对这种方式, CAS 均提供一种灵活但同一的接口 / 实现分离的方式, CAS 到底是用何种认证方式,跟 CAS 协议是分离的,也就是,这个认证的实现细节能够本身定制和扩展。数据库

CAS Client 负责部署在客户端(指 Web 应用),原则上, CAS Client 的部署意味着,当有对本地 Web 应用的受保护资源的访问请求,而且须要对请求方进行身份认证, Web 应用再也不接受任何的用户名密码等相似的 Credentials ,而是重定向到 CAS Server 进行认证。CAS Client 与受保护的客户端应用部署在一块儿,以 Filter 方式保护受保护的资源。对于访问受保护资源的每一个 Web 请求,CAS Client 会分析该请求的 Http 请求中是否包含 Service Ticket,若是没有,则说明当前用户还没有登陆,因而将请求重定向到指定好的 CAS Server 登陆地址,并传递 Service (也就是要访问的目的资源地址),以便登陆成功事后转回该地址。用户在第 3 步中输入认证信息,若是登陆成功,CAS Server 随机产生一个至关长度、惟1、不可伪造的 Service Ticket,并缓存以待未来验证,以后系统自动重定向到 Service 所在地址,并为客户端浏览器设置一个 Ticket Granted Cookie(TGC),CAS Client 在拿到 Service 和新产生的 Ticket 事后,在第 5,6 步中与 CAS Server 进行身份合适,以确保 Service Ticket 的合法性浏览器

相关文章
相关标签/搜索