Подтвердить что ты не робот

Как проверить комбинацию имени пользователя и пароля?

Использование LDAP проверяет имя пользователя/пароль так же просто, как попытка связать его с этим пользователем и отметить результаты, или есть специальная функция проверки пароля LDAP?

Я пытаюсь получить немного больше "за кулисами", понимая, работая над беспорядочной проблемой установки репозитория LDAP.

(Примечание. Это касается ситуаций, когда пароль не хранится как хэш в настраиваемом свойстве, что легко управлять)

4b9b3361

Ответ 1

LDAP поддерживает сравнение userPassword. Вы отправляете пароль, сервер выполняет сравнение и возвращает true или false. Это не требуется логин для аутентификации пользователей.

Ответ 2

Посмотрите расширенную операцию WhoAmI (RFC 4532).

WhoAmI действительно выполняет одну цель - проверяет переданные учетные данные связывания. Он не должен влиять и не вызывать каких-либо "ограничений входа" (что я знаю).

WhoAmI можно сделать с помощью выделенного двоичного файла (например, "ldapwhoami" ), или это можно сделать с помощью Net:: LDAP:: Extension:: WhoAmI (Perl) или другого такого языка, который поддерживает операции LDAP. Обратите внимание, что "тестирование пароля" с использованием некоторой функции "Поиск" является ненадежным методом тестирования.

Например, если мое DN является "uid = max, ou = users, dc = company, dc = com", а мой пароль "@secret", это можно сделать через выделенный бинарный файл в ящике Linux (примечание -ZZ используется для конфиденциальности TLS, которая, возможно, не поддерживается или необязательна в вашей среде):

ldapwhoami -x -w "@secret" -D uid=max,ou=users,dc=company,dc=com -ZZ -H ldap://address.of.your.ldapserver/

Если комбинация user/pass верна, возвращается ответ:

дп: UID = макс, НУ = пользователи, dc = компания, DC = COM

Если комбинация user/pass НЕ верна, возвращается ответ (обычно):

(49) Недействительные учетные данные

Это может означать, что, как я уже сказал, пароль и/или имя пользователя неверны, пользователь не существует, или ACL LDAP-сервера нарушены таким образом, что аутентификация невозможна. Чаще всего, его комманда user/pass туманна или пользователь не существует.

В завершение операция LDAPWhoAmI - очень легкий и простой метод проверки учетных данных. Он также работает и с другими механизмами (например: Kerberos Single Sign-On, Digest-MD5 и т.д. И т.д.).

Ответ 3

Остерегайтесь использования bind для проверки имени пользователя/пароля, в некоторых системах он будет считаться логином, а с ограничениями входа он может выйти из строя.

Использование сравнения - лучший вариант для проверки пароля.

Ответ 4

Связывание, поскольку этого пользователя достаточно. Пароль проверяется в процессе привязки.