Назад | Перейти на главную страницу

LDAP не может выполнить привязку с проверкой подлинности - Windows Server 2008 R2 с использованием PHP / Apache

У меня проблемы с выполнением привязки с аутентификацией к серверу. Проблемы, похоже, не связаны с кодом, но, возможно, проблема с сервером.

Просто чтобы вы знали;

Я могу привязать анонимно с помощью этого скрипта;

$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)

  • Результат: удалось успешно выполнить привязку, и когда я неправильно ввожу имя пользователя или пароль, выдает сообщение «Недействительные учетные данные», как и ожидалось.

Включить LDAP через SSL (LDAPS)