如果服务器使用目录服务搜索远程 LDAP 目录,可以使用该目录的 Directory Assistance 文档中的“要使用的搜索过滤器类型”域,以控制使用哪种 LDAP 搜索过滤器。搜索目录下列选项可供选择。
搜索过滤器选项 | 描述 |
标准 LDAP(缺省) | 使用标准的 LDAP 搜索过滤器,该过滤器适用于大多数 LDAP 目录服务器,包括 IBM(R) Lotus(R) Domino(tm)、IBM(R) 目录服务器和 Sun ONE 目录服务器。 |
Active Directory | 使用适用于 Active Directory 服务器的预定义搜索过滤器。如果远程 LDAP 目录是 Active Directory,请选择此选项。 |
定制 | 用于定义自己的搜索过滤器。 |
定义定制的搜索过滤器
如果搜索未返回结果或返回错误的结果,可能需要定义定制的搜索过滤器。如果远程 LDAP 目录服务器使用非标准的模式,可能会出现这种情况。通常,定制过滤器是一种可被用于生成唯一高效匹配的特定属性,其独特之处在于每一项的属性值都不相同,高效之处则在于使用索引或其他某种快速机制来确保搜索的快速性。
在“要使用的搜索过滤器类型”域中选择“定制”后,会出现下列三个用于定义定制的搜索过滤器的域。
定制搜索过滤器域 | 描述 |
邮件过滤器 | 如果目录服务是为 Notes 用户在目录中查找邮件地址而配置的,则可使用该搜索过滤器在目录中查找名称。保留此域为空将使用下列缺省的搜索过滤器: (|(cn=%*)(|(&(sn=%a)(givenname=%z))(&(sn=%z)(givenname=%a)))) 如果用户在“邮件收件人”域中指定了“Pat Smith”,则 LDAP 搜索请求使用的结果过滤器应为: (|(cn=Pat Smith)(|(&(sn=Pat)(givenname=Smith))(&(sn=Smith)(givenname=Pat)))) 如果用户始终在“邮件收件人”域中键入其 UID 属性,则可能需要定制邮件过滤器。定制过滤器如下所示: (uid=%l) 有了该过滤器后,如果用户在“邮件收件人”域中指定“BAK12345”,LDAP 搜索请求使用的结果过滤器应为: (uid=BAK12345) |
认证过滤器 | 如果将目录服务配置为信任用于客户机认证的远程 LDAP 目录,则可以使用该过滤器在目录中查找名称。保留此域为空将使用下列缺省的搜索过滤器: (|(cn=%*)(|(&(sn=%a)(givenname=%z))(&(sn=%z)(givenname=%a)))) 如果用户在 HTTP 登录提示中指定了“Maryanne Brown”,则 LDAP 搜索请求使用的结果过滤器应为: (|(cn=Maryanne Brown)(|(&(sn=Maryanne)(givenname=Brown))(&(sn=Brown) 如果用户通常在登录提示中指定其员工标识符或邮件属性,则可能需要定制认证过滤器。在本例中,定制过滤器如下所示: (|(employeeID=%*)(mail=%*)) 因此,如果用户在登录提示中指定了“MB12345”,则 LDAP 搜索请求使用的结果过滤器应为: (|(employeeID=AS12345)(mail=AS12345)) |
授权过滤器 | 指定一个搜索过滤器,用于在 Notes 数据库授权时查找组成员。保留此域为空将使用下列缺省的搜索过滤器: (|(&(objectclass=groupOfUniqueNames)(UniqueMember=%*)) 在本例中,关于“cn=June Day,ou=Westford,o=Acme”的成员查找将在搜索请求中使用下列过滤器: (|(&(objectclass=groupOfUniqueNames)(UniqueMember= 如果为 ACL 组扩展启用的 LDAP 服务器存储 objectClass 为 aclGroup 的组,则可能需要指定下列定制过滤器: (&(objectclass=aclGroup)(Member=%*)) 在本例中,关于“cn=June Day,ou=Sales,o=Acme”的成员查找将在 LDAP 搜索请求中使用下列过滤器: (&(objectclass=aclGroup)(Member=cn=June Day,ou=Sales,o=Acme)) |
定制 LDAP 搜索过滤器的语法
要定义定制的搜索过滤器,请将参数插入标准 LDAP 搜索过滤器中,以代表要搜索的名称的一部分。
名称部分 | 定义为 | 名称部分样例(粗体) | 要插入的代表名称部分的参数 |
名 | 从第一个字符到第一个空格或标点之间的字符串 | Alex M Davidson | %a |
姓 | 从最后一个空格或标点到最后一个字符之间的字符串 | Alex M Davidson | %z |
全名 | 完整姓名 | Alex M Davidson | %* |
本地部分 | RFC 822 邮件地址的本地部分 | amd@acme.com | %l |
域部分 | RFC 822 邮件地址的域部分 | amd@acme.com | %d |
任何字符串值 | 要搜索的属性或对象的字符串值。 | 例如,如果搜索包含过滤器,其中“uid=%s”,则在本例中 %s 代表的名称部分是 amd。 | %s |
定制的 LDAP 搜索过滤器样例
要搜索的名称 | Directory Assistance 文档中的搜索过滤器公式 | 用于搜索名称的搜索过滤器 |
Alex M Davidson | (|(givenname=%a)(sn=%z) (cn=%*)(mail=%l)) | (|(givenname=Alex)(sn=Davidson) (cn=Alex M Davidson)(mail="")) |
amd | (EmpID=%*) | (EmpID=amd) |
amd | (EmpID=%z) | (EmpID="") |
amd | (mail=%*@acme.com) | (mail=amd@acme.com) |
amd | (mail=%*@*) | (mail=amd@*) |
amd@acme.com | (mail=*@%d) | (mail=*@acme.com) |
amd@acme.com | (mail=%*) | (mail=amd@acme.com) |
amd@acme.com | (uid=%l) | (uid=amd) |
blue | (color=%*) | (color=blue) |