TssDragon
Новичок
Доброго времени суток, господа
Ситуация:
На сайте есть авторизация, которая возможна как по внутренней базе пользователей (firebird, но это не важно для данной задачи), так и через ldap.
Алгоритм такой:
получаем из базы конфиги для ldap сервера(-ов) и пробуем авторизовать пользователя по введенным данным через ldap, если успешно, то проверяем наличие пользователя в нашей внутренней базе и, если его нет, то регистрируем его, получая дополнительную информацию с ldap сервера (имя, фамилия и так далее), если уже есть в базе, то просто пропускаем дальше. Если пользователь с таким логин/пароль не найден в ldap, происходит попытка авторизации через внутреннюю базу, если успешно, то пускаем дальше.
Общем, авторизация в таком виде работает шикарно и успешно![Smile :) :)](/talk/styles/default/xenforo/smilies/smile.png)
И все бы хорошо, но возникла задача аутентификации.
То есть, теперь необходимо на форме входа сначала вводить только логин и проверять его наличие как во внутренней базе (элементарно, уже сделано) так и в ldap. Если логин где-то есть, то просим пароль и авторизуем, если нигде нет, то предлагаем регистрацию.
Собственно проблема:
Как мне проверить наличие пользователя в ldap, без ввода пароля ?
Читал, что при попытке ldap_bind без пароля, но с корректным логином bind будет успешен (анонимное соединение) и шикарно бы было, но пробую сделать:
$bind = @ldap_bind($ldapConnect->getLdapConnect(), $ldapLogin, null);
или
$bind = @ldap_bind($ldapConnect->getLdapConnect(), $ldapLogin);
и у меня в любом случае бинд проходит, не важно корректный логин или не корректный.
Пробую биндить без логина и пароля, после чего сделать ldap_search
$result= ldap_search($ldapConnect->getLdapConnect(), $ldapConnect->getBase(), "(" . $ldapConnect->getFilter() . $login . "*)"); - так работает при простой авторизации для получения данных о пользователе
Но выкидывает
Warning: ldap_read(): Search: Operations error in D:\TssDragon\RegKod\Apache24\domain\RegKod\auth\Auth.php on line 113
И, собственно говоря, ничего не ищет![Frown :( :(](/talk/styles/default/xenforo/smilies/frown.png)
Прощу помощи
Ситуация:
На сайте есть авторизация, которая возможна как по внутренней базе пользователей (firebird, но это не важно для данной задачи), так и через ldap.
Алгоритм такой:
получаем из базы конфиги для ldap сервера(-ов) и пробуем авторизовать пользователя по введенным данным через ldap, если успешно, то проверяем наличие пользователя в нашей внутренней базе и, если его нет, то регистрируем его, получая дополнительную информацию с ldap сервера (имя, фамилия и так далее), если уже есть в базе, то просто пропускаем дальше. Если пользователь с таким логин/пароль не найден в ldap, происходит попытка авторизации через внутреннюю базу, если успешно, то пускаем дальше.
Общем, авторизация в таком виде работает шикарно и успешно
![Smile :) :)](/talk/styles/default/xenforo/smilies/smile.png)
И все бы хорошо, но возникла задача аутентификации.
То есть, теперь необходимо на форме входа сначала вводить только логин и проверять его наличие как во внутренней базе (элементарно, уже сделано) так и в ldap. Если логин где-то есть, то просим пароль и авторизуем, если нигде нет, то предлагаем регистрацию.
Собственно проблема:
Как мне проверить наличие пользователя в ldap, без ввода пароля ?
Читал, что при попытке ldap_bind без пароля, но с корректным логином bind будет успешен (анонимное соединение) и шикарно бы было, но пробую сделать:
$bind = @ldap_bind($ldapConnect->getLdapConnect(), $ldapLogin, null);
или
$bind = @ldap_bind($ldapConnect->getLdapConnect(), $ldapLogin);
и у меня в любом случае бинд проходит, не важно корректный логин или не корректный.
Пробую биндить без логина и пароля, после чего сделать ldap_search
$result= ldap_search($ldapConnect->getLdapConnect(), $ldapConnect->getBase(), "(" . $ldapConnect->getFilter() . $login . "*)"); - так работает при простой авторизации для получения данных о пользователе
Но выкидывает
Warning: ldap_read(): Search: Operations error in D:\TssDragon\RegKod\Apache24\domain\RegKod\auth\Auth.php on line 113
И, собственно говоря, ничего не ищет
![Frown :( :(](/talk/styles/default/xenforo/smilies/frown.png)
Прощу помощи