基于LDAP的统一身份认证平台的研究与应用
2013-09-20许柳威田文雅
许柳威,田文雅
(浙江经贸职业技术学院 图书信息中心,浙江 杭州 310018)
随着网络技术的发展与应用,以及数字化校园建设的不断推进,校园内各种应用系统也不断增加,从而致使网络管理,尤其是基于应用及用户的管理变的更加复杂。 在不同的应用系统中,每个应用系统都需要设置账号,对于不同的用户也有着不同的权限,这就带来了许多问题,管理起来很不方便;尤其是用户面对多个应用系统需要输入不同的账号和密码,不仅烦琐不易记忆,而且容易出现密码丢失等安全隐患。目前,亟需解决的主要问题是如何使校园网用户只拥有一个账号,却可以在多个不同的应用系统中登录并使用。[1][2]
基于 LDAP(Lightweight Directory Access Protocol)的统一身份认证平台的实现以及应用不仅使应用系统的认证问题以及用户管理得到有效的解决,使校园网内所有用户的身份信息得到统一,还使应用系统的技术难点得到实现,可见,对于解决校园网目前存在的主要问题,基于LDAP的统一身份认证平台具有积极重要的作用。
一、LDAP协议简介
目前主流的统一身份认证方案中,都使用了目录服务技术。作为标准的目录服务技术中的一种,LDAP基于X.500标准(也被称为“DAP”协议)。X.500的特点主要表现为具有层次性,其不足之处则主要体现在,丰富的操作以及数据模型不仅使其显得比较笨重,还使其非常复杂,另一方面,它具有的功能十分强大,同时还包括了所有的查询更新协议以及命名空间。为了解决X.500标准的不足之处,密歇根州(Michigan)大学推出了一种较为简单的基于TCP/IP协议 的DAP新版本,也就是LDAP协议。与其他协议相比,它比较简单,主要是用于Internet,同时,它还可以依据应用的需求来进行扩展以及定制。LDAP协议实现了目录服务在TCP/IP上的的运行,这一点同时也是和X.500的不同之处。LDAP协议之所以能够保证用户数据量较大的情况下满足性能上的需求,主要是因为它对Internet访问支持极其好,并且对内容读取、快速响应大量的浏览以及快速响应大量的浏览做了专门的优化。[3]LDAP的核心规范在RFC中都有定义。[4]
与其他专门在线事务处理优化关系型数据库相比较,LDAP服务的数据处理速度能够快上一个数量级,这主要是因为LDAP协议具有诸多明显的特点,比如,它能够跨越不同的平台和系统,不依赖任何特定的软硬件平台;提供了同步复制和分布式服务功能;数据处理速度比较快,层次结构也比较清晰;具有完善的安全控制机制;软件安装简单,容易优化和维护。[5]
目前,LDAP已经被大部分的数字化校园用来作为认证数据库,主要是存放用户一些基本的个人信息,比如uid,password等。由于LDAP具有实现容易、效率高和更容易扩展等优点,因此得到厂家的广泛支持,被越来越多的系统作为标准的功能所继承,LDAP已迅速发展成为因特网上事实的目录协议标准。而对于另外一些查询关系复杂的数据,则依然是存在于关系型的数据库中。
二、LDAP目录服务器存储模型的目录树结构
LDAP目录服务器对于网络信息的存储以及提供目录服务,主要是通过目录数据库来进行的。为了能够使用户对信息进行快速查找和定位,目录数据库对于数据的存储主要是用树状的层次结构。浙江经贸职业技术学院统一身份认证平台的用户认证信息的LDAP目录服务器存储模型的目录树结构如图1所示。
图1 LDAP目录树结构
在图 1 出现的“dc”、“ou”、“uid”等关键字,它们代表了不同的含义,表列出了各关键字及含义。
表 关键字及其含义
目录树主要由多个条目来构成,每个条目除了能够对计算机、用户账号以及打印机等对象进行描述,同时,还具有唯一的标志名DN。另外,每个条目还是由多个“属性”来组成的,比如,账号对象可以有用户名、密码、E-mail地址和联系电话等属性,而每个属性则能够对应一个或多个“值”,比如,联系电话属性能够包括若干个值。而对于条目信息的描述,则主要是通过LDAP数据交换格式文件(LDIF),以及采用文本的形式来进行的。
图1所示的目录树中的最顶层,称为目录树的基准,也就是基准DN。原则上,可以自由选择基准DN的格式,为了便于以后目录树的扩展,通常使用DNS域名编码作为基准DN。浙江经贸职业技术学院的DNS域名为 zjiet.edu.cn, 目录树的基准 DN即 dc=zjiet,dc=edu,dc=cn。
标志名DN是条目的唯一标识。该条目在LDAP目录树中的位置以及RDN是构成DN最为主要的两部分。在父节点下,RDN则是唯一的名称标识。比如,在同文件系统中,不带路径的文件名是RDN,而带路径的文件名就是DN。对于浙江经贸职业技术学院,采用的LDAP目录树的所有条目都是以UserID属性作为该条目的RDN。例如,图1中目录树条目2的RDN为UserID=admin,DN 为 UserID=admin,ou=administrator,dc=zjiet,dc=edu,dc=cn。
三、统一身份认证服务流程
统一身份认证平台服务主要包括两类,也就是认证管理以及身份管理。其中,认证管理主要是涉及校园信息门户服务、统一身份认证服务、注册中心服务以及应用系统服务等多个服务之间的相互调用。对于统一身份认证服务的具体流程,如图2所示。
图2 统一身份认证服务流程示意
(1)用户通过使用统一分配的身份账号登录到校园信息门户服务;
(2)校园信息门户服务建立与用户之间的会话,然后将与会话认证有关的令牌信息再返回给用户;
(3)用户通过使用返回的认证令牌访问信息门户页面中的应用系统链接,把认证令牌、账号以及门户系统的账号传递给统一认证服务;
(4)统一认证服务访问注册中心,查询到校园信息门户服务的访问入口,并且检验该账号是否有访问应用系统的权限,接着将获取平台中已做好映射的门户系统账号和口令;
(5)统一认证服务把申请消息转发给应用服务;
(6)校园信息门户服务把申请结果返回给统一身份认证服务,最后由统一身份认证服务将结果返回给用户。
而身份管理主要包含两种服务:一是账号映射,对用户在教务、OA、学工以及邮件等多种应用系统已经有的账号和统一身份账号进行映射关联,如果用户通过统一身份认证,则可以自动获取权限访问相应的应用系统。应用系统必须到UDDI注册中心注册,注册中心给每一个应用系统分配一个唯一标志符,用于提供该系统的服务访问入口,并在注册中心登记该应用系统的详细服务描述;二是统一身份账号管理,其主要功能是完成校园网用户的统一身份账号的创建、修改以及注销,该服务主要是由校园信息门户调用。[6]另外,身份管理不仅可以兼顾老的应用系统中的用户账号,通过兼顾老的应用系统中的用户账号,还可以兼顾老的应用系统中的用户账号。
四、统一身份认证平台接口设计
1.Web Service接口认证方案
接口使用WebService技术,调用地址如下:[7]
2.URL单点漫游方案
用户在学校统一身份认证平台登录成功后,通过点击业务系统的URL转到各业务系统,传递过来的URL是类似于下面的格式:
http://127.0.0.1/default2.aspx?verify=9CE291D684D3B 582DDBCC44D9991BB94&userName=admin&strSysDatetime=2012-08-1014:27:46&jsName=department&open-Type=1&url=action.do&gnmkdm=M011
参数含义如下:
verify表示md5加密信息 (32位加密)。
userName表示用户名。
strSysDatetime表示由学校认证中心自动生成的时间戳。
jsName表示用户的角色(学生student,教师teacher,部门 department)。
openType表示系统的集成方式,1表示集中在框架中打开,2表示在新窗口打开。
verify=md5(userName+strKey+strSysDatetime+js-Name)
url表示认证通过后直接指向当前的地址,可以为空,gnmkdm表示认证通过时直接指向到当前功能模块代码的对应页面,可以为空。一般情况下,URL和gnmkdm只有一个参数有值和都没有值,strKey为事先商定的握手密码,握手密码要求存放到表中。
认证之前首先判断当前用户是否已经登录,当session值和传入的用户名值相等时,默认已经第二次登录,不需要认证,直接进入系统。
五、统一身份认证平台的应用
浙江经贸职业技术学院统一身份认证平台使用的LDAP服务器和后台数据库分别由开源的OpenLDAP和Berkeley DB实现。在平台建立起来后,目前进行集成使用的主要有上网认证客户端、6个Web业务系统以及VPN系统。在Web业务系统内,基于Java平台和J2EE技术的有:学生工作管理信息系统、办公自动化系统,基于PHP技术的邮件系统;基于ASP技术的有学校论坛;基于.NET技术架构以及微软Windows平台的主要有:数字图书馆系统、教学管理信息系统。各个系统具有在一个界面进行一次登录就能够访问各系统的功能,该功能主要是通过调用后台的统一身份认证系统以及Web-Service接口登录来实现的。系统不仅运行比较可靠稳定,同时调用也比较简单方便,从而极大地方便了用户。
对于做了统一身份认证集成的Web应用系统,其登录的界面以及统一身份认证登录的入口,如图3所示。
图3 统一身份认证平台登录窗口
图4是以作者身份登录数字化校园统一身份认证平台后的首页,里面有6个已经集成统一身份认证的业务系统名称。实现统一身份认证后,可以直接在这里访问这些业务系统。用户不需要另外记忆6个业务系统的用户名和口令,非常方便。
点击图4右上角“安全中心”链接,进入个人自助服务页面,用户可以自行修改密码,可以通过正确回答预先设定好的密码找回问题来重设密码。
六、结束语
图4 统一身份认证平台主窗口
统一身份认证平台主要的作用是:它不仅可以解决多个应用系统之间用户不统一的问题,还能够解决权限控制不统一的问题。本文对于如何应用基于LDAP协议的目录服务,以及在校园网建立统一身份认证平台实现在多个应用系统中用户身份的统一认证进行了初步探讨,并给出了具体的系统设计和实现。大量实践结果表明:统一身份认证平台在为用户提供极大方便的同时,也使对用户的统一集中管理得到了实现,并且使应用系统的可靠性和安全性得到了很大的提高。
[1]贺超波,陈启买,欧阳辉.数字化校园门户平台统一身份认证的实现[J].现代计算机(专业版),2008(12):25-28.
[2]段海波.高校数字化校园的统一身份认证解决方案[J].中国教育信息化,2010(17):43-46.
[3]许鑫,苏新宁,陆炯.数字化校园身份认证系统的设计[J].现代图书情报技术,2005(4):51-57.
[4]M.Wahl,T.Howes,S.Kille.Lightweight Directory Access Protocol(V3)[S].IE TF RFC 2251.NetworkWorking Group,1997.
[5]常潘,沈富可.基于LDAP的校园网统一身份认证的实现[J].计算机工程,2007,33(5):281-282.
[6]What is UDDI?[EB/OL].http://uddi.xml.org/node/96,2006.08.28.
[7]Web Services Architecture.[EB/OL].http://www.w3.org/TR/ws-arch/,2004.02.11.