APP下载

遗产系统集成中单点登陆的实现

2010-01-29苏,华

苏州市职业大学学报 2010年1期
关键词:基础架构访问控制单点

张 苏,华 英

(苏州市职业大学 计算机工程系,江苏 苏州 215104)

遗产系统的整合涉及很多层次,可以是业务流程的整合,也可以是数据的整合,其主要目的是将企业的业务流程、应用软件、硬件和各种标准联合起来,在多个企业应用之间实现无缝集成.而遗产系统的整合和统一企业平台的构建的区别在于遗产系统是企业在各个时期已经开发完成的,每个系统都有其各自的用户管理、访问控制管理和数据管理模块,而且系统结构也不一样,有客户机/服务器(C/S—Client/Server)也有浏览器/服务器(B/S—Browser/Server)结构.对于这些已经开发完成的系统,希望将他们整合在一起,提供统一的入口,架构集成的企业基础平台.这样既能避免由于信息冗余,用户身份不一致带来的安全性问题,又可提高企业的工作效率.同时在开发新系统时也可尽量利用已有的系统资源,使所有企业应用系统以一致的面貌对外提供服务[1-2].

1 企业集成基础架构的单点登陆平台

单点登陆指在企业级的信息系统环境下,一个使用者登陆一次,即可使用所有他有权限访问的应用系统.希望达到这样的效果:在门户网站或企业集成基础架构的某一个应用中登陆之后,访问其他相关应用无需重复登陆,系统提供统一的身份认证和访问控制管理,各个应用系统之间共享用户信息[2].

对于遗产系统来说,系统本身已经有开发完善的身份认证和访问控制模块,而要将这些模块统一到一个平台上,势必需要改写这些模块,这里讨论的是如何以较小的代价来完成这些工作.首先统一的身份认证是必须要实现的部分,而访问控制管理是否要统一需要具体情况具体分析,可以提供统一的管理,也可以仍由遗产系统原来的访问控制模块来管理.而各个应用系统的用户信息是否需要完全共享也需要具体情况具体分析[4].

图1所示为企业集成基础架构单点登陆平台的网络拓扑结构.该平台主要由统一的身份认证和统一访问控制组成.通过用户名/密码、Windows域等多种认证方式,进行身份认证.LDAP目录服务存储企业总部与分支机构的数字身份数据,是企业范围内最完整、最准确的身份库.当用户输入用户名/密码登陆时,首先由身份认证管理模块将身份信息向LDAP目录服务进行验证.通过验证后,由访问控制模块对用户提出的对于子系统的访问请求根据其相应权限进行访问控制[4].

图1 企业集成基础架构单点登陆平台网络拓扑结构

2 单点登陆平台系统结构

要将已开发完成的系统集成起来,构建企业集成基础架构,需要解决以下问题:

(1) 如何实现用户身份信息在遗产系统间的共享;

(2) 各个系统如何检查用户的登陆状态;

(3) 如何提供统一的访问控制管理;

(4) 如何对遗产系统原有的身份认证和访问控制模块进行改造,以最小的代价获得满意的效果.

为了实现单点登陆,需要建立一个中心的认证服务.当用户提出对于某个应用系统的访问请求后,由应用系统判断该用户是否已经在集成基础架构的某一个应用中登陆过,根据其登陆后的全局身份信息对其提出的访问请求的合法性进行判断,做出允许其访问或禁止其访问的结论.单点登陆平台系统结构如图2所示.

设立一个中央的身份认证和访问控制信息数据库,保存用户的全局基础数据信息,以及各个子系统特有的信息,以全局应用实例编号来标识.身份认证管理模块和访问控制管理模块供管理员配置用户的身份和访问权限.用户也可以使用信息自管理模块对自己的信息进行维护.将各遗产系统的基础数据统一到中央数据库中以实现系统间信息的共享.

而应用系统如何核实用户是否已在集成基础架构的某一个应用中登陆过,对于B/S结构的应用来说可以使用COOKIES、SESSION或SAML技术来实现,无需重新登陆,可直接检查用户的身份信息.对于C/S结构的应用来说还是需要通过登陆中心服务器获得用户身份信息来保障访问的可控.

中央数据库不仅可以存放用户的身份信息,还可以以应用实例的形式存放每个应用系统的访问控制信息,这样就可以提供全局的访问控制管理.当然并不是必须要使用该功能,有些应用可能并不希望这么做.对于已开发完成的C/S结构的应用可能没有必要重写其访问控制管理部分.但是对于B/S结构的应用,可以开发通用的身份认证和访问控制用户控件,将其嵌在每一个页面中,然后在中央服务器中给每一个应用实例配置用户访问控制信息,就可以使不同的系统像一个整体对外提供服务.这里程序员所作的工作仅仅是用统一的用户控件替换掉原页面的身份认证和访问控制代码,再在中央数据库中对身份信息和访问控制信息进行配置,这样对原有系统的改动很小,却可以使不同的系统以统一的方式对外提供服务[5].

