Поиск LDAP не находит записи в дочерних OU

Допустим, у вас есть LDAP со следующей структурой:

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

Мне нужен поисковый запрос, который будет просматривать все записи под пользователями ou, в том числе под корпоративными и им.

В настоящее время я пытаюсь сделать следующее:

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

Может ли кто-нибудь дать мне представление о том, где я ошибаюсь? Спасибо.


person Catie    schedule 15.05.2013    source источник


Ответы (3)


Вам необходимо установить контекст поиска (т. е. базу поиска) в том месте, где хранится ваш объект/запись. Исходя из вашего примера, контекст поиска ou=users,dc=security,dc=corp,dc=com. Когда вы устанавливаете область поиска для поддерева, она должна найти запись или записи, соответствующие вашему критерию (т. е. поисковый фильтр). Например,

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=*)"

or

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

Я боролся с этим часами - CN = Users запись каталога LDAP в .Net - не работает с OU=Users

Это может показаться глупым и глупым, но в Active Directory по умолчанию используется структура дерева не OU=Users,dc=domain,dc=com, а скорее CN=Users,dc= domain,dc=com (Обратите внимание, что CN=, а не OU= для пользователей.)

person wruckie    schedule 14.01.2014

uid=it-user2,ou=users,dc=security,dc=corp,dc=com не существует. Клиент LDAP должен предоставить базовый объект для существующего поискового запроса.

смотрите также

person Terry Gardner    schedule 15.05.2013
comment
Ссылка на LDAP: рекомендации по поиску не работает. - person steal3rd; 16.07.2019