Настройки аутентификации для работы с Records API из внешних систем
В статье описана последовательность настроек ECOS для обеспечения корректной отправки http-запросов Records API. На примере Postman описана аутентификация в ECOS через OAuth 2.0 и отправка запросов.
Получение и работа с Client ID и Client Secret в Keycloak
Для получения токена для отправки запросов необходимо выполнить следующую последовательность действий:
В keycloak создать клиента, из которого будет взят Client ID и Client Secret, которые будут использованы для получения bearer-токена.
Cоздать пользователя в ECOS по паттерну
service-account-%имя созданного клиента%
(знак % указывает, что переменная шаблонная. В самом имени указывать их не нужно).
Создание клиента в Keycloak
1. Зайти в админскую консоль keycloak.
URL для доступа: %host%/auth/admin/master/console/
Выбрать необходимый реалм.
После перехода в реалм выбрать вкладку clients. Как видно на скриншоте, клиент service_qa уже создан. Пример создания будет на пункт ниже, но само конфигурирование будет показано на уже существующем service_qa.
Нажать кнопку Create
На появившемся окне заполнить только Client ID, сохранить его куда-нибудь и нажать Save
Откроется окно редактирования клиента. Для примера был создан клиент с Client ID test
Заполнить вкладку Settings клиента согласно скриншоту ниже
Access Type: confidential Service Account Enabled: true Valid Redirect URLs: Указывать URL’ы, которые нужны для использования. Для тестов можно просто указать * (На продуктивных средах так делать крайне не рекомендуется!)
В самом низу страницы нажать Save.
8. Открыть вкладку Credentials, найти поле Secret. Это и есть Client Secret. Сохранить его себе туда же, где был сохранен Client ID в п.5. В случае компроментирования, или любой другой необходимости, его можно перегенерировать, используя кнопку Regenerate Secret.
Cоздание пользователя в ECOS
Перейти в соответствующий реалм ecos. Открыть пункт меню “Пользователи”, для добавления нового пользователя нажать кнопку +:
Заполнить форму.
Заполнить поле “Системное Имя” по паттерну service-account-%имя созданного клиента%
. Остальные поля можно не заполнять, так как пользователь сервисный и заходить под ним никто не будет.
Теперь можно совершать запросы к системе через gateway.
Отправка запросов в ECOS
При работе с системой ECOS используется авторизация OAuth 2.0. Для отправки запросов ее также нужно настроить в Postman, SoapUI или другом инструменте тестирования, который вы используете.
Рассмотрим настройку на примере Postman.
Перейти на вкладку авторизации и выбрать тип OAuth 2.0.
В разделе Current Token указать префикс Bearer.
Далее в разделе Configure New Token указать тип выдачи прав Client Credentials и URL откуда запрашивать токен авторизации.
Указать Client ID и Client Secret. Задать имя токена, имя может быть любым.
5. В настройке Client Authentication установить значение Send as Basic Auth header для отправки токена в заголовке. Попробовать получить токен и указать и использовать его в запросе, в результате значение токена подставится в раздел Current Token.
Если тело запроса заполнено, то можно выполнять основной запрос на стенд. Срок действия токена можно посмотреть при его получении.
В дальнейшей работе по истечении срока действия токена его нужно обновить, повторно нажав Get New Access Token → Use Token.