Я новичок в LDAP и Active Directory. Я пытаюсь получить идентификатор электронной почты аутентифицированного пользователя, используя следующий код. Однако, когда я запускаю его, все, что я получаю, это массив с 0 в нем.Почему этот запрос LDAP возвращает массив только с 0
Вот код
$server ='ldaps://DOMAIN';
$username = 'DOMAIN\UID';
$password = 'PASSWORD';
$base_dn = 'dc=DOMAIN';
$search_filter = 'dn=UID';
$attributes = ['mail'];
$ldap = ldap_connect($server);
ldap_set_option($ldap, LDAP_OPT_REFERRALS, 0);
ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_bind($ldap, $username, $password);
$search = ldap_search($ldap, $base_dn, $search_filter, $attributes);
$data = ldap_get_entries($ldap, $search);
foreach($data as $dataPoint)
{
echo $dataPoint;
echo "<hr>";
}
Это выводит только на 0 с горизонтальной линией под ним.
Самое сложное, что здесь нет сообщения об ошибке, и я не очень хорошо знаком с LDAP и с Active Directory.
Любая идея, почему это может произойти.
Поиск LDAP может быть болью - особенно если вы не знакомы с созданной структурой. Я обнаружил, что загрузка браузера MS AD (небольшое приложение, которое позволяет вам просматривать структуру в виде дерева подобно тому, как это делает) намного проще обеспечить, чтобы выполняемые вами поисковые запросы выполняли правильный поиск. Как только вы это сделаете, данные действительно возвращаются в массив с МНОГИМИ полями - поэтому попробуйте использовать print_r, чтобы просмотреть каждый бит, возвращенный, чтобы найти нужные элементы, содержащие идентификатор электронной почты. – Fluffeh
Спасибо тонну !! это помогло мне больше всего. Проблема была в моем базовом домене, была способна определить правильную причину только для браузера AD – TDsouza
Нет проблем, я помню, когда я впервые начал выполнять поиск LDAP, это было чертовски, пока друг не предложил мне просмотреть дерево, чтобы убедиться, что я использовал правильные запросы :) – Fluffeh