基于用户映射关系的数字校园单点登录的实现*

2010-10-18 07:38聂瑞华梁卓明刘学文
中国教育信息化 2010年15期
关键词:帐号单点漫游

郑 凯,聂瑞华,梁卓明,刘学文

(1.华南师范大学 网络中心,广东 广州 510631;2.广州北大明天资源科技发展有限公司,广东 广州 510632)

基于用户映射关系的数字校园单点登录的实现*

郑 凯1,聂瑞华1,梁卓明1,刘学文2

(1.华南师范大学 网络中心,广东 广州 510631;2.广州北大明天资源科技发展有限公司,广东 广州 510632)

高校校园网多应用系统的环境下,各应用系统均有独立的身份验证机制,给用户带来不便。本文提出的数字校园单点登录机制,解决了数字校园多应用系统的统一身份验证问题。

单点登录;Passport服务器;验证票据;Cookie

一、引言

单点登录提供一个用户管理的统一接口,当用户要访问多个需要认证的应用系统时,只需进行一次登录和身份认证,就可以对所有被授权的应用系统直接访问,不必重新登录。[1]本文结合数字校园建设实践,提出一套基于应用系统间用户映射关系的单点登录机制,并加以实现。

二、系统结构与接口定义

1.系统结构

本文提出的单点登录系统如图1所示,主要有Passport服务器、多个成员应用系统和维护用户映射关系的LDAP目录服务器组成。[2]Passport服务器是单点登录系统的处理核心,它主要完成映射关系管理、登录管理、身份验证管理、URL转发和Cookie管理等工作。

图1单点登录系统的系统结构

2.接口和程序定义

为完成登录验证和应用漫游,定义Passport服务器提供的接口和程序如下:

(1)登录管理接口KeyManagerService

提供getLoginURL、getAuthURL等方法。getLoginURL方法获取用户登录信息,返回含有用户登录信息和登录程序地址的URL字符串;getAuthURL获取用户目前的登录状态,返回含有登录状态和校验程序地址的URL字符串。

(2)用户管理接口UserManagerService

提供addMemberSysUser、deleteMemberSysUser、update-MemberSysUser、getLDAPUserPassword、getUserInfo、change-MemberUserPWD等方法。与目录服务器进行交互,实现增加、删除、修改和查询用户在应用系统中的帐号、密码等操作,维护用户映射关系表。

(3)信息校验接口SecurityPolicy

提供validateTicket、createKey、decode等方法。validate-Ticket方法检验加密信息和票据的合法性和时效性;createKey方法获取用户在漫游目标系统中的登录信息,返回含有登录信息的URL字符串。

(4)登录程序LoginServlet

提供saveTicket等方法。saveTicket方法返回一个含有加密验证票据的Cookie。

(5)校验程序AuthenServlet

提供getTicket等方法。getTicket方法读取Cookie中的加密验证票据。

三、用户映射关系的管理

用户管理机制为需要实现应用漫游的用户配置一个统一的登录帐号作为单点登录帐号,单点登录帐号与用户在其他应用系统中的帐号形成映射关系。系统通过LDAP Schema设计的目录树反映这种映射关系,多个应用系统间的用户映射关系如图2所示。

图2单点登录系统的用户映射关系

用户映射关系可以通过应用系统数据库中的用户信息与数字校园数据中心的人事基本信息相关联得到。在集成了多个应用系统的单点登录系统中,要形成完整的用户映射关系,需要进行多次信息关联,导致系统的复杂度高,可扩展性不强。本文的设计中Passport服务器提供一个用户界面,如图3所示。用户在该界面中手动输入具有访问权限应用系统的帐号和密码,自主选择哪些应用系统实现单点登录的信息关联,具有较好的灵活性和安全性。

图3管理单点登录用户映射关系的用户界面

四、登录验证和应用漫游的实现

1.登录验证

登录验证是指用户首次登录某成员应用系统时的验证和漫游授权过程。当用户登录请求通过成员应用系统验证后,由该系统负责向Passport服务器提交帐号、密码和登录时间等登录信息,Passport查询LDAP服务器中的用户映射表,身份验证成功后,创建一个含有验证票据的Cookie返回给用户,同时URL重定向到用户请求页面。获得验证票据的用户在有效时间内具备了应用系统间漫游的能力。一个完整的登录验证过程如图4所示。

