SPRINGBOOT-LDAP: как искать и заполнять сведения о полномочиях / ролях для пользователя из нескольких (ou) групп? - PullRequest
0 голосов
/ 17 января 2019

Я работаю над приложением 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.

...