Ldap аутентификация

0
04 янв 2018 08:54
есть задача прикрутить LDAP аутенификацию на Spring Boot сервер.
добавил в Spring Security нужные классы.
auth
            .ldapAuthentication()
            .userSearchFilter(_environment.getProperty("ldap.filter", String.class , ""))
            .userDnPatterns("uid={0},ou=Test Acounts")
            .userSearchBase(_environment.getProperty("ldap.base", String.class , ""))

получил имя пользователя и пароль.

пытаюсь залогиниться - получаю ошибку.
Quote:
javax.naming.NamingException: [LDAP: error code 1 - 000004DC: LdapErr: DSID-0C090752, comment: In order to perform this operation a successful bind must be completed on the connection., data 0, v2580

проверяю юзера :
ldapsearch -x -D "test_user" -b "ou=Test Acounts,DC=newmanage,DC=local" -h ldapauth.ourclient.com -w "password"  sAMAccountName=test_user

ldapsearch -x -D "[email protected]" -b "ou=Test Acounts,DC=newmanage,DC=local" -h ldapauth.ourclient.com -w "password"  sAMAccountName=test_user

в обоих случаях получаю
Quote:
# search result
search: 2
result: 0 Success

то есть пользователь есть и пароль нормальный.
когда пытаюсь подключиться с DN стандартного вида
ldapsearch -x -D "uid=test_user,ou=Test Acounts,DC=newmanage,DC=local" ...

то получаю ошибку
Quote:
ldap_bind: Invalid credentials (49)
additional info: 80090308: LdapErr: DSID-0C0903D9, comment: AcceptSecurityContext error, data 52e, v2580

попытался подключится к открытомц тестовому LDAP серверу-
ldapsearch -W -h ldap.forumsys.com -D "cn=read-only-admin" -b "dc=example,dc=com" "ou=mathematicians"

подключается нормально.
вставил в application.properties данные этого сервера - подключается нормально.
на той стороне говорят, что не знают в чем дело.

попробовал подключится с помощью apache directory ldap - получаю ошибки
на пользователя test_user и [email protected]
Quote:
ERR_04202 A value is missing on some RDN

на пользователя "uid=test_user..." и "cn=test_user..."
Quote:
80090308: LdapErr: DSID-0C0903D9, comment: AcceptSecurityContext error, data 52e, v2580


может есть какие то мысли - что я не учел? какие вопросы задать на ту сторону?

Ответов: 1

0
09 янв 2018 01:36
Подозреваю что Spring Domain parser не маппит uid. Можно продебагить Spring class и убедиться в этом.
Ещё можно включить Spring logger Debug package level и посмотреть что Spring делает с этим выражением и как отсылает в LDAP
Модераторы: Нет
Сейчас эту тему просматривают: Нет