在远程 LDAP 目录的目录辅助文档中配置搜索过滤器

对于使用目录辅助搜索远程 LDAP 目录的服务器,您可以控制用于搜索目录的 LDAP 搜索过滤器。针对要控制用于搜索目录的 LDAP 搜索过滤器的目录,使用“目录辅助”文档中要使用的搜索过滤器类型字段。

关于此任务

对于要控制其搜索过滤器的目录,在“目录辅助”文档的要使用的搜索过滤器类型字段中指定要用于搜索目录的 LDAP 搜索过滤器。

1. LDAP 搜索过滤器选项

搜索过滤器选项

描述

标准 LDAP(缺省值)

使用标准 LDAP 搜索过滤器,该过滤器适用于大多数 LDAP 目录服务器。

Active Directory

使用适用于 Active Directory 服务器的预定义搜索过滤器。如果远程 LDAP 目录是 Active Directory,请选择此选项。

注: 应在 Active Directory 中为搜索过滤器中的每个属性建立索引。否则搜索性能将会变慢而搜索结果可能不可靠.。

此选项替代 R5 NOTES.INI 设置 WebAuth_AD_Group,允许搜索 Active Directory 组。

定制

用于定义自己的搜索过滤器。

定义定制的搜索过滤器

关于此任务

如果搜索未返回结果或返回错误的结果,可能需要定义定制的搜索过滤器。如果远程 LDAP 目录服务器使用非标准模式,那么可能会出现此情况。通常,定制过滤器是一种可被用于生成唯一高效匹配的特定属性,其独特之处在于每一个条目的属性值都不相同,高效之处则在于使用索引或其他某种快速机制来确保搜索的快速性。

要定义定制的搜索过滤器,应该熟悉 RFCs 2251 和 2254 中描述的有效的搜索过滤器语法。

要使用的搜索过滤器类型字段中选择定制,并指定希望如何定义定制搜索过滤器:

2. 用于定义定制搜索过滤器的字段

定制搜索过滤器字段

描述

邮件过滤器

如果目录辅助配置为使 HCL 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=%*)

使用此过滤器时,如果用户在“邮件收件人”字段中指定了 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)(givenname=Maryanne))))

如果用户通常在登录提示中指定其员工标识或邮件属性,那么可能需要定制认证过滤器。在本例中,定制过滤器如下所示:

(|(employeeID=%*)(mail=%*))

因此,如果用户在登录提示中指定了“MB12345”,那么 LDAP 搜索请求使用的结果过滤器应为:

(|(employeeID=AS12345)(mail=AS12345))

授权过滤器

指定要用于查找组成员以进行 Notes® 数据库授权的搜索过滤器。保留此字段为空将使用下列缺省的搜索过滤器:

(|(&(objectclass=groupOfUniqueNames)(UniqueMember=%*))(&(objectclass=groupOfNames)(Member=%*)))

在此情况下,有关“cn=June Day,ou=Westford,o=Renovations”的成员资格查找将在搜索请求中生成以下过滤器:

(|(&(objectclass=groupOfUniqueNames)(UniqueMember=cn=June Day,ou=Sales,o=Renovations))(&(objectclass=groupOfNames)(Member=cn=June Day,ou=Sales,o=Renovations)))

如果为 ACL 组扩展启用的 LDAP 服务器存储 objectClass 为 aclGroup 的组,那么可能需要指定下列定制过滤器:

(&(objectclass=aclGroup)(Member=%*))

在此情况下,有关“cn=June Day,ou=Sales,o=Renovations”的成员资格查找将在 LDAP 搜索请求中使用以下过滤器:

(&(objectclass=aclGroup)(Member=cn=June Day,ou=Sales,o=Renovations))

要定义定制的搜索过滤器,应该熟悉 RFCs 2251 和 2254 中描述的有效的搜索过滤器语法。

定制 LDAP 搜索过滤器的语法

关于此任务

要定义定制的搜索过滤器,请将参数插入标准 LDAP 搜索过滤器中,以代表要搜索的名称的一部分。

3. 要在标准 LDAP 搜索过滤器中使用的参数

名称部分

定义为

名称部分示例(粗体)

要插入的代表名称部分的参数

从第一个字符到第一个空格或标点之间的字符串

Alex M Davidson

%a

从最后一个空格或标点到最后一个字符之间的字符串

Alex M Davidson

%z

全名

完整姓名

Alex M Davidson

%*

本地部分

RFC 822 邮件地址的本地部分

amd@renovations.com

%l

域部分

RFC 822 邮件地址的域部分

amd@renovations.com

%d

任何字符串值

要搜索的属性或对象的字符串值。

例如,如果搜索包含过滤器,其中“uid=%s”,那么在本例中 %s 代表的名称部分是 amd。

%s

定制的 LDAP 搜索过滤器示例

4. 定制的 LDAP 搜索过滤器示例
要搜索的名称 “目录辅助”文档中的搜索过滤器公式 用于搜索名称的搜索过滤器
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=%*)
(EmpID="")
amd
(mail=%*@renovations.com)
(mail=amd@renovations.com)
amd
(mail=%*@*)
(mail=amd@*)
amd@renovations.com
(mail=*@%d)
(mail=*@renovations.com)
amd@renovations.com
(mail=%*)
(mail=amd@renovations.com)
amd@renovations.com
(uid=%l)
(uid=amd)
blue
(color=%*)
(color=blue)