Yale CAS(耶鲁集中认证服务)简介
2012-07-13 12:07:28   来源:我爱运维网   评论:0 点击:

CAS(Central Authentication Service)是Yale大学发起的一个开源项目(http://www.jasig.org/cas),为Web应用提供了单点登录(SSO)支持。CAS...
CAS(Central Authentication Service)是Yale大学发起的一个开源项目( http://www.jasig.org/cas),为Web应用提供了单点登录(SSO)支持。CAS包含一个Server端和Client端,Server端是​一个Java Web Application,单独部署在与servlet2.3兼容的Web服务器上;而Client端提供了对主流的web开发语言的支持。
 
其主要特点是:
  1. 支持跨域的web应用SSO
  2. CAS Server内置支持多种常见验证后端,比如Windows AD, LDAP, JDBC等; (详见 https://wiki.jasig.org/display/CASUM/Authentication),也可以自己根据需要扩展验证方式;
  3. 支持将用户认证状态信息存放到TicketRegistry并被多个CAS Server Instance共享,为高可用性提供了可能;
  4. 内置了Services Management管理界面,可以控制允许用户访问的services和各项Services可以访问的用户属性;
  5. Client端有官方对于主流web编程语言Java, PHP, .net的支持,同时有大量第三方开源client支持几乎所有主流web开发语言;( https://wiki.jasig.org/display/CASC/Home​)
由于CAS是纯Web SSO,因此不能满足桌面应用的SSO需求。
 
 
Yale CAS的基本原理是通过安插在web应用的client端用来截获认证请求,将用户重定向到CAS Server,由CAS Server做用户的统一认证和对web应用访问的授权。
 
以下是CAS基础的工作模式流程图:
 
Yale CAS(耶鲁集中认证服务)简介
 
参照上图,一个基本的用户认证流程是:
  1. 用户浏览器访问web应用 http://helloservice, CAS Client会截获用户认证请求;
  2. CAS Client将用户重定向到CAS Server,并再URL中注明用户访问的service名称,即service=helloservice;
  3. CAS Server查看用户的cookie中是否有Ticket Granting Ticket(TGT):
    • ​如果已有TGT,则说明用户已经登陆过,不需要再登录,因此直接为用户访问的Service颁发一个Service Ticket (ST);
    • 如果没有TGT,则给出用户登录界面,让用户输入用户名和密码,验证Credential后决定是否颁发TGT,直到决定是否颁发ST;
  4. ​用户被重定向回web应用,并再url中携带service和ST信息;
  5. web应用中的CAS Client向CAS Server验证Service和ST的有效性;
  6. 如果ST有效,CAS Server象Client返回用户的身份。
因此web应用本身不需要保存用户credential的信息,所有用户认证都是在CAS Server端完成的。
 
在整个验证流程中, Service Ticket在使用一次以后就过期,因此CAS Server和CAS Client之间可以不用采用SSL连接。 但是CAS Server给用户浏览器颁发的TGT是有有效期的(默认2小时),所以CAS Server一般被配置成https从而保证TGT在发给用户浏览器的过程中的安全性。
 
 
对于更复杂的认证场景,比如用户==>service1==>serivce2,CAS还提供了Proxy认证机制,即CAS Client可以代理用户去访问其他WEB应用。 这种模式目前超出了我们的应用范围,因此不做深入研究。

相关热词搜索:Yale 耶鲁 集中认证 CAS

上一篇:第一页
下一篇:CAS Server的部署手记

分享到: 收藏
iTechClub广告