CAS服务器实验之一: CAS基本概念

什么是SSO

所谓SSOSingle Sign On)单点登录是指基于用户/会话认证的一个过程,用户只需一次性提供凭证(仅一次登录),就可以访问多个应用。

目前单点登录主要基于Web的多种应用程序,即通过浏览器实现对多个B/S架构应用的统一账户认证。

CAS介绍

CAS Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 2004 12 月正式成为 JA-SIG 的一个项目。CAS 具有以下特点:

1、开源的企业级单点登录解决方案。

2CAS Server 为需要独立部署的 Web 应用。

3CAS Client 支持非常多的客户端(这里指单点登录系统中的各个 Web 应用),包括 Java, .Net, PHP, Perl, Apache, uPortal, Ruby 等。

 

CAS原理和协议

CAS从结构上来说包括俩部分,分别是CAS ServerCAS Client

CAS Server需要独立部署,主要负责认证工作,CAS Client负责处理对客户端访问受限资源的访问请求,当针对该资源的访问需要登录时重定向到CAS ServerCAS Client 与受保护的客户端应用部署在一起,以 Filter 方式保护受保护的资源。

其基本的协议过程如下图:



 

扫描二维码关注公众号,回复: 620650 查看本文章

 

图例说明:

环境假设:用户User要访问业务系统BizBiz系统部署在bizserver上;CAS的系统搭建在服务器casserver上。

Step1: 用户第一次访问Biz系统主页http://bizserver/index.jsp ;部署在Biz系统上的CAS Client会验证该用户是否已经登录(验证方法:首先判断session中是否含有receipt,如果已经有了即表示已经验证成功可以访问,否则会分析该请求中是否包含ticket,如果没有表示还未登录,有表示已经登录),将用户重定向到CAS登录界面 https://casserver/cas/servlet/login?service=http://bizserver/index.jsp ,同时在重定向的URL上用service参数将用户的目标地址传给CAS服务器。

Step2:用户在CAS的登录页上输入用户名密码登录,CAS服务器认证通过后,生成一个ticket,并带在目标地址的尾部返回客户端的浏览redirecthttp://bizserver/index.jsp?ticket=service ticket.

Step3:客户端浏览器获得CAS服务器的认证应答,取得凭证ticket后,使用重定向的链接http://bizserver /index.jsp?ticket=casticket访问Biz服务

Step4: 重复step1的步骤,部署在BizServer上的CAS Client获取到了ticketticket凭证,表示已经登录成功。Filter将使用该凭证通过URL https://casserver/cas/servlet/validate?service= http://bizserver/index.jsp &ticket=casticket CAS认证中心确认对应的服务请求和凭证是否有效。根据CAS服务器返回的结果,如果凭证有效,则CAS Client允许用户进入 http://bizserver/index.jsp 所指向的页面;否则,再次重定向到https://casserver/cas/servlet/login?service=http: //bizserver/index.jsp 上要求用户进行认证。

 

后面的实验所选用的CAS Server版本为3.4.4Client版本为3.1.10

猜你喜欢

转载自dinguangx.iteye.com/blog/1845093