Загрузка пользователей из Active Directory с использованием ADLDAP - PullRequest
2 голосов
/ 06 марта 2012

Я использую библиотеку ADLDAP (http://adldap.sourceforge.net) для взаимодействия с Active Directory. Я использую PHP. Я хотел бы получить всех пользователей из Active Directory и сохранить их в массив. Есть ли способ сделатьэто?

Ответы [ 2 ]

5 голосов
/ 10 апреля 2012

Вы, вероятно, хотите сделать что-то вроде:

$adldap = new adLDAP();
$usernames = $adldap->user()->all();

$users = array();
foreach ($usernames as $username)
{
    $userInfo = $adldap->user()->infoCollection($username);
    $users[$username] = $userInfo;
}

метод all() обнуляется здесь .

1 голос
/ 06 марта 2012

Предполагая, что администраторы каталога разрешат клиентскому приложению LDAP извлекать все записи из каталога, извлеките значение атрибута namingContexts из корневого DSE.Значения этого атрибута (он многозначный) являются контекстами или суффиксами именования, которые поддерживает этот сервер.Используя эту информацию, создайте поиск, используя:

  • контекст имен
  • ограничение размера 0f 0 (без sizelimit)
  • ограничение по времени 0 (неограниченное время)
  • фильтр, который будет соответствовать всем записям, например, (objectClass=*) или (&)
  • область, достаточная для обнаружения всех записей, вероятно, subtree
  • aсписок требуемых атрибутов

Построить этот поиск для каждого namingContext.Опять же, предполагая, что администраторы каталогов разрешат клиенту LDAP выполнять поиск по всему каталогу, эти поиски приведут к ответам, содержащим каждую запись.

Существует много предостережений, таких как:

  • разрешено ли это администраторами?
  • может ли ваше приложение стать достаточно большим, чтобы обрабатывать данные (если не механизм простых постраничных результатов может обеспечить решение).
  • Мне сказали, что AD налагаетограничение размера 1000 на клиентах LDAP.Даже если это так, ни один клиент LDAP не должен быть закодирован со знанием инфраструктуры каталогов или поставщика.Это приводит к плохому, хрупкому коду, который трудно поддерживать.Все клиенты LDAP должны быть закодированы в соответствии со стандартами, установленными Директоратом LDAP в IETF.

Для получения дополнительной информации см .:

...