serviceSearchDescriptor 属性定义 LDAP 命名服务客户机如何以及在何处搜索特定服务的信息。serviceSearchDescriptor 包含一个服务名称,其后跟一个或多个用分号分隔的 base-scope-filter(基-范围-过滤器)三元参数。使用这些 base-scope-filter(基-范围-过滤器)三元参数,可以定义仅搜索特定服务并按顺序进行搜索。如果为某个给定服务指定了多个 base-scope-filter(基-范围-过滤器),则该服务在查找特定条目时,将使用指定的范围和过滤器在每个基容器中进行搜索。
在下面的示例中,LDAP 命名服务客户机针对 passwd 服务在 ou=west,dc=example,dc=com 中执行单级搜索,然后在 ou=east,dc=example,dc=com 中执行单级搜索。为了查找某个用户的 username 的 passwd 数据,将针对每个 BaseDN 使用缺省的 LDAP 过滤器 (&(objectClass=posixAccount)(uid=username))。
serviceSearchDescriptor: passwd:ou=west,dc=example,dc=com;ou=east, dc=example,dc=com
在下面的示例中,LDAP 命名服务客户机将针对 passwd 服务在 ou=west,dc=example,dc=com 中执行子树搜索。为了查找用户 username 的 passwd 数据,将使用 LDAP 过滤器 (&(fulltimeEmployee=TRUE)(uid=username)) 来搜索子树 ou=west,dc=example,dc=com。
serviceSearchDescriptor: passwd:ou=west,dc=example, dc=com?sub?fulltimeEmployee=TRUE
还可以将多个容器与一个特定的服务类型相关联。在以下示例中,服务搜索描述符指定在三个容器中搜索口令条目。
|
请注意,在下面的示例中,SSD 中的结尾 ',' 表示 defaultSearchBase 将附加到相对基容器之后。
defaultSearchBase: dc=example,dc=com serviceSearchDescriptor: \ passwd:ou=myuser,;ou=newuser,;ou=extuser,dc=example,dc=com
LDAP 命名服务允许为其任何服务重新映射一个或多个属性名称。如果您映射某个属性,必须确保该属性与初始属性具有相同的含义和语法。请注意,映射 userPassword 属性可能会引起问题。
您可能会发现想要在现有目录服务器中映射属性的情况下,使用架构映射十分有用。如果您的用户名只存在大小写差异,则必须将忽略大小写的 uid 属性映射到不忽略大小写的属性。
此属性的格式为 service:attribute-name=mapped-attribute-name。
如果要为给定服务映射多个属性,则可以定义多个 attributeMap 属性。
在以下示例中,只要将 uid 和 homeDirectory 属性用于 passwd 服务时,便会使用 employeeName 和 home 属性。
attributeMap: passwd:uid=employeeName attributeMap: passwd:homeDirectory=home
请注意,您可以将 passwd 服务的 gecos 属性映射到多个属性,如以下示例所示:
attributeMap: gecos=cn sn title
以上示例将 gecos 值映射到一个以空格分隔的包含 cn、sn 和 title 属性值的列表。
LDAP 命名服务允许为其任何服务重新映射对象类。如果要为给定服务映射多个对象类,则可以定义多个 objectclassMap 属性。在以下示例中,只要使用 posixAccount 对象类,便会使用 myUnixAccount 对象类:
objectclassMap: passwd:posixAccount=myUnixAccount