LDAP搜索未在子OU中查找条目

时间:2013-05-15 17:46:50

标签: active-directory ldap ldap-query

假设您有一个具有以下结构的LDAP:

dc=corp,dc=com
|--dc=security
   |--ou=users
      |--ou=corporate
      |  |--ou=it
      |     |--it-user1
      |     |--it-user2
      |--user1
      |--user2
      |--user3

我需要一个搜索查询来查看用户下的所有条目,包括公司及其下的条目。

目前我正在尝试以下方法:

uid=it-user2,ou=users,dc=security,dc=corp,dc=com

搜索范围设置为子树。我的印象是子树范围会导致LDAP以递归方式搜索整个树,但情况似乎并非如此。但是,如果我在搜索中添加完整路径,则会找到该条目。

uid=it-user2,ou=it,ou=corporate,ou=users,dc=security,dc=corp,dc=com

有人能告诉我出错的地方吗?感谢。

3 个答案:

答案 0 :(得分:1)

您需要将搜索上下文(即搜索库)设置为存储对象/条目的位置。根据您的示例,搜索上下文为ou=users,dc=security,dc=corp,dc=com。当您将搜索范围设置为子树时,它应该找到与您的critera匹配的条目(即搜索过滤器)。例如,

ldapsearch -h SERVER -b ou=users,dc=security,dc=corp,dc=com -s sub "(uid=it-user2)"

当然,使用“子树”搜索范围,您甚至可以将搜索上下文设置为更高级别的容器(例如dc=security,dc=corp,dc=com)。只要符合过滤器指定的条件,您的条目仍会被找到。由于您正在搜索ou=users容器下的所有条目,因此您的查询可能如下所示:

ldapsearch -h SERVER -b ou=users,dc=security,dc=corp,dc=com -s sub "(uid=*)"

ldapsearch -h SERVER -b ou=users,dc=security,dc=corp,dc=com -s sub "(objectclass=*)"

答案 1 :(得分:1)

我打了好几个小时 - CN =用户LDAP Directory Entry in .Net - not working with OU=Users

  

这看似愚蠢和愚蠢,但Active Directory中的默认树设置是而不是OU =用户,dc =域,dc = com,而是 CN =用户 ,dc = domain,dc = com(注意CN =不是OU =用户。)

答案 2 :(得分:0)

uid=it-user2,ou=users,dc=security,dc=corp,dc=com不存在。 LDAP客户端必须为存在的搜索请求提供基础对象。

另见