Конфигурация клиента для доступа к API разблокировки пользователя
В актуальных версиях Keycloak (версия 20 и выше) Admin API доступен для непубличных клиентов, для которых включена опция Service accounts roles в Keycloak, позволяющая настраивать роли для сервисных аккаунтов.
Ниже приведены примеры создания такого клиента посредством пользовательского интерфейса Keycloak.
-
Выберите область безопасности, для которой вы хотите создать клиента.
-
В главном меню выберите пункт Clients.
-
Нажмите на кнопку Create client — система перенаправит вас на форму создания клиента General Settings (Шаг 1. Основные настройки).
-
На форме Create client заполните обязательное поле Client ID — введите произвольное имя, которое в дальнейшем будет использоваться для идентификации клиента.
-
Нажмите на кнопку Next — система сохранит введенные данные и перенаправит вас на форму создания клиента Capability config (Шаг 2. Конфигурационные возможности).
-
На форме Capability config выполните настройки:
-
В поле Client authentication установите значение ON, которое указывает, что для типа клиента OIDC установлен конфиденциальный тип доступа.
-
Активируйте опцию Service accounts roles, которая позволяет аутентифицировать этого клиента в Keycloak и получать токен доступа, предназначенный для него.
-
-
Нажмите на кнопку Next — система сохранит введенные данные и перенаправит вас на форму настройки параметров аутентификации клиента Login settings (Шаг 3. Настройки параметров аутентификации).
-
На форме Login settings выполните необходимые настройки и нажмите на кнопку Save — система сохранит данные созданного клиента. Кнопка Cancel отменяет ваши действия.
-
Для созданного клиента укажите роли для просмотра и управления пользователями области безопасности (realm), для этого перейдите на вкладку Service accounts roles и нажмите на кнопку Assign role — система перенаправит вас на форму Assign roles to <имя клиента>.
-
На форме Assign roles to <имя клиента> выберите из выпадающего списка значение Filter by client.
-
Активируйте чекбокс напротив роли клиента realm-management — manage-users.
-
Активируйте чекбокс напротив роли клиента realm-management — view-users.
-
Нажмите на кнопку Assign, чтобы назначить выбранные роли.
-
Назначенные роли отобразятся на форме настроечных параметров клиента. В дальнейшем такого клиента можно использовать для разблокировки пользователей через Admin REST API.
|
Помимо использования непубличных клиентов, как описано выше, Keycloak предоставляет возможность управлять пользователями через учетную запись администратора области безопасности (realm) master. Используя учетную запись администратора, можно управлять пользователями любой области безопасности (предполагается использование клиента admin-cli). В таком случае запрос токена будет выглядеть следующим образом: curl --location 'http://{kc-host}/realms/{realm}/protocol/openid-connect/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'username=admin' \
--data-urlencode 'password=admin' \
--data-urlencode 'client_id=admin-cli' \
--data-urlencode 'grant_type=password'
|