系统管理指南:名称和目录服务(DNS、NIS 和 LDAP)

规划目录信息树 (Directory Information Tree , DIT)

LDAP 名称服务具有一个缺省的目录信息树 (Directory Information Tree , DIT) 和一个关联的缺省架构。例如,ou=people 容器包含用户帐户、口令和阴影信息。ou=hosts 容器包含有关网络中系统的信息。 ou=people 容器中的每一项都包含 objectclass posixAccountshadowAccount

缺省 DIT 是设计完善的目录结构,基于开放标准。 它能够满足大多数名称服务的需要,建议不对其进行更改直接使用。如果选择使用缺省 DIT,唯一需要确定的就是将从目录树中的哪个节点(基 DN)中搜索给定域的名称服务信息。此节点是使用 defaultSearchBase 属性指定的。 另外,您可能还需要设置 defaultSearchScope 属性,以通知客户机应当在哪个搜索范围内执行名称服务查找。是仅搜索该 DN 下的一层 (one),还是搜索该 DN 下的所有子树 (sub)?

但有时候,LDAP 名称服务需要更大的灵活性,以便可以处理现有的 DIT 或名称服务数据分散在目录树中的复杂 DIT。例如,用户帐户项可能存在于树的不同部分。客户机配置文件中的 serviceSearchDescriptorattributeMapobjectclassMap 属性旨在用于处理这些情况。

可以使用服务搜索描述符覆盖特定服务的缺省搜索基 DN、搜索范围和搜索过滤器。请参见服务搜索描述符 (Service Search Descriptor, SSD) 和架构映射

AttributeMapObjectclassMap 属性提供了一种进行架构映射的方法。这些属性使 LDAP 名称服务可以处理现有 DIT。例如,可以将 posixAccount 对象类映射到现有的对象类 myAccount,也可以将 posixAccount 对象类中的属性映射到 myAccount 对象类中的属性。

多台目录服务器

多台 LDAP 服务器可以为一个 DIT 提供服务。例如,DIT 的某些子树驻留在其他 LDAP 服务器上。 这种情况下,LDAP 服务器可能会指示 LDAP 客户机引用其他服务器,以获取已知但不在其自身数据库中的名称数据。如果规划这种 DIT 配置,则应当设置客户机的配置文件属性 followReferrals,指明 LDAP 名称服务遵循服务器引用,从而继续执行名称服务查找。但是,应尽可能使给定域的所有名称数据都位于一个目录服务器上。

如果希望客户机在大多数时间访问只读副本,并且仅在必要时才对读/写主服务器进行引用,则引用可能非常有用。这样,主服务器不会因为副本服务器可处理的请求而过载。

与其他应用程序共享数据

要充分利用 LDAP,对于每个逻辑项都应该有一个 LDAP 项。例如,对于用户,您不但可以拥有公司的用户数据库信息,还可以拥有 Solaris 帐户信息,还可能拥有特定于应用程序的数据。由于 posixAccountshadowAccount 是辅助对象类,因此可以将其添加到目录内的任何项中。 这将需要仔细规划、设置和管理。

选择目录后缀

有关如何选择适当目录后缀的信息,请参见 Sun Java System Directory Server(以前称为 Sun ONE Directory Server)文档。