openssl — Php adLDAP Error — Невозможно привязать к серверу: требуется строгая (er) аутентификация

Я пытаюсь использовать PHP adLDAP версия 4.04 проходить аутентификацию в корпоративной сети пока безуспешно.

PHP Version 5.2.4

Я попробовал этот пост stackoverflow PHP ldap — требуется строгая (er) аутентификация, неудачно.

я НЕ админ на этом контроллере домена; Мне нужно только иметь возможность запрашивать.

Я могу пинговать HOSTNAMEOFDC.domain.location.company.com (полное доменное имя моего контроллера домена)

Контроллер домена является Windows Server 2012 R2 Standard,

Я успешно запросил этот контроллер домена с помощью DsQuery а также PowerShell AD Module без проблем и без аутентификации, которые мне пришлось вводить вручную.

Мой код:

<?php
require_once("includes/php/adLDAP/src/adLDAP.php");
$username = "domain\\username"; // also tried just "username"$password = "somepassword";

// All possible settings are listed in this array
$options = array(
"account_suffix" => "@domain.location.company.com",
//      "admin_username" => $username,
//      "admin_password" => $password,
//      "ad_port" => "636",
//      "base_dn" => "DC=domain,DC=location,DC=company,DC=com",
"domain_controllers" => array("HOSTNAMEOFDC.domain.location.company.com"),
//      "real_primarygroup" => "",
//      "recursive_groups" => "",
//      "use_ssl" => true
//      "use_tls" => true
);

$adldap = new adLDAP($options);// $authUser = $adldap->user()->authenticate($username, $password);
$authUser = $adldap->user()->authenticate($username,$password);
if ($authUser) {
echo "User authenticated successfully";
} else {
// getLastError is not needed, but may be helpful for finding out why:
echo $adldap->getLastError() . "<br>";
echo "User authentication unsuccessful";
}

// Destroy
$adldap->close();
$adldap->__destruct();
?>

Я получаю ошибку:

Warning: ldap_bind() [function.ldap-bind]: Unable to bind to server: Strong(er) authentication required in C:\xampp\htdocs\Workspace\Project\scripts\includes\php\adLDAP\src\adLDAP.php on line 712
Strong(er) authentication required
User authentication unsuccessful

Потом когда раскомментирую "use_ssl" => true" Я получаю эту ошибку:

FYI, ssl загружается в мой php.ini

Warning: ldap_bind() [function.ldap-bind]: Unable to bind to server: Can't contact LDAP server in C:\xampp\htdocs\Workspace\Project\scripts\includes\php\adLDAP\src\adLDAP.php on line 712
Can't contact LDAP server
User authentication unsuccessful

Я также пытался раскомментировать "use_tls" => true" и я получаю эту ошибку:

Warning: ldap_start_tls() [function.ldap-start-tls]: Unable to start TLS: Connect error in C:\xampp\htdocs\Workspace\Project\scripts\includes\php\adLDAP\src\adLDAP.php on line 638

Warning: ldap_bind() [function.ldap-bind]: Unable to bind to server: Can't contact LDAP server in C:\xampp\htdocs\Workspace\Project\scripts\includes\php\adLDAP\src\adLDAP.php on line 712
Can't contact LDAP server
User authentication unsuccessful

7

Решение

Этот ответ относится к PHP 5.2 -5.3, эта ошибка была исправлена ​​в более новых версиях (возможно)

Досадно, когда PHP выкладывает ошибку Невозможно привязать к серверу: требуется строгая (er) аутентификация — на самом деле он говорит вам, что ему нужен сертификат или группа сертификатов НА ВАШЕМ МЕСТНОМ МАШИНЕ и есть .conf файл указывают на них.

Я создал каталог: C:\openldap\sysconf (до этого не существовало).

Я сделал файл ldap.conf в C:\openldap\sysconf

В * nix вы, вероятно, поместите его в /etc или subdir там, но я еще не проверял это.

Я нашел файл PEM для наших сертификатов и извлек его в каталог (файл PEM — это, по сути, целая цепочка сертификатов в одном файле).

В ldap.conf Я добавил строку: TLS_CACERT C:\openldap\sysconf\Certs.pem

Если вы не можете получить сертификаты PEM, вы можете использовать TLS_REQCERT never вместо. Будьте осторожны при этом. Делая это, вы подвергаете себя человека в средней атаке. Это не будет проверять конечную точку.

Как только я это сделал, я успешно связал.

Если это не сработает, попробуйте положить ldap.conf в C:\ (корневой уровень); кажется, это зависит от того, какую версию PHP вы используете — он решает искать в разных местах ldap.conf,

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]