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

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

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

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

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

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

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

  1. Зайти в админскую консоль keycloak.

URL для доступа: %host%/auth/admin/master/console/

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

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

  1. Нажать кнопку Create

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

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

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

  • Access Type: confidential

  • Service Account Enabled: true

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

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

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

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

  1. Перейти в соответствующий реалм Citeck. В рабочем пространстве «Раздел администратора» открыть пункт меню Пользователи, для добавления нового пользователя нажать кнопку +:

  1. Заполнить форму.

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

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

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

При работе с системой Citeck используется авторизация OAuth 2.0.

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

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

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

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

  1. Далее в разделе Configure New Token указать тип выдачи прав Client Credentials. В поле Access Token URL указать URL, откуда запрашивать токен авторизации, вида https://<URL сервера>/ecos-idp/auth/…

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

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

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

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

См. Примеры использования Records API для внешних систем