基于LDAP的校园统一身份认证系统的研究与实现

2011-06-09 10:14刘斌
电子设计工程 2011年23期
关键词:字段统一身份

刘斌

(温州大学 物理与电子信息工程学院,浙江 温州 325035)

随着校园数字化的迅速发展,大量的应用系统应运而生。但是,由于传统开发模式的局限性,这些应用系统大多使用各自独立的数据库进行身份认证,导致各个系统之间的认证信息不能互通,并由此产生了若干信息孤岛[1]。用户如果要使用这些系统提供的服务就要申请多个账户,这样不但给用户带来极大的不便,而且大大增加了管理员的负担。因此,如何安全有效地整合和管理校园数字化资源、消除应用系统信息孤岛、实现统一的身份认证,是当前数字化校园建设[2]的热点话题之一。

1 技术简介

LDAP(Lightweight Directory Access Protocol)是轻量目录访问协议。它提供了一种对目录服务访问的方式,在信息的读操作方面有很大优势,可以实现快速的查询操作。LDAP是基于X.500标准的一种协议,相对于X.500而言,LDAP协议简单许多,它可以直接在TCP/IP协议上实现目录服务[3]。由于它简化了X.500的实现方法,所以被称为轻量级的目录服务协议。

通过LDAP可以将各个应用系统的用户或组织信息以一定的层次结构加以存储和管理。LDAP是一个比关系数据库抽象层次更高的存贮概念。不同于其他以存储和操作为主要目的的数据库,LDAP对查询进行了优化。与写性能相比,LDAP的读性能要强很多,它的查询速度比普通数据库要高出一个数量级,这正符合高校大信息量的特点。另外,LDAP也支持TCP/IP协议,因此利用LDAP设计出的系统具有良好的跨平台性。同时,LDAP也是一个相对安全的协议,它可以根据使用者的需要设计访问控制列表ACL,以此来控制不同用户对服务器的读写操作权限[4]。当用户的信息被放在LDAP服务器上统一保存时,再也无需分开管理,通过对一台服务器进行安全监控,就能有效实现对信息安全性的大幅度提高。

2 认证过程

本文采用统一认证的简要思想如下:

1)用户使用在统一认证服务系统注册的用户名和密码登录一个应用系统A;

2)该应用系统A,将用户名和密码连同应用系统的标识一起转发给统一认证服务器;

3)统一认证服务器核查自己的应用系统注册库,审查该应用系统是否为统一认证服务的用户系统,同时在用户注册库中核查由该应用系统转发过来的用户名和密码。待核查完毕后,统一认证服务响应应用系统。

4)如果登陆成功,应用系统自己创建一个Session并将令牌返回给用户,以后用户端可以通过这个权限令牌持续访问该应用系统,直至用户退出系统或会话超时[5]。如图1所示。

图1 LDAP认证过程(非SSO)Fig.1 The authentication process of LDAP(Not a SSO)

根据PHP提供的扩展函数,认证过程可表述为:

1)调用LDAP_CONNECT()和LDAP服务器进行连接,连接成功后LDAP服务器则会返回会话句柄;

2)利用LDAP_BIND()和服务器进行绑定;

3)使用LDAP_SEARCH()函数遍历LDAP目录树,返回条目信息,并且验证提交信息是否和条目信息一致。如果一致则验证成功,不一致则认证失败;

4)利用LDAP_UNBIND()解除绑定[6]。如图2所示。

图2 查询认证过程Fig.2 The process of query authentication

3 统一身份认证系统的设计与实现

3.1 系统设计目标

统一身份认证系统功能在于建立一个可以为校园网中各种应用系统提供身份认证的机制。每个应用系统都可以通过该系统来进行系统用户的身份认证。各个应用系统不再使用自己的数据库来识别用户身份,而应该和认证服务器实现尽可能的无缝衔接,从而有效地整合各种服务资源,如图3所示。

