配置轻量级目录访问协议搜索过滤器
使用本主题来配置 LDAP 搜索过滤器。要修改特定 LDAP 目录类型的现有用户和组过滤器,需要执行这些步骤;要设置证书过滤器以将证书映射到 LDAP 服务器中的条目,也需要执行这些步骤。
开始之前
WebSphere® Application Server 使用轻量级目录访问协议 (LDAP) 过滤器从 LDAP 目录服务器搜索和获取有关用户和组的信息。为产品支持的每个 LDAP 服务器提供缺省过滤器集合。可以修改这些过滤器,以适合于您的 LDAP 配置。修改过滤器并单击确定或应用后,“独立 LDAP 注册表”面板中的目录类型更改为定制,它表明使用定制过滤器。而且,可开发过滤器,以支持 LDAP 服务器的任何其他类型。支持其他 LDAP 目录的工作是可选的,而其余 LDAP 目录类型不受支持。在管理控制台中完成以下步骤。
过程
- 单击安全性 > 全局安全性。
- 在“用户帐户存储库”下,选择独立 LDAP 注册表,然后单击配置。
- 在“其他属性”下面,单击高级轻量级目录访问协议 (LDAP) 用户注册表设置。
- 根据需要修改用户过滤器。 用户过滤器用于搜索用户的注册表且通常用于对用户指定安全角色。它还用于使用过滤器中指定的属性认证用户。该过滤器指定用于在目录服务中查询用户的属性。
在以下示例中,指定为 %v 的属性(这是用户的短名称)必须是唯一键。具有相同对象类的两个 LDAP 条目不能有相同的短名称。要根据用户的用户标识 (uid) 查询用户,并且要使用 inetOrgPerson 对象类,指定以下语法:
(&(uid=%v)(objectclass=inetOrgPerson)
有关此语法的更多信息,请参阅使用特定目录服务器作为 LDAP 服务器文档。
- 根据需要修改 Kerberos 用户过滤器。 Kerberos 用户过滤器名称用于在注册表中搜索 Kerberos 主体名称。指定用于保留 Kerberos 主体名称的 LDAP 属性。
- IBM Lotus Domino 缺省 krbuser 过滤器:
- (&(krbPrincipalName=%v)(objectcategory=Person))
- IBM SecureWay Directory Server 缺省 krbuser 过滤器:
- (&(krbPrincipalName=%v)(objectcategory=ePerson))
- Microsoft Active Directory 缺省 krbuser 过滤器:
- (&(userprincipalname=%v)(objectcategory=user))
- Sun Java System Directory Server 缺省 krbuser 过滤器:
- (&(krbPrincipalName=%v)(objectcategory=inetOrgPerson))
- Novell eDirectory 缺省 krbuser 过滤器:
- (&(krbPrincipalName=%v)(objectcategory=Person))
- 可选: 如果使用的是联合存储库,请根据需要修改 Kerberos 属性名称。 Kerberos 属性名称用于在注册表中搜索 Kerberos 主体。指定用于保留 Kerberos 主体名称的 LDAP 属性。
- IBM Lotus Domino 缺省 krbuser 过滤器:
- krbPrincipalName
- IBM SecureWay Directory Server 缺省 krbuser 过滤器:
- krbPrincipalName
- Microsoft Active Directory 缺省 krbuser 过滤器:
- userprincipalname
- Sun Java System Directory Server 缺省 krbuser 过滤器:
- krbPrincipalName
- Novell eDirectory 缺省 krbuser 过滤器:
- krbPrincipalName
- 根据需要修改组过滤器。 组过滤器用于搜索组的注册表且通常用于对组指定安全角色。另外,通过在目录服务中查询组过滤器用于指定属性。
在以下示例中,指定为 %v 的属性(这是组的短名称)必须是唯一键。具有相同对象类的两个 LDAP 条目不能有相同的短名称。要根据组的公共名 (CN) 查询组,并且要使用 groupOfNames 对象类或 groupOfUniqueNames 对象类,请指定以下语法:
(&(cn=%v)(|(objectclass=groupOfNames)(objectclass=groupOfUniqueNames)))
有关此语法的更多信息,请参阅使用特定目录服务器作为 LDAP 服务器文档。
- 根据需要修改用户标识映射。 此过滤器将用户的短名称映射到 LDAP 条目并指定使用用户的短名称显示这些用户时表示用户的一段信息。例如,要按用户的标识显示 object class = inetOrgPerson 的条目,请指定 inetOrgPerson:uid。此字段接受多个 objectclass:property 对,之间用分号 (;) 分隔。为了给类似于 getCallerPrincipal 方法和 getUserPrincipal 方法的方法提供一致的值,将使用通过此过滤器获取的短名称。例如,CN=Bob Smith, ou=austin.ibm.com, o=IBM, c=US
用户可以使用定义的任何属性(例如,电子邮件地址、社会保障号等)登录,但是调用这些方法时,无论该用户是如何登录的,都返回 bob 用户标识。注: 仅 getUserDisplayName API 遵循用户标识映射。
- 根据需要修改组标识映射过滤器。 此过滤器将组的短名称映射到 LDAP 条目并指定显示组时表示组的一段信息。例如,要按组名显示组,指定 *:cn。在这种情况下,星号 (*) 是搜索任何对象类的通配符。此字段接受多个 objectclass:property 对,之间用分号 (;) 分隔。
- 根据需要修改组成员标识映射过滤器。 此过滤器标识用户到组成员资格。对于 SecureWay 和 Domino® 目录类型来说,此字段用于查询与指定对象类匹配的所有组,以查看用户是否包含在指定的属性中。例如,要获取属于组(具有 groupOfNames 对象类)的所有用户以及包含在成员属性中的用户,请指定 groupOfNames:member。此语法(对象类的属性)存储属于组的成员列表,该组由对象类表示。此字段使用由分号 (;) 定界的多个“对象类:属性”对。有关此语法的更多信息,请参阅使用特定目录服务器作为 LDAP 服务器。
对于 IBM® Tivoli® Directory Server、Sun ONE 和 Active Directory,此字段用于查询组中在用户对象中存储了信息的所有用户。例如,memberof:member 过滤器(对于 Active Directory)用于获取用户对象的 memberof 属性,以获取用户所属的所有组。member 属性用于获取组中使用组对象的所有用户。使用用户对象获取组信息可以提高性能。
- 如果您的 LDAP 服务器不支持递归的服务器端搜索,请选择执行嵌套的组搜索选项。
- 根据需要修改“证书映射方式”。 当选择 LDAP 作为注册表时,可以将
X.590 证书用于用户认证。此字段用户标识是否由 EXACT_DN 或 CERTIFICATE_FILTER 将 X.509 证书映射到 LDAP 目录用户。如果选择
EXACT_DN,那么证书中的 DN 必须与 LDAP 服务器中的用户条目完全匹配(包括大小写和空格匹配)。在独立 LDAP 注册表设置中选择授权时忽略大小写选项,以使权限不区分大小写。要访问“独立 LDAP 注册表设置”面板,请完成以下步骤:
- 单击安全性 > 全局安全性。
- 在“用户帐户存储库”下,单击可用的领域定义下拉列表,然后选择独立 LDAP 注册表。
- 如果选择 CERTIFICATE_FILTER,那么指定用于将客户机证书中的属性映射到 LDAP 中条目的 LDAP 过滤器。 如果运行时有多个 LDAP 条目与过滤器规范匹配,那么认证失败,这是因为它会导致模糊匹配结果。此过滤器的语法或结构是:LDAP attribute=${Client certificate attribute}(例如,uid=${SubjectCN})。
过滤器规范的一侧是 LDAP 属性,此属性依赖于 LDAP 服务器配置使用的模式。过滤器规范的另一侧是客户机证书的某个公共属性。请注意,作为客户机证书中某个公共属性的过滤器规范必须以美元符号 ($)、左括号 ({) 开头,而以右括号 (}) 结束. 在作为客户机证书中的某一公共属性的过滤器规范一侧使用以下证书属性值。字符串的大小写很重要。
- ${UniqueKey}
- ${PublicKey}
- ${IssuerDN}
- ${Issuer<xx>}
其中 <xx> 将替换为表示发布者专有名称的任何有效部分的字符。例如,可以使用 ${IssuerCN} 来作为发布者的公共名。
- ${NotAfter}
- ${NotBefore}
- ${SerialNumber}
- ${SigAlgName}
- ${SigAlgOID}
- ${SigAlgParams}
- ${SubjectDN}
- ${Subject<xx>}
其中 <xx> 将替换为表示主体集专有名称的任何有效部分的字符。例如,可以使用 ${SubjectCN} 来作为主体集的公共名。
- ${Version}
要启用此字段,为证书映射选择 CERTIFICATE_FILTER。
避免故障: 系统不支持将主题备用名称 (SAN) 用作证书过滤项。gotcha
- 单击应用。 在“高级 LDAP 设置”面板中修改了任何 LDAP 用户或组过滤器时,单击应用。单击确定会将您导航到“独立 LDAP 注册表”面板,它包含先前的 LDAP 目录类型,而不是定制 LDAP 目录类型。在“独立 LDAP 注册表”面板中单击确定或应用,将保存后备级别 LDAP 目录类型以及该目录的缺省过滤器。此操作覆盖您对于过滤器所作的任何更改。要避免覆盖更改,可以执行以下任一操作:
- 在“高级轻量级目录访问协议 (LDAP) 用户注册表设置”面板中单击单击。单击安全性 > 全局安全性,然后将用户帐户存储库类型更改为独立定制注册表。
- 从“独立 LDAP 注册表”面板选择定制类型。单击应用,然后通过单击“高级轻量级目录访问协议 (LDAP) 用户注册表设置”面板来更改过滤器。完成更改后,单击应用或确定。
更改验证在此面板中不会发生。当您在“全局安全性”面板上单击确定或应用时,会进行验证。如果您是首次启用安全性,那么完成剩余的步骤,并转至“全局安全性”面板。选择独立 LDAP 注册表作为用户帐户存储库。如果已启用安全性,且更改了此面板上的任何信息,请转至“全局安全性”面板并单击确定或应用以验证更改。如果未验证您的更改,那么服务器可能未启动。
结果
下一步做什么
- 通过在“全局安全性”面板上单击确定或应用来验证此设置。
- 保存、停止和启动所有产品服务器(包括单元、节点和所有应用程序服务器)以使此面板中的任何更改生效。
- 服务器启动后,完成所有安全性相关的任务(获取用户、获取组等)以验证对过滤器的更改是否起作用。


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tsec_ldapfilter
文件名:tsec_ldapfilter.html