Получить список всех пользователей ldap

Я пытаюсь получить список всех пользователей, которые существуют на ldap, чтобы создать окно автозаполнения в jquery. Однако мне не удается его получить. Я могу подключиться и привязать к серверу ldap, затем я пытаюсь использовать ldap_list(), Я оставляю пробел в фильтре, чтобы ничего не фильтровать и получить весь список. тем не мение ldap_list() устанавливает предупреждение (Search: Can't contact LDAP server) и возвращает FALSE, который заставляет все пойти не так, так как это логическое значение, и это не то, что ожидалось (Warning: ldap_get_entries() expects parameter 2 to be resource, boolean given). Вот пример моего кода:

$identifier = ldap_connect(sfConfig::get('sf_ldap_host'));
if (!ldap_bind($identifier,
    sfConfig::get('sf_ldap_generic_user').sfConfig::get('sf_ldap_usr_domain'),
    sfConfig::get('sf_ldap_generic_password')))
{
    throw new sfException('could not bind to the Active Directory');
}
$list = ldap_list($identifier, sfConfig::get('sf_ldap_dn'), '', array('mail'));
$list_user = ldap_get_entries($identifier, $list);

1 ответ

  1. Подключиться к серверу
  2. Измените состояние авторизации, передав запрос BIND с DN, который имеет достаточный доступ для поиска во всех частях DIT
  3. Если BIND был успешным, получить список всех namingContexts от корневого DSE
  4. Для каждого namingContext передайте запрос поиска, используя базовый объект namingContext, объем subфильтр (&) или же (objectClass=*), сформулируйте список желаемых атрибутов. Только для пользователей используйте фильтр (objectClass=<object class in each user object>), например, (objectClass=person)
  5. Каждый результат поиска в ответе от сервера содержит объекты, которые соответствуют параметрам поиска

Состояние авторизации, установленное BIND, должно разрешать доступ и иметь возможность возвращать столько объектов, сколько требуется. Серверам разрешено ограничивать количество записей, возвращаемых клиенту, а также ограничивать количество секунд, затрачиваемых на оценку операции LDAP, в данном случае поиска.

Обратите внимание, что правильно сконфигурированный сервер может не разрешить траление каталога из-за загрузки этого места на сервере (что повлияет на других клиентов). Подумайте о том, чтобы сообщить администраторам сервера каталогов, что ваш клиент планирует перечислить всех пользователей.

Другие вопросы по тегам