KeyCloak и Spring Security, как частично ограничить данные - PullRequest
0 голосов
/ 03 февраля 2020

У меня есть следующий вариант использования:

Пользователи имеют общие роли, такие как:

  • devteam

, что даст им доступ к нескольким функциям в backend.

Но кроме того, они также имеют нефиксированный набор ролей, которые могут быть добавлены во время. Что-то вроде

  • devteam-europe (составная роль для роли devteam)
  • devteam-asia (составная роль для роли devteam) et c.

Теперь я хочу, чтобы бэкэнд-функции вели себя следующим образом: функция доступа, если роль «devteam»: это работает:)

Но в базовых запросах sql я хочу ограничить набор результатов в зависимости от других ролей. Таким образом, devteam-europe получит другие результаты, как devteam-asia.

Большая проблема в том, что в моем приложении у каждой команды есть UUID, а в KeyCloak роль имеет говорящее имя. Поэтому мне нужно как-то сопоставить

devteam-europe с моим внутренним UUID!

Я мог бы добавить атрибуты или свойства к роли в KeyCloak, но они, похоже, недоступны в JWT .

В моем реальном проекте это приложение с несколькими арендаторами. Есть ли у вас какие-либо идеи о том, как выполнить sh это?

Cheers Maik

1 Ответ

0 голосов
/ 03 февраля 2020

Я мог бы добавить атрибуты или свойства к роли в KeyCloak, но они не доступны в JWT.

В соответствующем клиенте вы должны определить токен Mapper, который сообщит Keycloak, какой источник (в вашем атрибуте или свойстве case) будет сопоставлен с какой целью (key => value) в вашем JWT.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...