LDAP реферральная база подготовки - PullRequest
0 голосов
/ 17 мая 2018

Я пытаюсь заставить Spring Security следовать рекомендациям с Active Directory. Кажется, все настройки работают нормально, и я использую dc=example,dc=local в качестве базы

https://github.com/spring-projects/spring-ldap/blob/master/core/src/main/java/org/springframework/ldap/core/support/AbstractContextSource.java#L305

но при попытке войти к указанному пользователю, кажется, добавляется вдвое больше базы:

o.s.s.l.a.BindAuthenticator              : Attempting to bind as cn=Euro Dude,cn=Users,dc=eu,dc=example,dc=local,dc=example,dc=local

и он, очевидно, не работает, так как не может найти пользователя. Если, блокируя с помощью отладчика, я удаляю лишние dc=example,dc=local, он хорошо регистрируется.

Глядя на код

https://github.com/spring-projects/spring-security/blob/master/ldap/src/main/java/org/springframework/security/ldap/authentication/BindAuthenticator.java#L115-L118

Я видел, что он добавляет базовый путь LDAP к отличительному имени

DistinguishedName userDn = new DistinguishedName(userDnStr);
DistinguishedName fullDn = new DistinguishedName(userDn);
fullDn.prepend(ctxSource.getBaseLdapPath());`

Чтение документации, которую я нашел https://docs.oracle.com/javase/jndi/tutorial/ldap/referral/jndi.html

Windows Active Directory: поскольку Active Directory не поддерживает Управлять рефералом, ни один из примеров в этом уроке не будет работать против Active Directory.

Значит ли это, что это вообще не должно работать?

Почему база добавляется к полному отличительному имени? Обратите внимание, что я не предоставляю DN пользователя, но только sAMAccountName и DN берется автоматически.

o.s.l.c.support.DefaultDirObjectFactory  : Received name 'ldap://eu.example.local:389/CN=Euro%20Dude,CN=Users,DC=eu,DC=example,DC=local' contains protocol delimiter; indicating a referral.Stripping protocol and address info to enable construction of a proper LdapName
o.s.l.c.support.DefaultDirObjectFactory  : Resulting name after removal of referral information: 'CN=Euro Dude,CN=Users,DC=eu,DC=example,DC=local'
o.s.s.ldap.SpringSecurityLdapTemplate    : Found DN: CN=Euro Dude,CN=Users,DC=eu,DC=example,DC=local
o.s.s.l.a.BindAuthenticator              : Attempting to bind as cn=Euro Dude,cn=Users,dc=eu,dc=example,dc=local,dc=example,dc=local
s.s.l.DefaultSpringSecurityContextSource : Removing pooling flag for user cn=Euro Dude,cn=Users,dc=eu,dc=example,dc=local,dc=example,dc=local
o.s.s.l.a.BindAuthenticator              : Failed to bind as CN=Euro Dude,CN=Users,DC=eu,DC=example,DC=local: org.springframework.ldap.AuthenticationException: [LDAP: error code 49 - 80090308: LdapErr: DSID-0C09042F, comment: AcceptSecurityContext error, data 52e, v2580
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...