图2 单点登陆平台系统结构

3 对遗产系统的改造

对于遗产系统的改造,首先要确定哪些信息需要搬迁到中央数据库中存储,接着确定身份认证和访问控制逻辑哪些部分需要重写.对于C/S结构的遗产系统,由于访问控制逻辑和企业应用业务逻辑经常杂糅在一起,界限不清,改写代价较大,可以考虑保留.

对于B/S结构的遗产系统来说,虽然是不同的应用,但是其程序运行流程一样:客户端接受用户的请求,客户端向应用服务提出请求,应用服务从数据库中获取数据,应用服务对数据进行计算并将结果提交给客户端,客户端将结果呈现给用户.B/S 结构系统的访问控制可以统一解释成用户访问特定页面许可的判断.因此对于B/S结构系统的每一个页面,首先需要确定来访者的全局身份,接着确定该用户是否有权利访问本页面,最后在页面上显示该用户本系统内可以访问的页面范围.可以开发一个用户控件实现以上功能,该控件内嵌在企业集成基础架构的每一个子系统的每一个页面中,其实现思路如下:

(1) 用户要求访问某页面时,页面用户控件首先判断该用户是否已经在集成基础架构的某一个Web应用中登陆过,取得其身份信息.如未曾登陆,要求其登陆.登录后,将用户的全局身份信息和该系统的特有信息保存在SESSION中,也可以采用COOKIES或SAML技术来实现该功能.

(2) 判断用户是否有权利访问当前页面.每个系统都有一个全局实例编号,控件根据全局实例编号和用户的全局身份信息到中央数据库根据访问控制信息查询该用户是否有权利访问当前页面.访问控制目前一般根据基于角色的访问控制技术进行设计和实现.当然访问控制信息也可以选择和系统的业务数据放在一起,这在用户控件中应当是可配置的,但是访问控制实现的逻辑方法必须是一致的,这样才能提供统一的访问控制管理.

(3) 确认该用户有权访问本页面后,可由用户控件生成、显示该用户在当前系统中可使用的功能列表,以功能树的形式组织.同样功能列表信息可以和业务数据存放在一起,也可以统一存放在中央数据库中,由全局实例编号标识、存储.

将该用户控件嵌在企业集成基础架构的每一个Web子系统的页面中,这样所有子系统的身份认证和访问控制逻辑是一致的,管理员在中央数据库中对用户全局信息和其在某子系统中的访问权限进行配置,就可以提供统一的身份认证和访问控制管理,实现系统间的单点登录.

4 结 论

将遗产系统进行整合可以提高系统整体运营效率,解决子系统间信息不一致造成的安全漏洞,在开发新系统时也可尽量利用已有资源,提高新系统的开发效率和安全性.本文讨论了基于遗产系统构建企业集成基础架构的实现方法,该方法在某高校宿管科宿舍管理系统、人员管理系统、门户网站的系统集成中取得了良好的应用效果,对于遗产系统整合和企业门户网站构建具有一定的参考价值.

[1] PFITZMANN B,WAIDNER M.Analysis of liberty single-sign-on with enabled clients[J].IEEE Internet Computing,2003,7(6):38-44.

[2] 张广胜,蒋昌俊,汤宪飞,等.面向服务的企业应用集成系统描述与验证[J].软件学报,2007,18(12):3015-3030.

[3] 赵合计,陆 波.遗产软件系统的重构过程[J].计算机工程与科学,2004,26(6):89-91.

[4] 杨文波,张 辉,刘 瑞.基于Cookie的门户系统单点登录模型[J].计算机应用研究,2006,23(8):100-101.

[5] 沈海波,洪 帆.基于WS-Federation的Web服务跨域单点登录认证分析[J].计算机应用研究,2006,23(2):116-118.

猜你喜欢

基础架构访问控制单点
历元间载波相位差分的GPS/BDS精密单点测速算法
自由流收费下的联网收费结算中心基础架构设计
超薄异型坯连铸机非平衡单点浇铸实践与分析
智慧高速+互联网环境下信息化基础架构浅析
我国云IT基础架构投资保持高速增长
IDC发布云计算IT基础架构Q4跟踪报告
ONVIF的全新主张:一致性及最访问控制的Profile A
数字电视地面传输用单频网与单点发射的效果比较
动态自适应访问控制模型
浅析云计算环境下等级保护访问控制测评技术