【问题标题】:are wildcards possible in OpenLDAP LDAPConnection.bind() dn string?OpenLDAP LDAPConnection.bind() dn 字符串中是否可以使用通配符?
【发布时间】:2011-05-20 14:39:38
【问题描述】:

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

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

但是,当我尝试绑定不完整的 dn 时,我收到了 Invalid Credentials 异常。

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”?

【问题讨论】:

    标签: java ldap openldap


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 我对此感到害怕(尽管并不害怕)。我们很早就做出了一个决定,我们只“知道” dn,当然我们错了。我将不得不将其重写为搜索和绑定。谢谢!
      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2023-02-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-30
        • 1970-01-01
        • 2015-05-16
        • 1970-01-01
        相关资源
        最近更新 更多