Я установил openldap для Windows и использовал эти данные пользователя ldap
айпи адрес : HTTP: // локальный /
полное отличительное имя: cn = имя, cn = пользователи, dc = mydomain, dc = com,
имя сервера: ldap: // server1
pasword: секрет
домен: mydomain.com
Теперь я пытаюсь получить имя пользователя = имя, указанное в коде ниже, для проверки подлинности с сервера LDAP. Это соединение, но привязка данных и поиск генерируют эти ошибки.
Предупреждение: ldap_bind (): Невозможно привязать к серверу: Невозможно связаться с сервером LDAP в C: \ wamp \ www \ ldap authentication \ connect.php в строке 14
Предупреждение: ldap_search (): предоставленный аргумент не является допустимым ресурсом ссылки ldap в C: \ wamp \ www \ ldap authentication \ connect.php в строке 15
Я новичок в ldap никогда не использовал раньше. может кто-нибудь сказать мне, где я ошибаюсь или что-то упустил. Я использую этот код, указанный ниже.
<?php
$domain = 'mydomain.com';
$username = 'name';
$password = 'secret';
$ldapconfig['host'] = 'ldap://server1';
$ldapconfig['port'] = 389;
$ldapconfig['basedn'] = 'dc=mydomain,dc=com';
$ds=ldap_connect($ldapconfig['host'], $ldapconfig['port']);
ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ds, LDAP_OPT_REFERRALS, 0);
$dn="cn=users,".$ldapconfig['basedn'];
$bind=ldap_bind($ds, $username .'@' .$domain, $password);
$isITuser = ldap_search($bind,$dn,'(&(objectClass=users)(sAMAccountName=' . $username. '))');
if ($isITuser) {
echo("Login correct");
} else {
echo("Login incorrect");
}
?>
Существует два способа подключения к LDAP-серверу с использованием php.
ldap_connect('ldap.example.com', 389);
или же
ldap_connect('ldap://ldap.example.org:389');
Насколько я вижу, вы пытаетесь смешать оба варианта, которые не сработают.
Лично мне нравится ldap://ldap.example.org:389
так как это единственный способ подключиться к защищенным ldaps серверам, используя ldaps://ldap.example.org
(вам не нужен порт, если это порт по умолчанию)
Других решений пока нет …