Я использую Keycloak в качестве Identity Broker. У меня есть несколько провайдеров идентификационных данных, подключенных для предоставления идентификационной информации. Каждый из этих IdP имеет свой собственный способ передачи представления ролей, которые должны быть назначены пользователю.
Например:
IdP A
: отправляет заявку под названием «роль» со значениями «1», «2» или «3»
IdP B
: отправляет заявку под названием «группа» со значениями «view», «edit», «admin»
В случае IdP A
я хочу, чтобы отображение role=1
отображалось на роль с именем «Просмотрщик», role=2
для сопоставления с ролью, называемой «Редактор», и role=3
для сопоставления с роль называется "Администратор".
В случае IdP B
я хочу сопоставить group=view
для сопоставления с «Средством просмотра», group=edit
для сопоставления с «Редактором» и group=admin
для сопоставления с «Администратором».
Я пытался создать сопоставители "Требование к роли", но, похоже, это работает не так, как я хотел бы надеяться: если я создаю один для каждого значения требования (так в случае IdP B
, один для group=view
, group=edit
, group=admin
), срабатывает только один из них.
Как мне создать Mapper для IdP, который может настроить роль Keycloak на основе комбинации (имя претензии, стоимость претензии)?