1、基于 LDAP 协议的离散应用系统统一管理应用研究(内蒙古财经学院 计算机信息管理系,内蒙古 呼和浩特 010070)摘 要: 文章介绍了 LDAP 协议及其特点,给出了针对离散应用系统的目录服务平台和管理系 统的设计和实现办法,提出了信息资源目录树的设计原则,实现了资源信息在 LDAP 目录中的 存储,设计和实现了具有全面功能的LDAP 目录管理系统。关键词: LDAP;离散系统;统一管理中图分类号:TP393.09 文献标识码:A 文章编号: 10076921(XX)24008602随着企业信息化建设的发展,企业建立了各种应用系统。传统的企业信息系统是以企业的业 务为基础发展起来的,这些信
2、息系统之间往往是相互独立的,形成了一个个“信息孤岛”。 因此网络管理员无法在一个集中的信息库中以方便的方式管理散布在这些信息系统中的网络 信息和资源。目录服务的应用解决了以上问题。通过目录服务可以实现对网络中的各种资源 信息集中管理,为用户提供一个统一的清单。1 LDAP 概述随着计算机网络对企业及个人日常生活的全面渗透和计算机技术的发展,无论是企业还是个 人对网络的依赖性越来越大,在网络上获取信息成为信息时代的一个重要标志。目录服务是 把人、组织和电子邮件等各种实体的有关信息存放在目录服务库中,给用户提供查询、检索 和修改这类信息的服务。LDAP 由最初的 X.500 协议发展而来,已经成为
3、当前应用最广的目录协议之一。LDAP 是在对 X.500 协议的简化,使 PC 机可以通过TCP/IP 协议访问 X.500 服务器。LDAP 的协议模 型如图 1所示。740)this.width=740“ border=undefinedLDAP 是标准的协议,与平台无关,因此,应用程序不需要关心 LDAP 目录放在 什么样的服务器上 。因为它是Internet 的标准,所以 LDAP 得到了业界的广泛认可。LDAP服务器可以是任何一个 开放源代码或商用的 LDAP 目录服务器,因为可以用同样的协议、客户端连接软件包和查询命 令与 LDAP 服务器进行交互。而且 LDAP 服务器安装简单,
4、易于维护。LDAP 的复制和引用功能使目录服务系统成为分布式系统。LDAP 的复制功能可以很方便的将数 据从一个目录服务器全部复制到另外一个或多个目录服务器,这样就组成了“单主多从”的 目录系统,可以实现灾难恢复和负载均衡。在安全性方面,LDAP 可以通过 ACL 访问控制列表来控制用户对数据的读写权限。ACL 可以根据 谁访问数据、访问什么数据、数据存在什么地方以及其他对数据进行访问控制。ACL 可以控 制用户对每一条数据的访问权限,因此,LDAP 目录比关系数据库具有更灵活的权限管理机制 。 目录服务和传统的关系型数据库不同,目录服务是被优化用于用户的认证和用户信息的查询 的信息模型,因此
5、,目录服务具有优良的查询速度。2 针对离散应用系统的统一目录服务平台设计目录服务系统是整个网络用户和资源管理的灵魂,是分布式计算中最重要的基石。利用目录 服务系统,用户就可以实现单点登录,即只需输入一次帐号及密码,就 可以登录各个应用系统,应用各种权限内的服务。一方面给管理员、用户带来了极大的方便 ,另一方面又提高了用户访问各种应用的速度。目录服务能够为网络用户提供各种有用信息,有效地帮助用户使用各种网络服务和获取其他 信息。用户信息根据用户的身份不同,分别放在不同的目录服务信息库中,并加以不同的访 问权限控制。2.1 目录树设计目录服务系统首先要设计一个逻辑合理、易于管理的目录树结构。设计目
6、录树结构常常采用 四种模式:组织机构模式、工作流模式、地域模式、综合模式。根据 LDAP 协议中标准的目录服务结构的定义原则,结合具体的计算机网络、域名系统、电子 邮件系统及业务应用系统的实际情况,制定目录服务系统结构的定义原则。目录结构的根目录定义为 o=Imfec,其他顶级域名所对应的组织名的相对区别名 RDN 定 义可参照根目录定义。例如计算机信息学院定义为 o=ComInfo,因此,内蒙财院计算机信息 院的区别名 DN 就是 DN:o= ComInfo,o= Imfec。其他各部门的 DN 依此类推。二级域名对应的单位在目录中的 RDN 使用组织机构(ou)命名方式。如财院计信学院计算
7、机系 可以命名为 ou=Info,其的区别名 DN 为 DN:ou= Info,o= ComInfo,o= imfec。在此基础之上,为了将目录与独立应用系统域名联系起来,在目录的每一个条目中都需要添 加有关 DNS 的信息, 并将域名部件 Domain Component 属性添加到目录条目之中。2.2 目录服务平台的逻辑结构设计目录服务在逻辑结构均分为三层:Update 层,Replication 层和 Sea rch 层。实际的物理结构为二层:Master 层(或 Supplier 层)执行更新/写和复 制的操作;Slave 层(或 Consumer 层)执行读/认证/查询的操作。Upd
8、ate 层:处理用户信息更新和创建、中止、删除等;主要将用于对用户的管理 ;Replication 层:将 Update 层的更新信息传递到 Search 层;Search 层 :处理客户端的调用和请求。顶层,即 Update 层由一台主服务器和一台备份服务器组成。备份服务器用于实现主目录服务 器的热备份。主操作服务器将处理更新,然后将它的改动信息“推”到备份服务器,以及通 过复制层 hub 或是专门的复制主机将改动信息复制到 Search 查询层。底层即 Search 层可以由多台服务器组成。这些服务器将同时运行,实现负载分担、高可用性 、安全过滤、属性自动映射、引用的功能。一旦某台服务器异
9、常停机,其他机器将提供补偿 作用。在今后用户量增长时,可以方便地通过增加机器或增加机器中的 CPU 和内存来实现对 更多请求的支持。3 目录管理系统的设计LDAP 目录管理系统主要功能包括目录的条目管理、属性管理、schema 管理、引 用功能管理以及连接管理,另外还包括 LDAP 的 LDIF 格式文件数据的导入和导出功能。如图 2 所示。740)this.width=740“ border=undefined条目管理包括对条目的增加、删除、修改、复制等编辑功能,利用这个功能可以管理 LDAP 的 目录树结构。属性管理包括对属性的浏览、增加、删除、修改等编辑功能,支持对多值属性 的编辑,另外
10、还支持对二进制属性的浏览和修改功能。Schema 管理可以浏览 LDAP 目录服务器 所支持的所有的属性和对象类。引用管理使 LDAP 目录管理系统支持对 LDAP 引用功能,当用户 选择支持引用功能时,用户在浏览目录树的时候将自动把引用的目录项显示给用户。连接管 理是系统用来管理 LDAP 服务器连接配置信息的,可以将配置好的服务器连接参数存储在 XML 文件中,用户可以对连接信息进行浏览修改等操作,并且支持快速连接。数据管理可以将整 个目录树或目录树的一部分导出并存成LDIF 格式的文件,同样也支持将 LDIF 格式的数据文件 导入 LDAP 目录树中。4 目录管理系统的实现管理系统采用
11、Java 开发技术,其中 JNDI(Java Naming and Directory Interface)是名字和 目录服务接口。JNDI不依赖于任何具体的目录服务实现,所以应用程序可以使用统一的 API 访问多种名字和目录服务。另外统一的接口屏蔽了不同目录服务之间协议和接口的细节差异 ,屏蔽了访问目录服务的各种细节,为用户提供了一个简明的访问接口。JNDI 体系结构包括应用接口 API 和服务提供接口SPI。API 为应用程序提供了一个访问不同名 字和目录服务的统一接口,SPI 则使各种名字和目录服务提供服务,即访问各种服务。API 包括两个包:javax.naming 和javax.na
12、ming.directory,SPI 仅包括 javax.naming.spi一 个包,另外两个包 javax.naming.event 和javax.naming.ldap 分别提供了事件和 LDAP V3 的辅 助功能。JNDI 中所有的目录服务的操作都相对于一个特定的上下文对象,所以必须先获得一个初始上 下文对象的引用。上下文对象是一系列的名字到对象的绑定,一个上下文对象中的名字可以 绑定到另外一个子上下文对象。JNDI 定义了一个初始化上下文对象 InitialContext,初始化 上下文对象是目录操作的一个起点,可以通过初始化上下文操作来寻找其他的上下文和对象 。基于 JNDI 的
13、类 LDAPEngine 封装了对 LDAP 的所有相关操作,包括对属性的操作、对条目的操作 以及对 LDAP 服务器的连接等。ConnectionData 类保存了所有连接 LDAP 服务器的参数,包括 LD AP 服务器的 URL、连接所用认证方式以及用户 DN 和用户密码等,还有一些其他服务器参数。E ntryNode 类封装了目录树的树节点,提供对树节点所有操作的方法。EntryPair 封装条目属 性列表中的属性对,包括属性名、属性值、是否二进制属性、是否必须的属性,是否 Rdn 等 信息。EntryTableModel 继承AbstractTableModel 类,定义显示属性的表
14、格的模型。MyTableCellEditor 定义了属性表格的编辑器。BasicBinaryEditor 封装了通用 的二进制属性编辑器的基本属性和方法。OpenCon 类封装了服务器连接配置管理,该类提供 对多服务器的连接配置管理。参考文献1 Bruce Eckel.Thinking in JavaM.XX:机械工业出版社,XX.2 伽玛,等 设计模式可复用面向对象软件的基础M李英军,等译 XX:机械工业出版社,XX.3 Paul J Perrone ,et al 张志伟,谭郁松,张明杰J2EE 构建企业系统 M.XX:清华大学出版社,XX.4 X.500 Lightweight Directory Access Protocolhttp:/www.cis.ohio-state .edu/rfc/rfc1487.txt.5 Nicholas KassemEnterprise Team 著J2EE权威 指南M途翔云,姚欣,李春阳译XX :中国电力出版社,XX.6 南开创元目录服务系统技术白皮书DB/OL, http:/ uct.htm.