Skip to content

Latest commit

 

History

History
147 lines (96 loc) · 7.54 KB

keycloack_postman.rst

File metadata and controls

147 lines (96 loc) · 7.54 KB

Настройки аутентификации для работы с 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. Выбрать необходимый реалм.
_static/keycloack_postman/Keycloack_1.png
  1. После перехода в реалм выбрать вкладку :guilabel:`clients`. Как видно на скриншоте, клиент service_qa уже создан. Пример создания будет на пункт ниже, но само конфигурирование будет показано на уже существующем service_qa.
_static/keycloack_postman/Keycloack_2.png
  1. Нажать кнопку :guilabel:`Create`
_static/keycloack_postman/Keycloack_3.png
  1. На появившемся окне заполнить только Client ID, сохранить его куда-нибудь и нажать :guilabel:`Save`
_static/keycloack_postman/Keycloack_4.png
  1. Откроется окно редактирования клиента. Для примера был создан клиент с Client ID test
_static/keycloack_postman/Keycloack_5.png
  1. Заполнить вкладку :guilabel:`Settings` клиента согласно скриншоту ниже

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

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

_static/keycloack_postman/Keycloack_6.png

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

_static/keycloack_postman/Keycloack_7.png

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

  1. Перейти в соответствующий реалм ecos. Открыть пункт меню “Пользователи”, для добавления нового пользователя нажать кнопку :guilabel:`+`:
_static/keycloack_postman/Keycloack_8.png
  1. Заполнить форму.

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

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

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

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

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

  1. Перейти на вкладку авторизации и выбрать тип OAuth 2.0.
_static/keycloack_postman/Postman_1.png
  1. В разделе :guilabel:`Current Token` указать префикс Bearer.
_static/keycloack_postman/Postman_2.png
  1. Далее в разделе :guilabel:`Configure New Token` указать тип выдачи прав Client Credentials и URL откуда запрашивать токен авторизации.
_static/keycloack_postman/Postman_3.png
  1. Указать Client ID и Client Secret. Задать имя токена, имя может быть любым.
_static/keycloack_postman/Postman_4.png

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

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

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