LDAP + PHP


Добрый день всех читающих. Как понятно из заголовка, сегодня речь пойдет о подключение к Active Directory (LDAP) с помощью PHP.

В первую очередь в файле php.ini необходимо раскомментировать строку php_ldap.

Для точной выборки пользователей или авторизации пользователей лучше знать структуру LDAP, но это не обязательно.

//Имя домена
$ldap_domain = '@ldapname.local';

//Логин и пароль пользователя или администратора
$ldap_user = 'admin';
$ldap_pass = 'password';

//В данном случае подключаемся к локальной машине
$ds=ldap_connect('127.0.0.1');

//Устанавливаем протоколы
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ds, LDAP_OPT_REFERRALS, 0);

//Делаем выборку доменного имени
$dn = "dc=ldapname, dc=local";

//Выбираем поля необходимые для работы
$filter = "givenname=*";
$attr = array('cn', 'mail', 'title', 'department', 'company', 'telephoneNumber', 'mobile', '*');
if ($ds) {
 $r=ldap_bind($ds, $ldap_user.$ldap_domain, $ldap_pass) or die("Ошибка! Сервер отключен!");
 $result = ldap_search($ds, $dn, $filter, $attr);
 $list_users = ldap_get_entries($ds, $result);
 ldap_unbind($ds);
}

//$list_users - Это массив всех пользователей в домене

Это лишь маленький пример самостоятельной реализации подключения к LDAP. 

На данный момент есть целая куча модулей на github-е уже готовых скриптов, которые можно установить через composer.