基于UCenter的校园网单点登录系统的研究与实现
2018-04-26王洪海
龚 艺,纪 娟,王洪海
(四川广播电视大学, 四川 成都 610073)
一、引言
随着高校信息化建设深入发展,网络规模不断扩大,各类信息系统逐渐增多,例如学工系统、在线学习平台、教务管理系统、校园一卡通系统等已经成为校园网信息管理的重要手段。业务复杂性、开发难度、管理模式等多种因素导致大多数系统相对独立管理和运行,信息孤岛、信息安全等问题日益突现。多个系统并存使得校园网用户被迫拥有多个不同用户账号和用户密码,在用户体验度、安全隐患、管理员管理和维护难度等方面都带来诸多负面影响。在校园网中多个信息系统的基础上实现单点登录具有重要的现实意义。
单点登录(Single Sign-On)简单地说,就是用户在一个登陆点进行身份验证后,便可以根据该身份对一组与该登陆点相关的应用进行访问。也就是一次验证,多次登陆[1]。通过单点登录系统,实现用户一次登录,即可自由访问已经建立了信任关系的多个业务系统,从而实现用户只需登录一次即可在多个系统之间自由切换。
二、单点登录技术研究
目前较为流行的单点登录实现方式有:基于Passport协议实现,基于Liberty协议实现,基于CAS协议实现,基于UCenter实现等。
基于Passport的单点登录是Microsoft公司所提出的基于Kerberos认证机制的单点登录平台,其认证过程通过Passport服务器验证用户信息后返回认证票据。基于Passport协议的单点登录有单点失效的风险,也容易成为黑客攻击的目标。另外Passport协议是基于微软系统开发,协议代码并未公开,应用范围较为有限。
基于Liberty Alliance协议是一个与Internet任何器件相连都能实现的具有开放性的、联合性的、统一身份识别的解决方案,该协议是基于SAML的认证机制实现的,所以其应用性及其广泛,可以支持多种技术去做单点登录服务[2]。相对于Passport协议Liberty Alliance摒弃了中央集中式的服务方式,转而由每个Web应用维护身份提供者和服务提供者列表。但是这些列表的维护需要手动维护,使得Liberty的实现缺乏灵活性。另外Liberty协议并未开源,在实际实现过程中难度较大。
CAS是耶鲁大学的一个基于JAVA开发的开源项目,CAS单点登录是一个基于经纪人实现单点登录模型。CAS分为两个部分:CAS Server和CAS Client,它将认证和授权统一放在了CAS Server去处理,然后在CAS Client统一对资源进行保护和对Ticket进行验证,两个部分在CAS协议中担任的角色互不相同但是又无法分开[3]。
UCenter是北京康盛新创科技有限责任公司(Comsenz)的一款开源一站式登录解决方案[4]。UCenter提供了用户同步登录、退出、注册等相关接口,可以实现用户一个账号,一次登录,全站通行。UCenter可以将 Comsenz旗下的 Discuz、uchome等应用无缝连接起来,实现一站式登录。本文在UCenter基础上,对UCenter进行扩展以满足校园网单点登录的需求,连接除了Comsenz旗下系统之外多个学校自主开发系统。
三、UCenter通信原理
UCenter由 UCenter server和 UCenter client两个部分组成,UCenter server与UCenter client通信主要通过API接口实现,UCenter server记录了所有要实现单点登录的UCenter client的接口地址、通信密钥、应用类型等信息,UCenter server通过MySQL数据库记录用户的用户名、密码等信息。UCenter的通信过程如图1所示。
图1 UCenter通信过程
同步登录通信步骤为:
(1)用户应用通过uc_user_login接口向UCenter server发送用户名和密码等信息;
(2)UCenter server接收到用户名和密码,通过向数据库查询后向用户应用返回验证是否成功的信息;
(3)用户应用接收到返回信息后,如果验证成功则通过uc_user_synlogin向UCenter server发送同步登录请求;
(4)UCenter server根据同步登录请求中的用户名、密码信息,以及其所记录的其他应用服务器信息,例如UCenter clientA、UCenter clientB等应用,生成相应的同步代码,并返回给用户应用;
(5)用户应用收到同步代码后,将同步代码通过js的方式通知UCenter clientA和UCenter clientB等应用的API接口,其中的js代码格式为
(6)UCenter client通过API中在UCenter server端注册的接口收到用户请求后,根据用户uid查询到相应的用户密码后,为用户设置session登录操作,进而完成用户UCenter clientA,UCenter clientB等登录的操作,从而实现多站点同时登录。
UCenter同步登出的操作与同步登录操作类似。
四、校园网单点登录系统设计与实现
(一)单点登录系统的设计
本文中校园网涉及的平台主要包括在线学习平台、在线考试平台、学生空间、教师空间、在线论坛等多个平台,单点登录系统实现的目标是用户能够通过统一的登录页面进入系统,无须多次登录即可在多套系统之间正常运行使用。由于各系统并未统一部署和建设,统一管理角色权限难度较大,因此用户的角色权限仍然由各个系统独立控制,但是用户名和密码则统一由单点登录系统统一管理,由单点登录系统对用户、密码等信息做统一的加密等安全保护措施,保证用户的基础信息统一管理,安全性也得到保障,同时提高了管理效率。具体的设计模型如图2所示。
单点登录系统包括单点登录平台、UCenter server、各系统平台中的UCenter client接口、UCenter数据库四个部分,用户通过单点登录平台实现多个系统平台的登录,UCenter数据库统一管理所有平台的用户名和密码信息。
(二)单点登录系统实现
(1)建立UCenter服务器
首先搭建好UCenter运行环境,具体环境方案Linux/MySQL5.0/Apache/php5.0.0,下载UCenter1.5.0,通过FTP上传到UCenter服务器,进行安装。
(2)配置UCenter服务器
UCenter服务器的配置UCenter Server与UCenter client之间的配置,便于建立UCenter server与UCenter client之间同步通讯,主要参数配置如表1所示。
表1 主要参数配置
UCenter服务器配置包括与数据库之间连接配置信息,按照工程中实际设置配置即可。
(3)UCenter Client接口的实现
UCenter Client接口主要实现了在用户发起同步登录请求是,根据用户返回的代码调用UCenter Client接口,从而实现UCenter Client的同步登录和退出。
(4)建立单点登录平台,主要实现用户
的单点登录页面,作为用户应用向UCenter server发送登录请求,接收UCenter server的验证返回信息后,向UCenter server发送同步登录请求,接收UCenter server返回的同步登录信息后,通过AJAX异步请求的方式向所有UCenter client发送js代码,实现所有UCenter client的登录,而用户感觉不到后台操作。
(三)UCenter与.NET系统整合
UCenter系统的开发环境为php,在校园网中,学生空间、教师空间、在线考试平台等都是.NET开发环境,为了能够实现UCenter跨平台、跨域实现,在单点登录的实现过程中,开发了UCenter通信的类库,使得.NET系统通过UCenter实现了用户的同步登录和登出功能。具体实现为:
(1)开发.NET与UCenter通信的类库,并将此类库引入到UCenter Client项目中[5],其通信类库的实现主要代码为:
在.NET中实现的类库主要包括单点登录用户应用向 UCenterserver发送登录请求的uc_user_login,单点登录用户应用向UCenter server发送同步登录请求的uc_user_synlogin,响应单点登录用户js代码响应请求的接口SynLogin。
(2)将上述通信类库引入单点登录平台项目和UCenter client中,并利用上述类库建立登录页面。
(3)在需要实现同步登录的UCenter Client项目中,建立ucnet.ashx,作为接收单点登录用户应用发送js代码的响应接口,从而实现UCenter Client本地的登录事件,主要实现代码为:
通过上述UCenter与.NET的整合,使得UCenter不仅能与PHP系统实现单点登录,同时还能实现与.NET系统实现单点登录,使得UCenter单点登录的功能得到了进一步的拓展。随着校园网络的不断发展,可以将更多的信息系统整合到UCenter中,为校园网给类用户带来系统访问的良好体验,同时也简化了用户的管理流程。
五、结束语
随着教育信息化进程的不断推进,校园网的信息系统建设不断增加,本文基于UCenter,进一步实施了.NET系统在UCenter系统的整合,很大程度地拓展了UCenter的应用范围,实现了跨域连接多个应用系统的单点登录平台。随着信息系统的不断建设,在本文研究的基础上,可以快速地将更多的系统纳入到单点登录平台中。
在未来的单点登录系统设计中,还有许多需要改进之处,例如单点登录系统的安全性问题、信息交互的安全性问题以及用户管理的灵活性等问题都需要更进一步的研究与改进。未来可以考虑引入LDAP方式来提高用户信息的查询速度和效率,引入kerberos协议加强用户认证的安全性,还可以考虑将用户角色权限控制统一纳入管理以减轻各系统用户角色权限维护的复杂性,避免重复的开发建设问题,从而提高校园网内整体的管理效率和安全性,使得校园网内用户拥有更好的信息化访问的体验,同时减轻校园网管理员的管理工作量,提高管理效率,使校园网信息化建设迈向更高的台阶。
参考文献:
[1]林满山,郭荷清.单点登录技术的现状及发展[J].计算机应用,2004,24(1):248-250.
[2]吴贤平.基于指纹识别和CAS的单点登录模型技术研宄[J].计算机应用研究,2012,29(4):1381-1383。
[3]李庆林.基于WEB的单点登录和权限管理技术研究与实现[D].北京:北京邮电大学,2017.
[4]王 蕾.基于UCenter的单点登录系统的设计与实现[J].科技视界,2015,(1):48-49.
[5]Asp.net与UCenter用户同步之实施过程[EB/OL]http://www.cnblogs.com/CoreCaiNiao/archive/2011/08/25/2153434.html.