Проблемы с подключением php Ldap

0

Пожалуйста, взгляните на следующее. Я прикрепил детали настроек 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

Изображение 174551

Вот скриншот пользователя, который тестирует im

Изображение 174551

Я использовал 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'.
Теги:
ldap

2 ответа

0
Лучший ответ

В Active Directory нет такого атрибута, как uid. Различающееся имя вашей учетной записи, скорее всего, начинается с CN=. Если у вас есть доступ к модулю Active Directory Powershell (обычно установленному на контроллере домена или компьютере, предназначенном для управления доменом), вы можете проверить свое полное различающееся имя, выполнив следующее:

Get-ADUser YOUR_LOGINID_HERE -Properties DistinguishedName

(Надеюсь, у меня все получилось, прошло некоторое время с тех пор, как я использовал PS)

Во всяком случае, DN не является единственным атрибутом, который вы можете использовать для аутентификации/привязки к Active Directory - вы можете использовать множество других, более легко запоминаемых опций:

  • samAccountName: SVO\Lyall
  • userPrincipalName: [email protected] (иногда это то же самое, что и адрес электронной почты, зависит от того, как вы называете свои учетные записи пользователей)
  • DisplayName

См. Простую проверку подлинности в MSDN для подробного описания того, какие атрибуты доступны.

Предупреждение - самопропаганда:
Я написал несколько библиотек, которые упрощают работу с ldap, поэтому, если вам интересно, взгляните на Ldap-Core.

1

Вы уверены, что 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 или что-то еще. Возможно, это поможет вам решить проблему.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню