【发布时间】:2018-04-27 15:21:40
【问题描述】:
我正在使用 LDAP 从我的应用程序连接到 AD 服务器。我已成功通过身份验证,但是当我搜索用户时,它会在 acl_read: instanceType for base 中引发 LDAP 错误代码 32 的异常。
javax.naming.NameNotFoundException: [LDAP: error code 32 - acl_read: Error retrieving instanceType for base. at ../source4/dsdb/samdb/ldb_modules/acl_read.c:362]
at com.sun.jndi.ldap.LdapCtx.mapErrorCode(Unknown Source)
at com.sun.jndi.ldap.LdapCtx.processReturnCode(Unknown Source)
at com.sun.jndi.ldap.LdapCtx.processReturnCode(Unknown Source)
at com.sun.jndi.ldap.LdapCtx.searchAux(Unknown Source)
at com.sun.jndi.ldap.LdapCtx.c_search(Unknown Source)
at com.sun.jndi.toolkit.ctx.ComponentDirContext.p_search(Unknown Source)
at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(Unknown Source)
at com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(Unknown Source)
at javax.naming.directory.InitialDirContext.search(Unknown Source)
我已经验证了baseDN、域名和端口,它们是正确的,我们可以连接到它。
我从日志中获取了查询字符串,并在 AD 浏览器的自定义搜索中验证了相同的内容。它似乎工作正常并返回结果。
Query from Logs: (&(objectClass=user)(objectCategory=person)(|(|(sAMAccountname=*MSUser1*)(givenName=*MSUser1*)(sn=*MSUser1*))))
不确定这里出了什么问题。可以帮助我识别和解决此问题。
谢谢
【问题讨论】:
-
您的 baseDN 有问题。建议您尝试使用已知好的 LDAP 浏览器或 ldapssearch 实用程序。 (我喜欢directory.apache.org/studio)
-
谢谢,我使用了具有相同 baseDN 的 AD 浏览器,它工作正常。但是,我将尝试使用 Apache 的那个。
-
我尝试使用 Apache 浏览器,它使用相同的 baseDN。自定义搜索也给了我返回的结果。请问还有什么想法吗?
-
使用
ldasearch命令的确切查询是什么样的? -
DN_PREFIX看起来很奇怪,我会尝试DN_PREFIX=CN=(或DN_PREFIX=CN)
标签: active-directory ldap ldap-query