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开发语言的支持。
其主要特点是:
- 支持跨域的web应用SSO
- CAS Server内置支持多种常见验证后端,比如Windows AD, LDAP, JDBC等; (详见 https://wiki.jasig.org/display/CASUM/Authentication),也可以自己根据需要扩展验证方式;
- 支持将用户认证状态信息存放到TicketRegistry并被多个CAS Server Instance共享,为高可用性提供了可能;
- 内置了Services Management管理界面,可以控制允许用户访问的services和各项Services可以访问的用户属性;
- 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基础的工作模式流程图:
参照上图,一个基本的用户认证流程是:
- 用户浏览器访问web应用 http://helloservice, CAS Client会截获用户认证请求;
- CAS Client将用户重定向到CAS Server,并再URL中注明用户访问的service名称,即service=helloservice;
- CAS Server查看用户的cookie中是否有Ticket Granting Ticket(TGT):
- 如果已有TGT,则说明用户已经登陆过,不需要再登录,因此直接为用户访问的Service颁发一个Service Ticket (ST);
- 如果没有TGT,则给出用户登录界面,让用户输入用户名和密码,验证Credential后决定是否颁发TGT,直到决定是否颁发ST;
- 用户被重定向回web应用,并再url中携带service和ST信息;
- web应用中的CAS Client向CAS Server验证Service和ST的有效性;
- 如果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应用。 这种模式目前超出了我们的应用范围,因此不做深入研究。
上一篇:第一页
下一篇:CAS Server的部署手记
分享到:
收藏
评论排行
- ·Windows(Win7)下用Xming...(92)
- ·使用jmx client监控activemq(20)
- ·Hive查询OOM分析(14)
- ·复杂网络架构导致的诡异...(8)
- ·使用 OpenStack 实现云...(7)
- ·影响Java EE性能的十大问题(6)
- ·云计算平台管理的三大利...(6)
- ·Mysql数据库复制延时分析(5)
- ·OpenStack Nova开发与测...(4)
- ·LTPP一键安装包1.2 发布(4)
- ·Linux下系统或服务排障的...(4)
- ·PHP发布5.4.4 和 5.3.1...(4)
- ·RSYSLOG搭建集中日志管理服务(4)
- ·转换程序源码的编码格式[...(3)
- ·Linux 的木马程式 Wirenet 出现(3)
- ·Nginx 发布1.2.1稳定版...(3)
- ·zend framework文件读取漏洞分析(3)
- ·Percona Playback 0.3 development release(3)
- ·运维业务与CMDB集成关系一例(3)
- ·应该知道的Linux技巧(3)