根据上述设计目标,可设计出如图4所示的系统构架。

3.2 关键问题

结合我校实际情况设计出的目录信息树结构如图5所示。

图3 整合后的校园网络资源Fig.3 The campus network resources after integration

图4 统一身份认证系统系统构架Fig.4 The system frame of unified identity authentication system

图5 目录信息树Fig.5 Directory information tree

针对目录树中Uid必须唯一,且LDAP没有提供自动递增的功能的问题,可在根下添加一个wzuId字段作为新加入用户的Uid,该字段为整型数,当系统成功添加一个用户时,该字段的值就会被加一。同理,当再次添加新用户时,直接读出该值,添加成功后再次对其加一即可。由此就可以解决Uid唯一但LDAP本身不提供自动递增功能的问题。

现如今大多数高校LDAP统一身份认证的实现方式无非有以下两种,一种是只利用LDAP服务器进行简单的用户名和密码认证,其余权限交给各自的应用系统单独控制。另一种是将各个应用系统的控制身份认证规则分别写在LDAP服务器上,这就给LDAP服务器添加了许多负担,让本来简单的查询变得复杂。

综合考虑以上两种实现方式的利弊,为了更加简便地实现各个应用系统与统一身份认证服务器之间的低耦合衔接,在设计LDAP目录树时为其添加了一个wzuService字段,该字段为数组结构,存放了用户能够使用的应用服务名称以及对应的权限。以校园邮件服务为例,如果用户开启了邮件服务,则可以在该用户对应的条目里搜索到wzuService=mail_user这个条件,如该用户为邮箱系统管理员,则对应的条件表示为wzuService=mail_admin;反之,如果搜索不到关于邮件服务的条件,则表明该邮件服务系统没有对当前用户开放。wzuService字段的引入不仅实现了对用户身份的认证,还实现了对用户权限的控制。

该部分设计的扩展模式代码:

4 结束语

随着LDAP协议本身的不断发展和完善,随着数字化概念的深入人心和人们对信息化建设的重视,LDAP的优势也进一步凸显。相信LDAP在网络的发展过程中必然会占据更为重要的位置。统一身份认证系统本身的实现就是一项复杂的工作,如何和各种复杂网络环境结合,还需要根据具体情况具体研究,以确保发挥最优作用。

[1]张明.基于LDAP的单点登录技术的研究与实现[D].湖北:武汉理工大学,2007.

[2]贺超波,陈启买,欧阳辉.数字化校园门户平台统一身份认证的实现[J].现代计算机,2008(12):25-28.HE Chao-bo,CHEN Qi-mai,OUYANG Hui.Implement of unified identity authentication in digital campus portal[J].Modern Computer,2008(12):25-28.

[3]贺玉明.LDAP在数字校园中的研究与应用[D].北京:北方工业大学,2011.

[4]赵曦.基于LDAP的统一认证系统的研究与实现[D].陕西:西安电子科技大学,2009.

[5]李翔,晁爱农,刘孟强.LDAP的研究及其在统一身份认证系统中的应用[J].计算机应用,2008(S1):98-100.LI Xiang,CHAO Ai-nong,LIU Meng-qiang.Research and application of LDAP in uniform identity authentication[J].Journal of Computer Applications,2008(S1):98-100.

[6]王源.LDAP认证实现与性能分析 [J].电子科技,2010(12):76-79.WANG Yuan.The implementation and analysis of LDAP authentication[J].Electronic Science and Technology,2010(12):76-79.

猜你喜欢
字段统一身份
图书馆中文图书编目外包数据质量控制分析
坚持严管和厚爱相统一的着力点
碑和帖的统一,心和形的统一,人和艺的统一
统一数量再比较
跟踪导练(三)(5)
身份案(下)
他们的另一个身份,你知道吗
CNMARC304字段和314字段责任附注方式解析
无正题名文献著录方法评述
放松一下 隐瞒身份