Я настроил Gravitee APIM 3x (шлюз, rest-api, консоль и портал).
Это работает нормально. При попытке заменить аутентификацию памяти аутентификацией LDAP (FreeIPA) я могу заставить службу регистрировать пользователей, но им не дается роль.
Причина этого в том, что он использует полное DN пользователя в поле memberUid, в котором есть только имя пользователя.
Комментарий от @abbra заставил меня осознать, что я забыл, как организованы мои группы. У нас есть набор базовых групп, назовем их ролями, эти роли являются членами разных групп. Итак, при поиске поля участника в cn=groups,cn=accounts,dc=somedomain,dc=com
для групп Gravitee это будет относиться к другой группе, которая содержит член
поля с полным пользователем дн
.
Итак, теперь возникает вопрос, как я могу сделать групповой поиск рекурсивным в Gravitee? Возможно ли это, или мне нужно вместо этого явно добавлять каждого члена в группу?
Как я могу решить эту проблему? Я оставляю исходный вопрос зачеркнутым.
04 февраля 16:27:46 somehost.somedomain.com gravitee[22030]: 16:27:46.646 [gravitee-listener-44] DEBUG o.s.s.l.u.DefaultLdapAuthoritiesPopulator — Поиск ролей для пользователя 'my_user', DN = 'uid=my_user,cn =users,cn=accounts,dc=somedomain,dc=com', с фильтром (&(objectClass=posixGroup)(memberUid={0})) в базе поиска 'cn=groups,cn=compat'
04 февраля 16:27:46 somehost.somedomain.com gravitee [22030]: 16:27:46.647 [gravitee-listener-44] DEBUG o.s.sl.SpringSecurityLdapTemplate — использование фильтра: (& (objectClass = posixGroup) (memberUid = uid = my_user, cn=users,cn=accounts,dc=somedomain,dc=com))
04 февраля 16:27:46 somehost.somedomain.com gravitee[22030]: 16:27:46.713 [gravitee-listener-44] DEBUG o.s.s.l.u.DefaultLdapAuthoritiesPopulator - Роли из поиска: []