(1)用户在任何一个成员应用系统进行登录,应用系统按本系统的验证机制验证用户登录请求;

图4登录验证过程

(2)验证通过后,应用程序调用 Passport服务器KeyManagerService接口的getLoginURL方法将成员应用系统ID、登录帐号、密码和登录时间等验证信息组合创建加密信息,并将加密信息和访问LoginServlet地址一起,构建成一个URL字符串;

(3)根据包含加密信息和 LoginServlet地址的URL字符串登录Passport服务器的LoginServlet程序;

(4)LoginServlet调用SecurityPolicy接口的validate-Ticket方法解密信息,验证成员系统发送的信息是否正确;

(5)如果登录信息合法,LoginServlet调用saveTicket方法为用户请求创建一个含有加密验证票据的Cookie,否则,直接URL重定向到应用系统的登录页面;

(6)URL重定向到应用系统用户登录后的指定页面,完成登录验证。

2.应用漫游

应用漫游是指获得Passport服务器漫游票据的用户直接登录单点登录系统成员应用系统的过程。Passport服务器验证每次应用漫游票据的合法性和时效性,通过验证后,取出LDAP目录服务器中漫游目标系统的登录帐号、密码和URL地址等信息直接进行登录。一个完整的应用漫游过程如图5所示。

图5应用漫游过程

(1)用户在成员应用系统A的页面上向Passport服务器提交对成员应用系统B的漫游请求;

(2)Passport服务器调用AuthenServlet程序的getTicket方法读取Cookie中保存的验证票据;

(3)AuthenServlet把读取的票据发送给SecurityPolicy接口,SecurityPolicy调用 decode方法解密票据,调用validateTicket方法验证票据的合法性和时效性;

(4)验证通过后,调用UserManagerService的getUserInfo方法读取成员应用系统B的系统ID、登录帐号和密码;

(5)AuthenServlet调用CreateKey方法将读取的成员应用系统B的登录信息组合创建加密信息,并将加密信息和系统登录页面的地址一起,构建成一个URL字符串;

(6)根据URL字符串内容重定向到成员应用系统B,完成应用漫游。

五、验证票据的安全性

为提高验证票据的安全性,系统发放的票据必须进行加密,这样即使票据被非法截取,只要加密算法和密钥强度足够高,也极难被破解。本文单点登录票据的加密采用了3DES加密算法,3DES是DES向AES过渡的加密算法,是DES的一个更安全的变形,算法的密钥长度为112位或168位,加密解密运算速度较快。[3]

验证票据包含了一个标识票据有效期的时间戳,记录了用户发起登录验证的时间,当登录验证后流逝的时间超过有效期后,为保证票据的安全性,该票据将失效。票据有效期的设定既要顾及用户的使用方便,也要考虑票据的安全性,一般为5分钟到10分钟之间。

六、结束语

本文提出的基于用户映射关系的数字校园单点登录机制解决了高校多业务应用系统环境下的分散登录问题,以B/S方式实现了任何成员应用系统之间的互访,成员应用系统的结果返回页面可以直接嵌入到其他成员应用系统(如信息门户系统)的页面中。系统采用了可靠的加密算法,可以预防恶意的信息截取和身份伪造等安全隐患。在此单点登录机制下,华南师范大学数字校园建设实现了多达14个应用系统的统一身份验证和应用漫游功能。

由于目前的单点登录机制主要依赖于验证服务器及其提供的接口和程序运作,如何提高验证服务器的健壮性和安全性,需要进一步的研究和解决。☉

[1]程宏斌,孙霞.单点登录技术研究[J].计算机时代,2004(5): 3-4.

[2]赵明,郭常杰等.基于LDAP的目录服务器的研究与实现[J].计算机科学,2000,27(5):84-86.

[3]郑磊,易波.基于单片机的实时3DES加密算法的实现[J].微处理机,2000(3):40-42.

(编辑:杨馥红)

TP393.08

A

1673-8454(2010)15-0038-03

华南师范大学“211工程”项目支持。

猜你喜欢
帐号单点漫游
历元间载波相位差分的GPS/BDS精密单点测速算法
霹雳漫游堂
NASA漫游记
数字电视地面传输用单频网与单点发射的效果比较
企业信息门户单点登录方案设计
前后向平滑算法在精密单点定位/ INS 紧组合数据后处理中的应用
边走边看:漫游海底 梦想成真