您好,欢迎来到九壹网。
搜索
您的当前位置:首页统一身份认证服务器的研究与实现

统一身份认证服务器的研究与实现

来源:九壹网
龙源期刊网 http://www.qikan.com.cn

统一身份认证服务器的研究与实现

作者:洪丹丹

来源:《中国教育信息化·高教职教》2011年第02期

摘 要:目前解决恶意用户非法操作的手段之一为身份认证。经过对访问应用的用户进行认证,保证只有通过认证的用户才能访问指定资源。同时为了保证无需多次注册登录就可以在多个应用之间切换,享受各应用提供的服务,单点登录统一身份认证被广泛应用。本文详细研究了JA-SIG CAS统一身份认证系统的工作原理及其实施部署过程,对其中的关键技术进行了详细描述。

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

中图分类号:G482文献标识码:B 文章编号:1673-8454(2011)03-0016-03 一、引言

为保证只有指定的或者通过认证的用户才能访问系统受保护的资源,以往多数应用程序如Web应用,都采用用户注册机制来进行控制,如只有已注册用户,凭密码登录系统之后,才能访问Web敏感资源。但是随之产生的问题也不容忽视。因为随着网络和各种便携式移动网络终端的普及,Web应用的数量急剧增长。如果在访问Web应用时,都需要注册一次,且每次访问不同Web应用时,都需进行登录操作,这是非常麻烦的事情。因此国内外研究学者们便提出使用户只注册一次并登录一次,就可以在多个应用之间进行访问的思想,因此单点登录统一身份认证技术被广泛地应用起来。其原理如图1所示。

单点登录统一身份认证关键作用在于每个Web应用并不直接认证用户,而是将用户认证委托给一个的单点登录服务器完成。这样既可以减轻Web应用的负担,同时认证用户的真实性就更加可靠,因为第三方的认证服务器多数都是可信任的。[1]认证过程如下:[2] (1)浏览器请求Web应用程序的某个受保护的资源;

(2)Web应用如果发现用户尚未经过认证,就将用户导向到SSO(Single Sign On,单点登录)服务器登录地址;

(3)浏览器被重定向到SSO服务器的登录页面,并提示用户输入用户名和口令; (4)如果用户名和口令被SSO服务器成功认证,则SSO服务器将浏览器重定向到原Web应用的服务器,并且在URL(统一资源定位符)参数中包含一个票据;

龙源期刊网 http://www.qikan.com.cn

(5)Web应用获得了浏览器传来的票据后,连接SSO服务器,检查票据是否有效; (6)SSO服务器若验证票据成功,则返回一个肯定的回复给Web应用,整个验证过程接受。

从上面的过程可以看到,用户认证并不是通过Web应用本身完成的,而是委托给SSO服务器完成的,因此,有多个Web应用时,用户始终使用一个用户名和口令通过SSO服务器登录,这就是单点登录的实现。此外,用户看不到第5、6步,即Web应用和SSO服务器通信的过程。由于只有SSO服务器才知道用户名和票据的关系,因此用户无法伪造票据。要保证用户无法猜出SSO服务器生成的票据,SSO服务器生成的票据就必须非常随机,以确保整个系统的安全。

由于单点登录只能解决用户的身份认证问题,所以授权工作则交给其他对象来完成。本文将以JA-SIG CAS3.0协议为技术,实现单点登录统一身份认证的目标。 二、统一身份认证系统工作机制

单点登录统一身份认证的过程意在从入口级保证Web应用的安全。本文将研究采用开源的JA-SIG CAS3.0协议实现单点登录统一身份认证。

从物理体系结构上分析,统一身份认证服包含两个部分: CAS 服务器 和 CAS客服端。CAS 服务端需要部署,主要负责对用户的认证工作;CAS客服端负责处理对客户端受保护资源的访问请求,需要登录时,重定向到 CAS 服务器。CAS 最基本的协议过程时序如图2所示。CAS客户端与受保护的客户端应用部署在一起,以过滤器方式保护敏感资源。 在该协议中,所有与 CAS 的交互均采用 SSL 协议,确保服务票据和TGC 的安全性。协议工作过程中会有2次重定向的过程,一次是重定向用户请求到CAS服务器,另一次是将已通过认证的用户请求重定向到其所欲访问的网络地址。CAS服务器和客户端之间的票据验证和重定向过程均不为用户所见,对用户是透明的。

此外,对于更加复杂且安全性要求更高的情况,可是使用CAS协议中为用户提供的代理模式来完成此目标。本文不涉及该代理模式,因此不予具体研究。

在该协议中,所有与CAS的交互均采用SSL协议,确保ST和TGC的安全性。 三、统一身份认证服务器的实现 1.软件的获取

龙源期刊网 http://www.qikan.com.cn

JA-SIG CAS是一款开源的单点登录统一身份认证软件,它为企业提供开源且具有良好结构的协议;且其开源Java服务组件可以为用户提供二次开发的可能;与之相对应的客户端有多种,如Java,.Net,PHP,Perl,Apache,Uportal等。 2.构建用户信息库

