Как сделать аутентификацию сервера Ldap?
Я где-то настроил Ldap-сервер. Я могу привязать к нему, могу добавить, изменить, удалить запись в базе данных. Теперь, когда дело доходит до аутентификации, не так ли просто, как передать имя пользователя и пароль серверу, попросив его найти запись, соответствующую двум? И, кроме того, разве это не поле ' userPassword ', которое содержит пароль для пользователя?
Теперь я попытался настроить Splunk для аутентификации с моего Ldap-сервера, я указал имя пользователя и пароль, но он не прошел аутентификацию. Разве это не то поле userPassword, которое проверяет спленк? Какова должна быть возможная причина?
3 ответа
Серверы LDAP обычно не позволяют вам выполнять поиск по атрибуту userPassword по очевидным причинам безопасности. (и атрибут пароля скорее всего хранится в хешированном виде, поэтому прямой поиск не будет работать.)
Вместо этого обычный способ сделать аутентификацию LDAP:
- запрос имени пользователя и пароля
- Привязка к LDAP с учетной записью вашего приложения, поиск
username
чтобы получить полное отличительное имя (dn) записи LDAP пользователя - Создайте новое соединение LDAP и попытайтесь выполнить привязку, используя dn & пароль пользователя
(Если вы знаете, как создать dn из имени пользователя, вы можете пропустить шаг 2, но обычно лучше сначала поискать - таким образом вы менее чувствительны к таким вещам, как изменения в структуре OU каталога LDAP)
Обычно вы выполняете поиск, используя значение имени пользователя, указанное в значениях uid или cn в дереве LDAP.
-Джим
Я думаю, что этот код поможет вам решить проблему аутентификации. Я ответил, чтобы решить проблему. Вы можете проверить этот вопрос http://bit.ly/TIJMte