Настройки аутентификации для работы с Records API из внешних систем

В статье описана последовательность настроек ECOS для обеспечения корректной отправки http-запросов Records API. На примере Postman описана аутентификация в ECOS через OAuth 2.0 и отправка запросов.

Получение и работа с Client ID и Client Secret в Keycloak

Для получения токена для отправки запросов необходимо выполнить следующую последовательность действий:

  1. В keycloak создать клиента, из которого будет взят Client ID и Client Secret, которые будут использованы для получения bearer-токена.

  2. Cоздать пользователя в ECOS по паттерну service-account-%имя созданного клиента% (знак % указывает, что переменная шаблонная. В самом имени указывать их не нужно).

Создание клиента в Keycloak

1. Зайти в админскую консоль keycloak. URL для доступа: %host%/auth/admin/master/console/

  1. Выбрать необходимый реалм.

../_images/Keycloack_1.png
  1. После перехода в реалм выбрать вкладку clients. Как видно на скриншоте, клиент service_qa уже создан. Пример создания будет на пункт ниже, но само конфигурирование будет показано на уже существующем service_qa.

../_images/Keycloack_2.png
  1. Нажать кнопку Create

../_images/Keycloack_3.png
  1. На появившемся окне заполнить только Client ID, сохранить его куда-нибудь и нажать Save

../_images/Keycloack_4.png
  1. Откроется окно редактирования клиента. Для примера был создан клиент с Client ID test

../_images/Keycloack_5.png
  1. Заполнить вкладку Settings клиента согласно скриншоту ниже

Access Type: confidential Service Account Enabled: true Valid Redirect URLs: Указывать URL’ы, которые нужны для использования. Для тестов можно просто указать * (На продуктивных средах так делать крайне не рекомендуется!)

В самом низу страницы нажать Save.

../_images/Keycloack_6.png

8. Открыть вкладку Credentials, найти поле Secret. Это и есть Client Secret. Сохранить его себе туда же, где был сохранен Client ID в п.5. В случае компроментирования, или любой другой необходимости, его можно перегенерировать, используя кнопку Regenerate Secret.

../_images/Keycloack_7.png

Cоздание пользователя в ECOS

  1. Перейти в соответствующий реалм ecos. Открыть пункт меню “Пользователи”, для добавления нового пользователя нажать кнопку +:

../_images/Keycloack_8.png
  1. Заполнить форму.

Заполнить поле “Системное Имя” по паттерну service-account-%имя созданного клиента%. Остальные поля можно не заполнять, так как пользователь сервисный и заходить под ним никто не будет.

../_images/Keycloack_9.png
  1. Теперь можно совершать запросы к системе через gateway.

Отправка запросов в ECOS

При работе с системой ECOS используется авторизация OAuth 2.0. Для отправки запросов ее также нужно настроить в Postman, SoapUI или другом инструменте тестирования, который вы используете.

Рассмотрим настройку на примере Postman.

  1. Перейти на вкладку авторизации и выбрать тип OAuth 2.0.

../_images/Postman_1.png
  1. В разделе Current Token указать префикс Bearer.

../_images/Postman_2.png
  1. Далее в разделе Configure New Token указать тип выдачи прав Client Credentials и URL откуда запрашивать токен авторизации.

../_images/Postman_3.png
  1. Указать Client ID и Client Secret. Задать имя токена, имя может быть любым.

../_images/Postman_4.png

5. В настройке Client Authentication установить значение Send as Basic Auth header для отправки токена в заголовке. Попробовать получить токен и указать и использовать его в запросе, в результате значение токена подставится в раздел Current Token.

../_images/Postman_5.png ../_images/Postman_6.png ../_images/Postman_7.png
  1. Если тело запроса заполнено, то можно выполнять основной запрос на стенд. Срок действия токена можно посмотреть при его получении.

../_images/Postman_8.png

В дальнейшей работе по истечении срока действия токена его нужно обновить, повторно нажав Get New Access Token → Use Token.