Клиент, который может управлять пользователями в Keycloak 23+

Клиент, который может управлять пользователями в Keycloak 23+

Мне нужно авторизовать мое приложение (далее именуемое «Logic») для управления пользователями области Keycloak. «Logic» уже аутентифицируется в этой области с типом предоставления доступа «Учетные данные клиента», поэтому код уже работает.

Теперь в консоли администрирования Keycloak мне нужно добавить правильную роль для моего клиента, чтобы «Logic» имел право вызывать любую конечную точку API, предоставляемую Keycloak для управления пользователями области.

В списке клиентов области есть клиент с именем realm-management, который Keycloak предоставляет по умолчанию для каждой области. Этот клиент может управлять всей областью, а не только ее пользователями, и для этого у него есть список ролей клиентов. manage-users— одна из ролей в этом списке, и это роль, которую мне нужно назначить моему другому клиенту (которому я дал имя logicв Keycloak). Другими словами, мое приложение «Logic» использует идентификатор клиента keycloak logicдля своей аутентификации, и мне нужно добавить manage-usersроль клиенту logic.

Проблема в том, что в моих logicнастройках ролей клиента ( ) те же самые роли, перечисленные в разделе realm-managementклиент, вообще не перечислены, а в списке есть только uma_protectionроль:

В списке есть только uma_protection

Если я искал "manage-users", введя его в поле поиска, он не отображался. Между тем, если я нажимаю на эту роль в списке ролей клиента realm-management, он показывает, что нетпользователиесть эта роль и это позволяет мне добавить рольпользователи, но не для того, чтобыклиенты, даже если эта роль фактически указана вклиент( realm-management).

Создание новой роли в моем logicклиенте, с тем же именем manage-users, возможно, но я не уверен, что это правильный путь. Я имею в виду, зачем мне дублировать существующую роль? Это попахивает чем-то неправильным.

Можете ли вы подсказать мне правильный способ добавления manage-usersроли вклиентв Keycloak 23?

решение1

я, наконецполучил ответот члена официального сообщества поддержки Keycloak, и я сообщаю об этом здесь на всякий случай, если кто-то найдет мой вопрос здесь.

dasniko написал:

Если ваш клиент уже использует поток клиентских учетных данных, у него включены «сервисные учетные записи». Вам нужноназначатьроль realm-management.manage-usersучетной записи службы на вкладке соотв. вашего клиента. Таким образом, соответствующий пользователь учетной записи службы, который отвечает в Keycloak за работу потока учетных данных клиента, получит надлежащую роль и сможет управлять вашими пользователями.

Роли можно найти, выбрав фильтр «Фильтровать по клиентам» вместо «Фильтровать по ролям области».

Связанный контент