Я хотел бы добавить выделенные области для клиента, чтобы он мог получать доступ к информации от других клиентов. Включение полного доступа работает, но дает слишком много разрешений.
Области уже созданы с соответствующими клиентами. Это «всего лишь» вопрос назначения области действия от клиента a к клиенту b. У меня есть список имен и идентификаторов клиентов, доступных локально. Как я могу эффективно назначать их через kcadm.sh?
Я уже пробовал с открытой вкладкой сети, но не мог понять, какова логика назначения областей.
Например, есть
Как воспроизвести на Keycloak (X) 20.0.3
Это то, чего я хочу добиться с помощью kcadm.sh, так как клиенты добавляются динамически. Вы даже не можете экспортировать клиент из Действия-> Экспорт и снова импортировать его из пользовательского интерфейса. Каждая область теряется при повторном импорте.
Чтобы назначить роль от клиента A клиенту B по минимальной цене, вам потребуется следующий вызов Rest Full API:
/admin/realms/ <REALM NAME> /clients/< ID OF THE CLIENT >/scope-mappings/clients/< ID OF THE CLIENT where the role comes from>
так что в вашем случае /admin/realms/ <REALM NAME> /clients/< ID OF CLIENT B >/scope-mappings/clients/ < ID OF CLIENT A>
полезная нагрузка должна быть [{"id":"<ID OF ROLE>","name":"<ROLE NAME>"}]
Вам понадобится вызов, чтобы получить идентификатор клиента, для которого вы можете вызвать:
GET /{realm}/clients
с clientId
в качестве параметра запроса.
И тогда вам понадобится вызов для получения идентификатора роли, для этого вы можете использовать:
GET /{realm}/clients/{id}/roles/{role-name}
id - это идентификатор клиента.