Хобрук: Ваш путь к мастерству в программировании

Неверные учетные данные при аутентификации пользователей в Active Directory с помощью PHP

Это первый раз, когда мне нужно аутентифицировать пользователей в моем PHP-приложении с помощью удаленного Active Directory. Я нашел тестовый сервер в Интернете по этой ссылке и написал несколько кодов для подключения к серверу и выполнения аутентификации в тестовом режиме:

$ldap_server = 'www.zflexldap.com';
$ldap_server_port = 389;
$ldap_username = 'guest1';
$ldap_password = 'guest1password';
$ldap_base_dn = 'ou=users,ou=guests,dc=zflexsoftware,dc=com';

$ldap_connection = ldap_connect($ldap_server, $ldap_server_port);

if ($ldap_connection === false) {
    echo 'Connection failed';
} else {
    echo 'Connected<br>';
}

ldap_set_option($ldap_connection , LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ldap_connection , LDAP_OPT_REFERRALS, 0);

$bind = ldap_bind($ldap_connection, 'uid='.$ldap_username.','.$ldap_base_dn, $ldap_password);
if ($bind) {
    echo 'Successful login';
} else {
    echo 'Failed login';
}

Результат выполнения этого кода:

Подключено
Успешный вход

После этого я создал настоящий сервер Active Directory на виртуальной машине и определил пользователей на этом сервере, как показано ниже:

введите здесь описание изображения

И затем я изменил переменные соединения на эти строки:

$ldap_server = 'SERVER_IP';
$ldap_server_port = 389;
$ldap_username = 'test1';
$ldap_password = 'test1_password';
$ldap_base_dn = 'ou=users,dc=website,dc=com'; // Imagine domain as website.com on AD  

Теперь, когда я хочу подключиться к серверу ldap и аутентифицировать пользователя test1, я получаю следующий результат:

Подключено
Предупреждение: ldap_bind(): невозможно выполнить привязку к серверу: неверные учетные данные в index.php в строке 25
Ошибка входа

Я уверен, что имя пользователя и пароль верны. Я предполагаю, что проблема может быть в base_dn, но когда я проверил настройки сервера, я не смог найти никакой ошибки в том, что я написал в своем коде.

Можете ли вы помочь мне решить эту проблему, пожалуйста?



Ответы:


Новые материалы

Неделя 1 — Кентерберийские рельсы.
Неделя 1 — Кентерберийские рельсы. So. Мы все еще живы, все еще усердно работаем и еще не пассивно-агрессивно рассылаем друг другу сообщения «за мое последнее сообщение в Slack…», поэтому, на..

Цена завтрашнего дня  — Джефф Бут
Технологический прогресс в наши дни происходит с молниеносной скоростью, и мы не в состоянии это понять. Джефф в основном говорит о влиянии технологий на экономику по всему миру. Он твердо верит..

Данные: суперсила современного бизнеса
В цифровой среде данные превратились из простого побочного продукта бизнес-операций в центральный актив, стимулирующий рост и инновации. Крейг Манди, бывший главный директор по стратегии..

Как симулировать серию пенальти на Python с помощью симуляции Монте-Карло, часть 1: генерация функций
Серия пенальти была огромным испытанием во время чемпионата мира по футболу. Они вызвали много споров в социальных сетях и новостных агентствах. Даже финальный матч турнира решался по..

AST для разработчиков JavaScript
TL; DR Эта статья - мое выступление на недавно состоявшейся конференции Stockholm ReactJS Meetup. Вы можете посмотреть слайды здесь..

5 проектов на Python, которые нужно создать прямо сейчас!
Добро пожаловать! Python — один из моих любимых языков программирования. Если вы новичок в этом языке, перейдите по ссылке ниже, чтобы узнать о нем больше:

Dall-E 2: недавние исследования показывают недостатки в искусстве, созданном искусственным интеллектом
DALL-E 2 — это всеобщее внимание в индустрии искусственного интеллекта. Люди в списке ожидания пытаются заполучить продукт. Что это означает для развития креативной индустрии? О применении ИИ в..