Я работаю над приложением springboot для службы аутентификации / авторизации, использующей LDAP. Структура каталогов LDAP, как показано ниже.
dc=mycompany,dc=com
ou=org1
o=finance
ou=userroles
cn=admin
uniqueMember: ...
cn=role2
o=engineering
ou=userroles
cn=role1
cn=role2
cn=...
ou=org2
ou=finance
ou=userroles
cn=role1
cn=role2
.....
ou=global
ou=users
uid=admin,..
uid=user2,..
Используя конфигурацию аутентификации безопасности Springboot, для получения роли, связанной с пользователем, необходимо указать groupSearchBase с точным путем (как показано ниже)
@Override
public void configure(AuthenticationManagerBuilder auth) throws Exception {
auth
.ldapAuthentication()
.userSearchFilter("(uid={0})")
.userSearchBase("ou=users,ou=global")
.groupSearchFilter("(uniqueMember={0})")
.groupSearchBase("ou=userroles,o=finance,ou=org1")
.groupRoleAttribute("cn")
Как получить точную информацию о роли пользователя без указания точного пути (ou = org1, org2, ..) в конфигурации groupSearchBase.