Пожалуйста, взгляните на следующее. Я прикрепил детали настроек DN и учетной записи пользователя. Я смог проверить подлинность учетной записи с LDP.exe с правильными деталями.
Я получаю ошибку при запуске этого скрипта
Warning: ldap_bind(): Unable to bind to server: Invalid credentials in /var/www/html/portal/ldap.php on line 8
Ниже приведен скрипт php, который я пытаюсь получить.
<?php
$ldapconn = ldap_connect("server_url") or die("Could not connect to LDAP server.");
if ($ldapconn) {
// binding anonymously
$ldapbind = ldap_bind($ldapconn,'uid=Lyall,cn=Domain Admins,cn=Users,dc=svo,dc=local','Password');
if ($ldapbind) {
echo "LDAP bind anonymous successful...";
} else {
echo "LDAP bind anonymous failed...";
}
}
?>
Вот скриншот настроек DN
Вот скриншот пользователя, который тестирует im
Я использовал LDP.exe и смог аутентифицировать детали.
res = ldap_bind_s(ld, NULL, &NtAuthIdentity, NEGOTIATE (1158)); // v.3
{NtAuthIdentity: User='lyall'; Pwd=<unavailable>; domain = 'cn=Domain Admins,cn=Users,dc=svo,dc=local'}
Authenticated as: 'SVO\Lyall'.
В Active Directory нет такого атрибута, как uid
. Различающееся имя вашей учетной записи, скорее всего, начинается с CN=
. Если у вас есть доступ к модулю Active Directory Powershell (обычно установленному на контроллере домена или компьютере, предназначенном для управления доменом), вы можете проверить свое полное различающееся имя, выполнив следующее:
Get-ADUser YOUR_LOGINID_HERE -Properties DistinguishedName
(Надеюсь, у меня все получилось, прошло некоторое время с тех пор, как я использовал PS)
Во всяком случае, DN не является единственным атрибутом, который вы можете использовать для аутентификации/привязки к Active Directory - вы можете использовать множество других, более легко запоминаемых опций:
samAccountName
: SVO\LyalluserPrincipalName
: [email protected] (иногда это то же самое, что и адрес электронной почты, зависит от того, как вы называете свои учетные записи пользователей)DisplayName
См. Простую проверку подлинности в MSDN для подробного описания того, какие атрибуты доступны.
Предупреждение - самопропаганда:
Я написал несколько библиотек, которые упрощают работу с ldap, поэтому, если вам интересно, взгляните на Ldap-Core.
Вы уверены, что DN Lyall является uid=Lyall,cn=Domain Admins,cn=Users,dc=svo,dc=local
? Для меня это похоже, что Lyall является членом группы cn=Domain Admins,cn=Users,dc=svo,dc=local
. Это не обязательно означает, что Lyells DN является uid=Lyall,cn=Domain Admins,cn=Users,dc=svo,dc=local
. Он также может быть uid=Lyall,cn=Users,dc=svo,dc=local
или что-то еще. Возможно, это поможет вам решить проблему.