在OpenLDAP LDAPConnection.bind()dn字符串中是否可以使用通配符?

时间:2011-05-20 14:39:39

标签: java ldap openldap

我的具体问题是,当我尝试使用以下完整的dn绑定时,一切都很好

new LDAPConnection().bind(LDAPConnection.LDAP_V3, 
"uid=me@wherever.com,ou=Lev1,ou=Lev2,o=Company", "secret".getBytes());

但是,当我尝试使用不完整的dn绑定时,我收到了一个无效的凭据异常。

new LDAPConnection().bind(LDAPConnection.LDAP_V3,
"uid=me@wherever.com,ou=Lev1,o=Company", "secret".getBytes());

他们的某种形式的通配符是否可行,例如“uid = me @ wherever.com,ou = Lev1,ou = *,o = Company”?

3 个答案:

答案 0 :(得分:1)

没有。听起来你可能会将bind()与search()混淆。 bind()是对目录的身份验证,就像登录一样。使用通配符dn进行绑定就像使用通配用户名登录一样。没有意义。

答案 1 :(得分:0)

要执行这样的通配符,您必须先进行搜索,然后选择要执行绑定的那个。这可能意味着您需要使用可以执行搜索的id进行绑定。 ;)

答案 2 :(得分:0)

不,您所描述的方式无法使用通配符。但是,SASL提供了一种实现所需行为的机制。您的目录服务器管理员可能能够配置目录服务器以将身份映射到授权ID,其中客户端不需要知道用于验证LDAP连接的身份的可分辨名称。专业品质的目录服务器软件将提供各种身份映射功能。