У меня проблемы с выполнением привязки с аутентификацией к серверу. Проблемы, похоже, не связаны с кодом, но, возможно, проблема с сервером.
Просто чтобы вы знали;
Я могу привязать анонимно с помощью этого скрипта;
$ldapconn = ldap_connect("machinename.domain.com")
or die("Could not connect to LDAP server.");
if ($ldapconn) {
// binding anonymously
$ldapbind = ldap_bind($ldapconn);
if ($ldapbind) {
echo "LDAP bind anonymous successful...";
} else {
echo "LDAP bind anonymous failed...";
}
}
Однако когда я пытаюсь выполнить привязку с аутентификацией с помощью этого сценария, это не удается.
// Authenticated Bind
$ldaprdn = 'username@domain.com'; // ldap rdn or dn
$ldappass = 'password'; // associated password
// connect to ldap server
$ldapconn = ldap_connect("machinename.domain.com")
or die("Could not connect to LDAP server.");
if ($ldapconn) {
// binding to ldap server
$ldapbind = ldap_bind($ldapconn, $ldaprdn, $ldappass);
// verify binding
if ($ldapbind) {
echo "LDAP bind successful...";
} else {
echo "LDAP bind failed...";
}
}
Где я ошибаюсь?
Хорошо, после долгого расследования я включил информацию об ошибке, используя ldap_errno()
и ldap_error()
и обнаружил, что он возвращает ошибку «Требуется строгая (er) аутентификация», обнаружил два возможных решения;
Настройте параметры групповой политики
Нет требований к подписи (Контроллер домена: требования подписи сервера LDAP)
Результат: удалось успешно выполнить привязку, и когда я неправильно ввожу имя пользователя или пароль, выдает сообщение «Недействительные учетные данные», как и ожидалось.
Включить LDAP через SSL (LDAPS)