LDAP 名称服务具有一个缺省的目录信息树 (Directory Information Tree , DIT) 和一个关联的缺省架构。例如,ou=people 容器包含用户帐户、口令和阴影信息。ou=hosts 容器包含有关网络中系统的信息。 ou=people 容器中的每一项都包含 objectclass posixAccount 和 shadowAccount。
缺省 DIT 是设计完善的目录结构,基于开放标准。 它能够满足大多数名称服务的需要,建议不对其进行更改直接使用。如果选择使用缺省 DIT,唯一需要确定的就是将从目录树中的哪个节点(基 DN)中搜索给定域的名称服务信息。此节点是使用 defaultSearchBase 属性指定的。 另外,您可能还需要设置 defaultSearchScope 属性,以通知客户机应当在哪个搜索范围内执行名称服务查找。是仅搜索该 DN 下的一层 (one),还是搜索该 DN 下的所有子树 (sub)?
但有时候,LDAP 名称服务需要更大的灵活性,以便可以处理现有的 DIT 或名称服务数据分散在目录树中的复杂 DIT。例如,用户帐户项可能存在于树的不同部分。客户机配置文件中的 serviceSearchDescriptor、attributeMap 和 objectclassMap 属性旨在用于处理这些情况。
可以使用服务搜索描述符覆盖特定服务的缺省搜索基 DN、搜索范围和搜索过滤器。请参见服务搜索描述符 (Service Search Descriptor, SSD) 和架构映射。
AttributeMap 和 ObjectclassMap 属性提供了一种进行架构映射的方法。这些属性使 LDAP 名称服务可以处理现有 DIT。例如,可以将 posixAccount 对象类映射到现有的对象类 myAccount,也可以将 posixAccount 对象类中的属性映射到 myAccount 对象类中的属性。
多台 LDAP 服务器可以为一个 DIT 提供服务。例如,DIT 的某些子树驻留在其他 LDAP 服务器上。 这种情况下,LDAP 服务器可能会指示 LDAP 客户机引用其他服务器,以获取已知但不在其自身数据库中的名称数据。如果规划这种 DIT 配置,则应当设置客户机的配置文件属性 followReferrals,指明 LDAP 名称服务遵循服务器引用,从而继续执行名称服务查找。但是,应尽可能使给定域的所有名称数据都位于一个目录服务器上。
如果希望客户机在大多数时间访问只读副本,并且仅在必要时才对读/写主服务器进行引用,则引用可能非常有用。这样,主服务器不会因为副本服务器可处理的请求而过载。
要充分利用 LDAP,对于每个逻辑项都应该有一个 LDAP 项。例如,对于用户,您不但可以拥有公司的用户数据库信息,还可以拥有 Solaris 帐户信息,还可能拥有特定于应用程序的数据。由于 posixAccount 和 shadowAccount 是辅助对象类,因此可以将其添加到目录内的任何项中。 这将需要仔细规划、设置和管理。
有关如何选择适当目录后缀的信息,请参见 Sun Java System Directory Server(以前称为 Sun ONE Directory Server)文档。