Правильный способ обогащения токена Keycloak с помощью внешнего сервиса - PullRequest
0 голосов
/ 09 января 2019

Каков правильный способ расширения Keycloak - например, через интерфейс Service Provider Interface (SPI) - для обогащения выпущенного токена JWT информацией, полученной из другой службы, но без передачи проверки учетных данных пользователя другой службе?

1 Ответ

0 голосов
/ 12 января 2019

Вы создаете - что документация Keycloak называется - Protocol Mapper . Это различные типы, которые вы можете узнать, зайдя в меню Clients > your_client > Mappers и попытавшись создать его. Кроме того, вы должны увидеть, что вы можете выбрать, какой токен JWT вы хотите добавить, идентификационный токен или токен доступа. В вашем случае вам нужно настроить логику картографа так, чтобы она извлекала информацию из другого сервиса. Есть два типа картографов, которые позволяют это (по крайней мере, насколько я знаю):

  1. Средство сопоставления сценариев: позволяет кодировать настраиваемое сопоставление в JavaScript, что позволяет реализовать вызов службы и добавить результат к утверждениям токена в JavaScript. См. пример для Stackoverflow и исходный код картографа для получения дополнительной информации. Это имеет некоторые ограничения, например, не поддерживает многозначные требования должным образом .

  2. Реализовать маппер непосредственно в Java: полная гибкость, но больше работы (реализовать интерфейс Java AbstractOIDCProtocolMapper). См. этот пользовательский Keycloak Protocol Mapper для членства в группе , например.

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