第 25 章 LDAP - 目录服务

目录

25.1. 对比 LDAP 和 NIS
25.2. LDAP 目录树的结构
25.3. 使用 slapd.conf 配置服务器
25.4. LDAP 目录中的数据处理
25.5. YaST LDAP 客户机
25.6. 在 YaST 中配置 LDAP 用户和组
25.7. 参见信息

摘要

轻量级目录访问协议 (LDAP) 是一组设计用来访问和维护信息目录的协议。LDAP 可用于多种目的,如用户和组管理、系统配置管理或地址管理。本章简要介绍 OpenLDAP 的工作原理以及如何使用 YaST 管理 LDAP 数据。尽管实施多个 LDAP 协议,但本章着重介绍 OpenLDAP 实施。

在联网环境中保持重要信息组织有序并且访问便捷是非常重要的。这可以通过目录服务实现。目录服务就像常见的电话黄页,可以将信息组织得井然有序,便于快速搜索。

理想情况下,应该有一个中央服务器将数据组织到目录中,并使用特定协议将其分发给所有客户机。数据以特定的方式组织,以支持众多应用程序进行访问。这样,各种日历工具和电子邮件客户机就不必保持自己的数据库 - 只需访问中央储存库即可。这种方式极大地减轻了管理这些信息的工作。利用 LDAP 之类的开放且标准化的协议,可以保证让尽量多的客户应用程序都能访问这些信息。

这里所说的目录实际上是指一种为快速有效的读取和搜索而优化的数据库。

LDAP 这类目录服务并不是为支持复杂的更新或查询机制而设计的。访问此服务的所有应用程序都应能够便捷地获取访问权。

许多目录服务以前就存在,而且现在仍然存在于 Unix 和其它操作系统中。Novell NDS、Microsoft ADS、Banyan 的 Street Talk 及 OSI 标准 X.500 只是其中的几个例子。LDAP 最初是作为轻量级的 DAP(目录访问协议)设计的,后者是为访问 X.500 而开发的。X.500 标准用来管理目录项的层次组织。

LDAP 是 DAP 的精简版。在保留 X.500 项层次的同时,LDAP 新增了跨平台功能并能够节省资源。利用 TCP/IP,在对接应用程序和 LDAP 服务之间建立接口的工作得到大大简化。

与此同时,LDAP 还不断发展,已经越来越多地作为不带 X.500 支持的独立解决方案应用。LDAP 在 LDAPv3(软件包 openldap2 中的协议版本)中支持参照,从而能够具有分布式数据库。同时还新增了 SASL(简单鉴定和安全层)。

LDAP 不仅能按最初设计的那样查询 X.500 服务器中的数据,它还提供公开源代码服务器 slapd,该服务器可以将对象信息储存在本地数据库中。另外还提供名为 slurpd 的扩展程序,该程序负责复制多个 LDAP 服务器。

openldap2 软件包包含:

slapd

独立 LDAPv3 服务器,用于管理基于 BerkeleyDB 的数据库中的对象信息。

slurpd

使用此程序,可以将针对本地 LDAP 服务器数据的修改复制到网络上安装的其它 LDAP 服务器中。

用于系统维护的其它工具

slapcatslapaddslapindex


25.1. 对比 LDAP 和 NIS

Unix 系统管理员以往使用 NIS 服务在网络内进行名称解析和数据分发。/etc 中的文件包含的配置数据以及目录 grouphostsmailnetgroupnetworkspasswdprintcapprotocolsrpcservices 都通过客户机在网络中分发。这些文件很容易维护,因为它们都是简单的文本文件。但随着数据量的不断增大,处理起来就会因为缺乏组织结构而愈发困难。NIS 仅适用于 Unix 平台。就是说它不适合在异构网络中充当集中式数据管理工具。

有别于 NIS,LDAP 服务不仅仅适用于单纯的 Unix 网络。Windows 2000 之后的服务器都支持 LDAP 作为目录服务。Novell 也提供 LDAP 服务。上述应用程序任务在非 Unix 系统中同样受支持。

LDAP 原理适用于所有需要集中管理的数据结构。以下是一些应用示例:

  • 用于替代 NIS 服务

  • 邮件路由选择(postfix、sendmail)

  • 邮件客户机(如 Mozilla、Evolution 和 Outlook)的通讯录

  • 为 BIND9 名称服务器管理区域说明

  • 异构网络中使用 Samba 进行用户鉴定

可以扩展此列表,因为 LDAP 是可扩展的,这是 NIS 所不能及的。由于更便于搜索数据,明确定义的数据层次结构简化了对大量数据的管理。