基于CAS单点登录技术的研究与实现

时间:2022-08-25 12:49:36

基于CAS单点登录技术的研究与实现

摘 要:随着信息化发展,越来越多的应用系统应运而生。若用户每使用一个系统都登录一次,就会给用户带来诸多不便,单点登录机制能很好地解决这一问题。用户只需要认证一次,无需重复登录,实现统一管理和应用系统间的无缝连接。基于此,文章对开源技术的CAS实现单点登录的原理进行了介绍,并介绍在Tomcat中部署CAS配置的方法。

关键词:统一身份认证;单点登录;SSO;CAS

中图分类号: TP399 文献标识码:A 文章编号:1006-8937(2015)24-0082-01

1 背景概述

随着计算机技术的不断发展与进步,基于B/S(浏览器/服务器)结构的企业应用软件应用更加的广泛,现在很多企业生产管理活动都在应用企业应用软件系统。而企业应用软件系统都不相关,相互独立,因此具有不同的身份验证标准,在不同的页面分散登录与分散管理。因此这就导致企业工作人员在每个应用软件系统频繁登陆与注销,这就严重影响工作的效率。若采用基于统一身份认证技术单点登录(Single Sign On ,简称SSO),就可以避免频繁地登录与注销各个页面系统,提高工作效率。所以企业应当采用统一的身份认证系统,这样一方面保证用户操作方便,另一方面还可以保证应用系统的安全。

2 CAS 原理和协议

2.1 CAS访问流程的步骤

从结构上看,CAS 涵盖了CAS Server和CAS Client两个部分:需要独立部署,CAS Server主要是对用户的认证工作进行负责;CAS Client主要是对客户端受保护资源的访问请求进行负责,需要登录时,需向CAS Serve重新定向。CAS 访问流程,如图1所示,主要有以下步骤:

①访问服务:用户通过客户端浏览器发送请求,访问应用系统提供的服务资源。

②重定向认证:CAS 客户端收到用户请求后,重定向用户请求到CAS服务器。

③用户认证:用户输入信息进行身份认证。

④发放票据:CAS 服务器会产生一个随机Service Ticket。

⑤验证票据:CAS 服务器验证票据Service Ticket的合法性,验证通过后,允许用户访问服务。

⑥传输用户信息:CAS 服务器验证票据通过后,传输用户认证结果信息给用户。

2.2 CAS最基本的协议过程

下面是 CAS 最基本的协议过程:

和CAS Client 安放在一起的是受保护的客户端应用系统,利用 Filter请求进行过滤方式。若受保护的资源被每个 Web 请求访问,则CAS Client 就会对该请求进行立即分析,对Http请求中是否包含Service Ticket进行查看,并将请求向CAS Server登录地址发送,并且将Service传递(也就是要访问的目的资源地址),而一旦登陆成功,则可向该地址转回。

用户则在第3步中将认证信息输入,CAS Server就会随机将一个字符数生成,Service Ticket是不可再造的、唯一的,为了将来验证需要进行延缓,之后对Service所在的地址,系统自动重新登陆,并将一个Ticket Granted Cookie配置到客户端浏览器配置,在拿到Service和新生成的Ticket 之后,CAS Client 在第5、6步中与 CAS Server 进行身份验证,对Service Ticket的正确性提供保障。全部与CAS的交互在这个协议中,都利用SSL协议,进而对ST和TGC的安全性提供保障。

在工作过程中,该协议将两次重新回到Service所在的地址,验证用户能够见到CAS Client与CAS Server之间进行Ticket验证的过程。

3 基于Tomact下的CAS系统搭建流程

3.1 环 境

选择软件版本:Tomcat7.0.32+JDK1.6.0_37

+cas-server-3.5.1+cas-client-3.2.1

3.2 生成证书

生成证书的步骤如下:

①生成服务器端证书文件,keytool genkey alias server keyalg RSA keystore serverkey。

②将服务器证书导出为证书文件,keytool export file server.crt alias server keystore serverkey。

③为客户端JVM导入证书,keytool impor tkeystore% java_home%\jre\lib\cacerts file server.crt alias server。

④将证书应用到Web服务器Tomcat在tomcat目录下找到得server.xml文件,添加如下:

="150"minSpareThreads="25"maxSpareThreads="75"

enableLookups=false"disableUploadTimeout

="true"acceptCount="100" ;

scheme="https"secure="true"clientAuth

="false"sslProtocol="TLS" ;

keystoreFile="/server.keystore"keystorePass="changeit"/>。

3.3 部署CAS server

基于Java实现的CAS Server服务,该服务要Java Web Application单独配置在与servlet兼容的Web服务器上,同时配置CAS Server的服务器能满足SSL协议。只有当SSL配置成功,则服务器上配置的CAS Server才能正常运行。在Tomcat的Webapps目录中存放cas-server-webapp-3.2.1.war,并重新命名为cas.war,然后将tomcat,重新启动,再对https://localhost:8443/cas进行访问,之后若出现正常的CAS登录页面,则表示CAS Server已经配置成功。

CAS Server部署成功后,只是一个缺省的实现,可以需要根据实际概况做扩展和定制,最主要的是对(Authentication)接口和CAS Server的界面进行扩展,由于篇幅,在此不再赘述。

3.4 CAS客户端部署

在客户端的JVM导入信任的SERVER的证书,然后将CAS server中target目录中的CAS.war 复制到%tomcat_home%\webapps目录下,并将cas-client\java\lib文件复制到应用程序目录WEB-INF\lib中在客户端项目的web.xml配置过滤器。

4 结 语

企业应用软件系统都不相关,相互独立,因此具有不同的身份验证标准,在不同的页面分散登录与分散管理。因此这就导致企业工作人员在每个应用软件系统频繁登陆与注销,这就严重影响工作的效率。若采用基于统一身份认证技术单点登录(Single Sign On ,简称SSO),就可以避免频繁地登录与注销各个页面系统,提高工作效率。所以企业应当采用统一的身份认证系统,这样一方面保证用户操作方便,另一方面还可以保证应用系统的安全。

参考文献:

[1] 袁先珍.基于CAS单点登录系统的研究与实现[J].电脑与电信,2008,(4).

[2] 裴华艳,王焕民.基于CAS的单点登录平台的研究与实现[J].电脑知识与技术,2014,(3).

上一篇:提高主变送电差动保护极性校核一次性成功率的... 下一篇:PPP模式下的风险均衡研究