CAS服务器的认证依据是保存在服务器上的用户信息库。当用户提交的认证信息与此信息库的内容相匹配时,CAS服务器才会返回一个true或false,表明用户身份的真假。 由于CAS服务器支持多种认证方式,如LDAP认证,JDBC认证及XML文件认证等,因此CAS 提供了一种灵活但统一的接口域实现分离的方式,实际使用中 CAS 采用哪种方式认证是与 CAS 的基本协议分离开的,用户可以根据认证的接口去定制和扩展。当用户信息相对稳定,变化较小时,可以采用轻量级目录服务器LDAP,提高系统检索效率;当用户信息需经常变动时,可采用数据库存储;当用户信息量较小时,可以采用普通的XML文件方式。 本文为保证用户密码安全,要求用户在一定时间内必须修改自己的密码,因此采用JDBC认证方式,且使用MySQL数据库构建用户信息库,其表结构如图3所示。 3.统一身份认证服务器的关键技术实现 (1)配置HTTPS协议

统一身份认证服务器之所以要配置HTTPS协议,是因为它是一个http的安全版,具有安全的通信信道。使用它可以解决:在统一身份认证服务器和客户端之间建立安全的数据通道,实现客户端与服务器二者之间的相互身份认证。[3]其具体配置流程如图4所示。具体实施步骤请参考文献。[4]

(2)部署CAS Server

CAS Server 是一个 Web 应用包,将前面下载的cas-server-3.1.1-release.zip 解开,把其中的 cas-server-webapp-3.1.1.war 拷贝到 tomcat的webapps目录,并更名为 cas.war。由于前面已配置好 tomcat 的HTTPS协议,可以重新启动 tomcat,然后访问:https://localhost:8443/cas ,如果能出现正常的 CAS 登录页面,则说明 CAS Server 已经部署成功。

虽然 CAS Server 已经部署成功,但这只是一个缺省的实现,在实际使用的时候,还需要根据实际概况做扩展和定制,最主要的是扩展认证 (Authentication) 接口和 CAS Server 的界面。界面在cas/WEB-INF/view/jsp/default。 (3)扩展认证接口

龙源期刊网 http://www.qikan.com.cn

如果用户的信息量比较大,一个单纯的XML文件就不能满足频繁且大量的用户信息查询过程。因此可以通过配置一台专门的用户数据库,保存其用户名及密码(JA-SIG CAS系统默认已用户的密码来进行身份信息的认证)。如果用户名和密码信息被修改的概率比较低,且不频繁,可以使用轻量级目录服务器LDPA来建用户信息库。如果为了保证用户身份的真实性,即保证能过户的密码安全,要求用户定期或不定期的修改自身密码,那么当频繁地修改操作,采用关系数据库MySQL就比较方便。因为轻量级LDPA在进行信息修改时,没有MySQL进行得容易。

本文以使用MySQL数据库存储用户信息为例,实现扩展认证接口的关键技术如下: 用编辑器打开%CATALINA_HOME%/webapps/cas/WEB-INF/deployerConfigContext.xml,找到

注释掉该行,在其下加入:

添加一个新bean:

destroy-method=\"close'>

com.mysql.jdbc.Driver

jdbc:mysql://localhost:3306/test

龙源期刊网 http://www.qikan.com.cn

username password

拷贝cas-server-jdbc-3.0.5-rc2.jar和mysql-connector-java-3.1.12-bin.jar到%CATALINA_HOME%/webapps/cas/WEB-INF/lib下。 (4)配置CAS 客户端

统一身份认证服务器建设完毕之后,如果某应用程序需使用该认证服务器进行用户身份认证,需在该应用程序的类库中加入统一身份认证客户端的jar文件(通常名为casclient.jar,并可在网络上下载到),并在应用程序配置文件中进行统一身份认证服务器客户端的配置。具体如图5所示。 四、结束语

统一身份认证技术已成为当今网管及研究人员的关注重点。如何搭建高效的CAS服务器、实现用户身份的认证是保证网络应用安全的首要问题。本文结合统一身份认证原理,详细介绍了CAS服务器的搭建过程及相关关键技术,介绍了如何扩展CAS服务器的接口,使之有效地与外界数据库进行整合(如MySQL,LDPA等),并以链接MySQL数据库为例,介绍用户库的设计与实现。最后对CAS服务器的客户端配置和页面扩展进行了陈述。?筅 参考文献:

[1]嵇智辉,倪宏,刘磊等.一种基于双令牌机制的单点登录模型研究[J].计算机工程与应用,2008, 44(30):131-134.

[2]廖雪峰.Spring2.0核心技术与最佳实践[M].北京:电子工业出版社,2007:120-200. [3]茹惠素.基于HTTPS协议的统一登录系统设计与实现[J].浙江工业大学学报,2008(36):527-530.

龙源期刊网 http://www.qikan.com.cn

(编辑:杨馥红)

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务