2014-12-22 2 views
0

Я пытаюсь аутентифицировать идентификатор электронной почты и пароль с помощью PHP LDAP. Просто я хочу, чтобы аутентификация не нуждалась в доступе к контактам или письмам или календарям. Просто нужно подтвердить, что он действительный пользователь. Имя хоста правильно. Port nos также правильные. Пожалуйста помоги. Обратите внимание, мой сценарийФАЙЛЫ АУТЕНТИФИКАЦИИ PHP LDAP

  1. мой почтовый идентификатор [email protected] и имя пользователя является YYYYYY
  2. моя почта размещается и обрабатывается Материнской компанией (mail.parentcompany.com)

    $username = '[email protected]'; //If i use this line Unable to bind to server: Strong(er) authentication required 
    $username = 'yyyyyy';//If i use this line Unable to bind to server: Invalid credentials 
    $username = '[email protected]' //If i use this line Unable to bind to server: Invalid credentials 
    $password = 'mypassword'; 
    $ldap = ldap_connect("10.1.1.1",389) ; 
    if ($ldap) 
    { 
        $ldapbind = ldap_bind($ldap,$username,$password);  
        if ($ldapbind) { 
        echo "LDAP bind successful..."; 
    } else { 
        echo "LDAP bind failed..."; 
    } 
    

    }

+1

Каково ваше DN пользователя на сервере LDAP? Не зная этого, вам будет трудно заставить это работать. –

+0

извините @RobbyCornelissen .. вы спрашиваете доменную составляющую, я прав? – AnNaMaLaI

+0

Nope. Различающееся имя, которое однозначно идентифицирует пользователя на сервере LDAP. –

ответ

0

Посмотрите на https://gist.github.com/heiglandreas/5689592. Это простой пример привязки ldap, который показывает, как аутентифицировать пользователя с помощью LDAP с любым заданным атрибутом. Могу вам помочь.

Также я бы посоветовал вам проверить, действительно ли информация, которую вы получаете, является тем, что вы ожидаете, используя консольный инструмент, например 'ldapsearch'.

Вы можете использовать это также для проверки ldap-bind, предоставляя учетные данные, такие как ldapsearch -h <host> -D <bindDN> -W. -W запросит пароль пользователя, идентифицированного по <bindDN>

+0

hi @heiglandreas https://gist.github.com/5689592.git ссылка не работает .. может u plz обновить правильную ссылку – AnNaMaLaI

+0

Извините за путаницу. Просто изменил ссылку на правильный! – heiglandreas

1

Позвольте мне исправить это, ваш пользователь вводит свой адрес электронной почты и пароль, и вы хотите пройти аутентификацию он основан на этом? Имя пользователя, которое вы упомянули как yyyyyyy, является вашим пользователем для подключения к LDAP-поиску? Или пользователь вводит yyyyyy как свое имя пользователя?

Если ваш пользователь вводит только адрес электронной почты и пароль (только), чтобы заставить его работать правильно, вам нужен пользователь с правами поиска в каталоге (yyyyyy), с которым вы связываетесь, если вы хотите найти (обратите внимание, что вы можете получить более одной записи, если разрешено несколько учетных записей с одинаковым адресом электронной почты)

Общая идея в этом случае - связать с вашим пользователем приложения в каталоге, выполнить запрос LDAP для DN пользователя по электронной почте, а затем выполнить дополнительную привязку для проверки DN, найденного вами с помощью пароля, предоставленного пользователем.

Вы также должны проверить структуру входа, иногда имя пользователя должно иметь префикс с коротким доменом, например «mydomain \ username» для входа в ldap.

Так как нет простого способа отладки проблем с привязкой, я также использую Wireshark/TCPDump для отслеживания трафика на/из LDAP-сервера (в моем случае он не зашифрован в SSL), и я вижу, что именно отправлено и получено с сервера.

+0

Просто они войдут в yyyyy как имя пользователя и пароль. Мне нужно проверить правильность этих учетных данных для входа в систему. Если они верны, я вернусь. Успех – AnNaMaLaI

+0

. Вы также должны проверить структуру входа, иногда для имени пользователя должен быть префикс короткого домена, например «mydomain \ username» для входа в ldap. Так как нет простого способа отладки проблем с привязкой, я также использую Wireshark/TCPDump для отслеживания трафика на/с сервера LDAP (в моем случае он не зашифрован в SSL), и я вижу, что именно отправлено и получено от сервер. – Sherman

+1

Что касается комментария DN от @RobbyCornelissen, ваше DN должно выглядеть так: CN = Jeff Smith, OU = Sales, DC = Fabrikam, DC = COM – Sherman

Смежные вопросы