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