校园网环境下统一身份认证系统的设计与实现
2010-11-22潘正清陶卫亮
潘正清,陶卫亮,陈 利
(湖北汽车工业学院 电气与信息工程学院,湖北 十堰442002)
随着高校信息化建设不断深入,各高校纷纷开始建立各种网络应用系统。经过多年不断的积累和改进以及网络应用开发技术的不断飞速发展,加之各高校没有专门的研发部门进行统一架构设计,这样就造成了不同平台技术和结构开发的大量应用系统共存的现象。每个应用都有各自的一套身份验证和访问控制机制,用户访问多套应用系统时都要输入不同的账号和密码,给用户的操作和使用带来很大的不便,也容易导致密码安全等问题。除了给用户带来了问题外,现有的用户管理和用户认证还存在着以下问题[1]:
1)用户角色和用户权限的一致性难以维护,使得管理用户任务繁重。
2)每个应用都开发自己的用户认证系统,造成重复开发,不利于跨系统的整合。
因此,建立一个为所有应用服务的统一的身份认证系统是非常必要的。统一身份认证的思想就是由全校范围内唯一的认证服务器接管各种应用的认证模块,各应用只须遵循统一的认证服务调用接口即可实现用户身份的认证过程。至于用户的身份信息密码的存储和网络上传输的安全性,由身份认证提供的安全协议来保证,这样不仅免去了应用开发人员在这方面的重复工作,也能够避免各种不规范的未经检验而实际存在漏洞的加密方法在各应用中被使用。
目前,关于统一身份认证的解决方案主要包括Microsoft提供的 Passport、IBM 提供的 WebSphere Portal Server和Sun提供的Identify Server。本文提出了基于Web Services的统一认证系统的解决方案,设计并实现了统一身份认证系统,避免了在各个应用系统的身份信息数据库的数据同步更新,同时也避免了各个应用系统的重复开发,提高了系统的可集成性。
1 统一身份认证系统的整体设计
基于校园网多应用的统一身份认证系统的核心功能是要实现用户的“一次登录,处处访问”,同时还要求系统具有良好的可扩展性,使新开发的系统也能够很容易的使用身份认证系统。为了保证系统的性能,采用了“信任代理模式”[2-3],基于 Web Services技术的统一身份认证采用数据库技术,与数据存储系统的无关性,Web Services具有松散耦合、良好封装性、无关性、高度可集成能力的特性[4]。该模式的优点是可以统一部署系统的安全策略,减轻客户端工作量,缺点是服务器的负担比较重,因为所有的消息都要通过服务器的转发,一旦服务器发生故障,会导致校园网所有应用都无法访问。
Web Services的实质是 Services Requestor(服务请求者),Services Provider(服务提供者)和UDDI Registry(UDDI 注册中心)[1]的交互操作。本文以 3种实体间的互操作为主线,充分考虑各实体之间的交互操作及流程,系统总体结构如图1所示。
图1 系统总结构
服务请求者(Services Requestor):服务请求者角色可以由浏览器来担当,也可以由其它的应用程序来担当,由人或无用户界面的程序[5],例如另外一个Web Services来控制它们的行为。
服务代理(Services Proxy):在 Web Services技术架构下,用户都是通过服务代理去访问相关的Web Services的。代理由服务请求者生成并调用,服务请求者一般都是一个客户端应用程序或者浏览器。
Web Services 网关 (Web Services Gateway):Web Services网关不仅提供身份认证功能,同时还要负责服务请求者)和服务提供者之间以及用户管理服务器和数据库之间的消息交换。
UDDI注册中心(UDDI Registry):注册中心用来存储所有支持身份认证应用系统的信息,在注册时,每个应用系统都被分配了一个128位UUID,这个UUID可以在用户定义关联账号或是使用统一身份认证服务进行应用系统访问的时候用于标识相应的应用系统。
中心数据库(Date Center):中心数据库主要存储了身份认证系统中所有用户的3种类型的信息:1)用户的详细注册信息,包括用户名、密码以及其他的信息;2)用户的角色信息;3)账号的关联信息。
用户角色维护模块(User Role Manage):该部分是用户管理的核心,实现了用户角色的管理功能,用来完成用户的注册、注册信息的修改、设定修改用户的角色以及用户的删除。
2 数据实体的设计
通过对身份认证系统功能的分析,可以得出本系统中的主要数据包括统一身份用户(User)、应用系统账户(Account)、应用系统(Application)、系统会话(Session)等实体[6],实体及其关系的 E-R 图如图2所示。
图2 E-R图
1)用户(User):即统一身份认证服务的用户,身份认证系统的用户都拥有一个合法的用户名和密码,用户使用该用户名和密码登录成功后,即可访问系统中的所有应用,它可以映射到多个应用系统帐号。
2)帐号(Account):应用系统的帐号,与统一身份认证服务的用户相关联。一个用户可以关联多个帐号,当用户登录成功,开始访问某一具体应用时,系统会根据帐号的映射信息自动的对应该应用系统的账号和密码包含在请求的消息中。
3)应用系统(Application):使用统一身份认证服务的应用系统,所有支持统一身份认证的应用系统都被注册在了UDDI注册中心,每个用户由于角色的不同,都会有一个可访问的资源列表,用户只能访问权限范围内的应用。
4)会话(Session):当用户登录统一身份认证服务后,即创建了一个活跃的会话,并获得会话的认证令牌,在这个会话中用户可以使用会话的认证令牌访问各种应用系统。
3 系统的实现
在Internet应用环境下安全性和信任的重要性是显而易见的,对于商用系统而言避免非法访问和入侵是他所需要考虑的几个重要问题之一,在信任代理模式下一个组织可以为他所有需要提供安全信任保障的应用系统设置一个统一身份认证服务。对这些应用系统的访问全部由统一身份认证服务代理。工作过程如图3所示。
图3 信任代理模式原理
认证模式的流程描述如下:
1)用户使用在统一认证服务注册的用户名和密码 (也可能是其他的授权信息比如数字签名等)登录统一认证服务;
2)统一认证服务创建了一个会话,同时将与该会话关联的访问认证令牌返回给用户;
3)用户使用这个访问认证令牌访问某个支持统一身份认证服务的应用系统,不过用户并不将请求消息直接交给应用系统,而是传给统一身份认证服务在消息中标识了最终的应用系统的ID;
4)统一认证服务访问应用系统注册库(UDDI Registry),获取了应用系统的访问入口(统一认证服务可以将这个访问入口缓存在本地以减少以后与应用系统注册库的交互次数)并确认这个应用系统的确是支持统一身份认证服务的;
5)统一认证服务将请求消息转发给指定的应用系统,如果该应用系统使用自己的用户系统的话,那么该消息应当包含了预先定义好的相关联的用户名和密码等;
6)应用系统将请求结果返回给统一认证服务,最后统一认证服务将响应消息返回给用户完成调用。
在该模式下,所有应用系统仅接收来自统一认证服务的访问请求,用户的所有请求都要经过身份认证服务的转发才可以到达应用系统,这样只有身份认证服务知道这些应用的访问入口,避免了用户对应用的恶意攻击或者破坏。同时对于应用程序来说,只要确保只和认证服务器通信,即可保证应用的安全。这样,解决方案提供商可以将主要的安全方面的投入部署在统一认证服务那端。系统实现界面如图4所示,其它需要密码访问的应用模块只要调用认证模块调用接口即可实现用户身份的认证。
图4 认证模块
4 结 论
在深入分析Web Services技术的基础上,充分利用面向对象的设计思想,设计并实现了基于校园网的统一身份认证系统,实现了校园网软件资源的统一管理和用户资源的管理。由于本文主要侧重统一身份认证服务功能的设计与实现,对认证服务安全性方面的考虑较少,下一步的工作是对安全性进行完善,主要包括数据传输的保密性和访问控制的合法性。
[1] 况志军,李正凡,熊国良,等.数字化校园研究与开发[J].华东交通大学学报,2003,20(2):93-95.
[2] 王泽军, 沈 炜.身份认证技术 [J].金融电子化,2003(1):49-50.
[3]黄家林,廖俊平.网络用户安全身份认证系统设计与实现[J].电脑开发与应用,2003,16(4):40-41.
[4]郑东曦.基于Web服务的统一身份认证服务的设计实现[J].计算机工程与设计,2006(3):921-923.
[5] 张庆平,郑 辉,等,Web Services认证体系的分析与实现[J].计算机应用,2003,23(4):56-59.