目录
摘要
轻量级目录访问协议 (LDAP) 是一组设计用来访问和维护信息目录的协议。 LDAP 可用于多种目的,如用户和组管理、系统配置管理或地址管理。 本章简要介绍 openldap 的工作原理以及如何使用 YaST 管理 LDAP 数据。 尽管实施多个 LDAP 协议,但本章着重介绍 OpenLDAP 实施。
在联网环境中保持重要信息组织有序并且访问便捷是非常重要的。 这可以通过目录服务实现。目录服务就像常见的电话黄页,可以将信息组织得井然有序,便于快速搜索。
理想情况下,应该有一个中央服务器将数据组织到目录中,并使用特定协议将其分发给所有客户机。 数据以特定的方式组织,以支持众多应用程序进行访问。 这样,各种日历工具和电子邮件客户程序就不必保持自己的数据库,只需访问中央储存库即可。 这种方式极大地减轻了管理这些信息的工作。 利用 LDAP 之类的开放且标准化的协议,可以保证让尽量多的客户应用程序都能访问这些信息。
这里所说的目录实际上是指一种为快速有效的读取和搜索而优化的数据库。
为支持大量并行读取访问,需要限制写访问,只允许管理员执行次数较少的更新。 要对常规数据库进行优化,使其能够在短时间内接受尽量多的数据。
由于只能在受限模式下执行写访问,所以可以采用目录服务来管理几乎不变的静态信息。 常规数据库中的数据通常频繁变化(动态数据), 而公司名录中的电话号码并不像会计数字(举例来说)那样经常变化。
管理静态数据时,极少更新现有数据集。 而处理动态数据时,特别是在涉及像银行帐户或会计帐户这样的数据集时,数据的一致性举足轻重。 如果要将从某处减去的数目加到另一个位置,必须在一个事务中同时执行这两个运算,以确保数据存量保持平衡。 数据库支持处理这类事务, 而目录却不行。 短期内数据之间的不一致在目录中是完全可以接受的。
LDAP 这类目录服务并不是为支持复杂的更新或查询机制而设计的。 访问此服务的所有应用程序都应能够便捷地获取访问权。
Unix 系统管理员以往使用 NIS 服务在网络内进行名称解析和数据分发。 /etc 中的文件所包含的配置数据以及目录 group、hosts、mail、netgroup、networks、passwd、printcap、protocols、rpc 和 services 都通过客户程序在网络中分发。 这些文件很容易维护,因为它们都是简单的文本文件。 但随着数据量的不断增大,处理起来就会因为缺乏组织结构而愈发困难。 NIS 仅适用于 Unix 平台。 就是说它不适合在异构网络中充当集中式数据管理工具。
有别于 NIS,LDAP 服务不仅仅适用于单纯的 Unix 网络。 Windows 2000 之后的服务器都支持 LDAP 作为目录服务。 上述应用程序任务在非 Unix 系统中同样受支持。
LDAP 原理适用于所有需要集中管理的数据结构。 以下是一些应用示例:
用于替代 NIS 服务
邮件路由选择(postfix、sendmail)
邮件客户机(如 Mozilla、Evolution 和 Outlook)的通讯录
为 BIND9 名称服务器管理区域说明
异构网络中使用 Samba 进行用户鉴定
可以扩展此列表,因为 LDAP 是可扩展的,这是 NIS 所不能及的。 由于更便于搜索数据,明确定义的数据层次结构简化了对大量数据的管理。