Keycloak добавляет дополнительные утверждения из базы данных/внешнего источника
Как зарегистрировать собственный протокол ProtocolMapper в Keycloak?
Вот краткий обзор их решений, которые могут помочь другим, если предоставить им более подробную информацию.
Ожидается процесс по первой ссылке
- Пользователь входит в систему
- Вызывается мой пользовательский преобразователь протоколов , где я перезаписываю метод TransformAccessToken
- Здесь я регистрирую клиента, на котором находится сопоставитель протоколов, в keycloak как службу. Здесь не забудьте использовать другой идентификатор клиента
вместо того, для которого вы создаете преобразователь протокола, в противном случае вы введете
бесконечную рекурсию. - Я получаю токен доступа в сопоставитель протокола и вызываю остальную конечную точку моего приложения, чтобы получить дополнительные утверждения, которые
защищены. - Получить информацию, возвращаемую конечной точкой и добавьте его в качестве дополнительных претензий.
Шаги для достижения этой цели из второй ссылки
Реализуйте интерфейс ProtocolMapper и добавьте файл
"META-INF/ Services/org.keycloak.protocol.ProtocolMapper", содержащий ссылку на класс.
На этом этапе Keycloak распознает новую реализацию. И вы
сможете настроить его через консоль администратора.
Чтобы добавить некоторые данные в токен, добавьте следующие интерфейсы
org.keycloak.protocol.oidc.mappers.OIDCAccessTokenMapper
и реализуйте методы в соответствии с интерфейсом< /p>
Затем добавьте файл «META-INF/jboss-deployment-structure.xml» с
следующим содержимым
Код: Выделить всё
при каждом запросе к URL
http://:/auth/realms /testrealm/protocol/openid-connect/token
После прочтения у меня возникло несколько вопросов:
- Как «реализовать ProtocolMapper»
- Куда добавить файлы, упомянутые ранее? (не вижу каталога META-INF/ в папке установки Keycloak)
- Как и где «добавлять следующие интерфейсы»
- Как выглядит пользовательский TransformAccessToken()
Дайте мне знать, если я пропущу обобщение своих ответов.
Изменить:
Я начинаю награду с надеждой, что кто-нибудь сможет дать мне подробные инструкции по добавлению дополнительных утверждений из базы данных в Keycloak 3.4.3 (достаточно подробно для разработчиков, не являющихся Java)
Редактировать 2
Описанный здесь метод может помочь, но не содержит подробностей.
Keycloak создает собственный преобразователь поставщика удостоверений
Подробнее здесь: https://stackoverflow.com/questions/530 ... protocol-m