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.