2024年4月2日发(作者:)

第一八章 LDAP服务器

学习目标:

了解LDAP服务器的相关知识。学会配置Mirapoint Directory目录服务器。

1 LDAP基础

LDAP的英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP。

它是基于X.500标准的,但是简单多了并且可以根据需要定制。与X.500不同,LDAP支

持TCP/IP,这对访问Internet是必须的。LDAP的核心规范在RFC中都有定义,所有与

LDAP相关的RFC都可以在LDAPman RFC网页中找到。现在LDAP技术不仅发展得很

快而且也是激动人心的。在企业范围内实现LDAP可以让运行在几乎所有计算机平台上的

所有的应用程序从 LDAP目录中获取信息。LDAP目录中可以存储各种类型的数据:电子

邮件地址、邮件路由信息、人力资源数据、公用密匙、联系人列表,等等。通过把 LDAP

目录作为系统集成中的一个重要环节,可以简化员工在企业内部查询信息的步骤,甚至连主

要的数据源都可以放在任何地方。

1.1 LDAP的优势

如果需要开发一种提供公共信息查询的系统一般的设计方法可能是采用基于WEB的

数据库设计方式,即前端使用浏览器而后端使用WEB服务器加上关系数据库。后端在

Windows的典型实现可能是Windows NT + IIS + Acess数据库或者是SQL服务器,

IIS和数据库之间通过ASP技术使用ODBC进行连接,达到通过填写表单查询数据的功能;

后端在Linux系统的典型实现可能是Linux+ Apache + postgresql,Apache 和数

据库之间通过PHP3提供的函数进行连接。使用上述方法的缺点是后端关系数据库的引入

导致系统整体的性能降低和系统的管理比较繁琐,因为需要不断的进行数据类型的验证和事

务的完整性的确认;并且前端用户对数据的控制不够灵活,用户权限的设置一般只能是设置

在表一级而不是设置在记录一级。

目录服务的推出主要是解决上述数据库中存在的问题。目录与关系数据库相似,是指具

有描述性的基于属性的记录集合,但它的数据类型主要是字符型,为了检索的需要添加了

BIN (二进制数据)、CIS(忽略大小写)、CES(大小写敏感)、TEL(电话型)等语法(Syntax),

而不是关系数据库提供的整数、浮点数、日期、货币等类型,同样也不提供象关系数据库中

普遍包含的大量的函数,它主要面向数据的查询服务(查询和修改操作比一般是大于10:1),

不提供事务的回滚(rollback)机制,它的数据修改使用简单的锁定机制实现

All-or-Nothing,它的目标是快速响应和大容量查询并且提供多目录服务器的信息复制功

能。

现在该说说LDAP目录到底有些什么优势了。现在LDAP的流行是很多因数共同作用

的结果。可能LDAP最大的优势是:可以在任何计算机平台上,用很容易获得的而且数目

不断增加的LDAP的客户端程序访问LDAP目录。而且也很容易定制应用程序为它加上

LDAP的支持。

Release 3.8 Mirapoint, Inc. Page 145 of 170

LDAP协议是跨平台的和标准的协议,因此应用程序就不用为LDAP目录放在什么样的

服务器上操心了。实际上,LDAP得到了业界的广泛认可,因为它是Internet的标准。产

商都很愿意在产品中加入对LDAP的支持,因为他们根本不用考虑另一端(客户端或服务

端)是怎么样的。LDAP服务器可以是任何一个开发源代码或商用的LDAP目录服务器(或

者还可能是具有LDAP界面的关系型数据库),因为可以用同样的协议、客户端连接软件包

和查询命令与LDAP服务器进行交互。与LDAP不同的是,如果软件产商想在软件产品中

集成对DBMS的支持,那么通常都要对每一个数据库服务器单独定制。不象很多商用的关

系型数据库,你不必为LDAP的每一个客户端连接或许可协议付费 大多数的LDAP服务器

安装起来很简单,也容易维护和优化。

LDAP服务器可以用“推”或“拉”的方法复制部分或全部数据,例如:可以把数据“推”到

远程的办公室,以增加数据的安全性。复制技术是内置在LDAP服务器中的而且很容易配

置。如果要在DBMS中使用相同的复制功能,数据库产商就会要你支付额外的费用,而且

也很难管理。

LDAP允许你根据需要使用ACL(一般都称为ACL或者访问控制列表)控制对数据读

和写的权限。例如,设备管理员可以有权改变员工的工作地点和办公室号码,但是不允许改

变记录中其它的域。ACL可以根据谁访问数据、访问什么数据、数据存在什么地方以及其

它对数据进行访问控制。因为这些都是由LDAP目录服务器完成的,所以不用担心在客户

端的应用程序上是否要进行安全检查。

LDAP(Lightweight Directory Acess Protocol)是目录服务在TCP/IP上的实现

(RFC 1777 V2版和RFC 2251 V3版)。它是对X500的目录协议的移植,但是简化了

实现方法,所以称为轻量级的目录服务。在LDAP中目录是按照树型结构组织,目录由条

目(Entry)组成,条目相当于关系数据库中表的记录;条目是具有区别名DN

(DistinguishedName)的属性(Attribute)集合,

DN相当于关系数据库表中的关键字

(PrimaryKey);属性由类型(Type)和多个值(Values)组成,相当于关系数据库中的

域(Field)由域名和数据类型组成,只是为了方便检索的需要,LDAP中的Type可以有多

个Value,而不是关系数据库中为降低数据的冗余性要求实现的各个域必须是不相关的。

LDAP中条目的组织一般按照地理位置和组织关系进行组织,非常的直观。LDAP把数据存

放在文件中,为提高效率可以使用基于索引的文件数据库,而不是关系数据库。LDAP协议

集还规定了DN的命名方法、存取控制方法、搜索格式、复制方法、URL格式、开发接口

等。LDAP对于这样存储这样的信息最为有用,也就是数据需要从不同的地点读取,但是不

需要经常更新。

例如,这些信息存储在LDAP目录中是十分有效的:

z 公司员工的电话号码簿和组织结构图

z 客户的联系信息

z 计算机管理需要的信息,包括NIS映射、email假名,等等

z 软件包的配置信息

z 公用证书和安全密匙

1.2 安全和访问控制

LDAP提供很复杂的不同层次的访问控制或者ACL。因这些访问可以在服务器端控制,

这比用客户端的软件保证数据的安全可安全多了。用LDAP的ACL,可以完成:

Release 3.8 Mirapoint, Inc. Page 146 of 170