Налаштування взаємодії з іншими системами у Control Plane
Налаштування взаємодії через адміністративну панель Control Plane доступне для версій реєстру 1.9.3 і вище. Для версій реєстру 1.9.2 та нижче налаштувати інтеграцію можливо на рівні регламенту реєстру у файлі bp-trembita/configuration.yml (зверніться до сторінки REST-конектор: налаштування регламенту). |
1. Загальний опис
Щоб мати змогу використовувати розроблений на Платформі інтеграційний REST-конектор до зовнішніх сервісів та отримувати інформацію від зовнішніх систем та реєстрів, необхідно попередньо виконати конфігурації на рівні екземпляра реєстру.
Для того, щоб налаштувати взаємодію із зовнішніми реєстрами та системами, необхідно створити конфігурацію у консолі Control Plane. Це дозволить розгорнути Service Entry
та відкрити доступ для трафіку за межі кластера Платформи, а також створити секрет для доступу до ресурсів зовнішньої системи.
|
Інтеграція зі сторонніми (3rd-party) системами потребує додаткової конфігурації на рівні регламенту, зокрема необхідно визначити перелік операцій та їх типів, які використовує реєстр через типове інтеграційне розширення-конектор Connect to external system (REST-конектор). Детальніше — див. на сторінці REST-конектор: налаштування регламенту. |
2. Налаштування зовнішньої інтеграції у Control Plane
- Налаштуйте зовнішню інтеграцію у Control Plane:
-
-
Увійдіть до консолі Control Plane як адміністратор реєстру.
-
Перейдіть до розділу Реєстри та відкрийте необхідний.
Налаштування взаємодії із зовнішніми системами можливе лише при редагуванні реєстру.
- Алгоритм наступний:
-
-
Спочатку необхідно створити реєстр.
-
Надалі адміністратор зможе налаштувати зовнішні взаємодії та взаємодію з ШБО "Трембіта".
За замовчуванням при розгортанні реєстру, створюється три не налаштовані точки для сервісів ШБО й одна для "Дії". -
Після застосування конфігурації, автоматично розгорнеться Service Entry та секрет авторизації сервісу.
-
-
Знайдіть секцію Налаштування взаємодії з іншими системами та натисніть + ДОДАТИ ЗОВНІШНЮ СИСТЕМУ.
-
У новому вікні налаштуйте інтеграцію із зовнішньою системою для подальшої взаємодії згідно з регламентом реєстру.
Мережеві політики доступу будуть створені автоматично. -
У полі
Назва зовнішньої системи
введіть назву системи, з якою необхідно налаштувати взаємодію. Наприклад,diia
.Назва не впливає на механізм інтеграції, але ви не зможете її відредагувати після застосування конфігурації реєстру.
-
У полі
Адреса зовнішньої системи
введіть базовий URL сервера, до якого необхідно під’єднатися. Наприклад,https://wallpapercave.com
.URL має починатися з
http://
абоhttps://
, що вказує на те, що зовнішній сервіс буде доступний через порти80
або443
відповідно.
Ці налаштування автоматично додаються до YAML-конфігурації Service Entry після її застосування (див. пункт нижче). -
Протокол інтеграції —
REST
. Наразі підтримується лише REST-інтеграція. -
Вкажіть тип автентифікації — оберіть
NO_AUTH
з випадного списку.
Цей метод дозволяє звертатися до відкритих ресурсів без перевірки облікових даних (імені користувача та пароля, токена авторизації тощо).Наразі підтримуються такі методи автентифікації:
NO_AUTH
-
Метод/тип аутентифікації, який не потребує жодних облікових даних або токенів аутентифікації для доступу до певного ресурсу або сервісу. Це означає, що будь-хто може отримати доступ до ресурсу або сервісу без будь-яких обмежень або перевірки його ідентичності.
AUTH_TOKEN
-
Скорочення від «токен автентифікації» — це фрагмент даних, який використовується для автентифікації користувача або системи для доступу до певного сервісу чи ресурсу. Токени автентифікації зазвичай використовують у вебдодатках, API та інших мережевих системах для забезпечення безпечного та ефективного доступу до ресурсів. Токени можуть приймати різні форми, наприклад випадкові рядки символів, зашифровані дані або навіть вебтокени JSON (JWT), які містять інформацію про користувача та термін дії.
BEARER
-
Bearer-автентифікація є методом автентифікації, який використовується в комунікації на основі
HTTP
. Вона полягає в тому, що запит містить токен безпеки, відомий як «Bearer-токен», у заголовку для аутентифікації запита.У цьому методі клієнт, який запитує доступ до захищеного ресурсу, включає токен доступу в заголовок
Authorization
запита, який зазвичай є довгим рядком символів, що представляє ідентичність та дозволи користувача. Сервер потім перевіряє правильність токена, і якщо він є дійсним, надає доступ до захищеного ресурсу.Bearer-токен може бути отриманий через окремий процес аутентифікації, такий як OAuth або OpenID Connect, і використовується в API для управління доступом до ресурсів. Оскільки Bearer-токен включається в заголовок запита, то може бути легко бути перехоплений. Тому важливо забезпечити безпечну його передачу, наприклад, за допомогою HTTPS-з’єднання.
BASIC
-
BASIC-автентифікація — це метод аутентифікації, який використовується в
HTTP
-протоколі для захисту вебресурсів від несанкціонованого доступу. Цей метод передбачає передачу імені користувача та пароля у вигляді незашифрованого тексту у заголовку HTTP-запита.У BASIC-автентифікації, сервер запитує ім’я користувача та пароль від клієнта, після чого перевіряє їх відповідність збереженим відомостям аутентифікації. Якщо ім’я користувача та пароль збігаються з відомостями аутентифікації, сервер надає доступ до захищеного ресурсу. Якщо ж дані не збігаються, сервер повертає код помилки (зазвичай це
401
).Більшість вебсерверів та додатків підтримують BASIC-автентифікацію. Однак, оскільки ім’я користувача та пароль передаються у відкритому вигляді, BASIC-автентифікація не є надійним методом аутентифікації. Тому важливо забезпечити захист з’єднання шифруванням, наприклад, за допомогою протоколу HTTPS.
AUTH_TOKEN+BEARER
-
Комбінований метод аутентифікації, що використовується для захисту доступу до API. Цей метод використовує два типи токенів: "токен доступу" (BEARER token) та "токен автентифікації" (
AUTH_TOKEN
). Використання цього методу передбачає двоетапну авторизацію з отриманням токена доступу (BEARER
) на основі токена автентифікації (AUTH_TOKEN
).Особливості кешування BEARER-токенів
Платформа забезпечує ефективне кешування токенів авторизації для взаємодії із зовнішніми системами, зокрема, за допомогою загального REST-конектора, що працює у сервісі
bpms
.Механізм передбачає, що токен, отриманий для взаємодії із зовнішньою системою, зберігається у кеші, що покращує продуктивність, уникаючи непотрібних запитів на аутентифікацію.
Час "життя" токена визначається за допомогою JWT-клейма
exp
(expire time), який міститься в авторизаційному токені. Це відповідає специфікації JWT, визначеній у RFC 7519.Після того, як вказані дата і час, визначені у клеймі
exp
пройшли, токен відхиляється системою, яка його перевіряє, і Платформа запитує новий токен.За відсутності у токені клейма
exp
, кешування не проводиться.
-
-
Натисніть Додати, щоб зберегти налаштування.
В результаті формується запит на внесення змін до конфігурації реєстру.
-
Відкрийте розділ Запити на оновлення та перегляньте сформований запит, натиснувши іконку перегляду — 👁.
Запропоновані зміни автоматично підтверджуються системою та зберігаються до конфігурації реєстру у файлі deploy-templates/values.yaml. -
У новому вікні ви можете переглянути, які саме параметри додано до конфігурації.
У вікні для порівняння можна зручно зіставити 2 версії змін: попередню (зліва) та нову (справа). У нашому прикладі ми бачимо наступну конфігурацію:
Приклад 1. Конфігурація deploy-templates/values.yaml. Налаштування взаємодії із зовнішньою системою через метод NO_AUTHexternal-systems: test-external-system: url: https://wallpapercave.com type: registry protocol: REST auth: type: NO_AUTH
Перегляньте налаштування інтеграції для обраної системи.
Ви можете відредагувати, або видалити налаштування, натиснувши на відповідні позначки🖉
та🗑
.В результаті запускається Jenkins-пайплайн
MASTER-Build-<registry-name>
, де<registry-name>
— назва реєстру. Він застосовує параметри заданої конфігурації. -
Зачекайте, доки виконається збірка коду. Це може зайняти до 15 хвилин.
Ви можете перевірити поточний статус та результат виконання за посиланням
CI
на інтерфейсі.
-
При успішному виконанні збірки, задана конфігурація буде застосована, і нова Service Entry буде створена у проєкті вашого реєстру. Перевірити результат можна в Openshift-консолі.
-
Виконайте додаткові конфігурації на рівні регламенту реєстру у файлі bp-trembita/configuration.yml.
Налаштування для інтеграції з іншою системою можуть виглядати так:
Приклад 2. Налаштування регламенту версії реєстру 1.9.3+ для інтеграції з іншою системоюexternal-systems: #вкажіть назву системи, з якою налаштовується інтеграція system-name: # Вкажіть типи дозволених операцій operations: get-operation: resource-path: "/get" method: "GET"
Для отримання деталей щодо конфігурації регламенту зверніться до сторінки REST-конектор: налаштування регламенту.
-
Налаштування інтеграції з "Дія"
Цей підрозділ надає приклад налаштування взаємодії із зовнішньою системою "Дія".
-
Увійдіть до консолі Control Plane як адміністратор реєстру.
-
Перейдіть до розділу Реєстри та відкрийте необхідний.
Налаштування взаємодії із зовнішніми системами можливе лише при редагуванні реєстру.
- Алгоритм наступний:
-
-
Спочатку необхідно створити реєстр.
-
Надалі адміністратор зможе налаштувати зовнішні взаємодії та взаємодію з ШБО "Трембіта".
За замовчуванням при розгортанні реєстру, створюється три не налаштовані точки для сервісів ШБО й одна для "Дії". -
Після застосування конфігурації, автоматично розгорнеться Service Entry та секрет авторизації сервісу.
-
-
Знайдіть секцію Налаштування взаємодії з іншими системами та навпроти
diia
натисніть позначку редагування🖉
. -
У новому вікні налаштуйте інтеграцію для подальшої взаємодії згідно з регламентом реєстру.
Мережеві політики доступу будуть створені автоматично. -
У полі
Назва зовнішньої системи
введіть назву системи, з якою необхідно налаштувати взаємодію. Наприклад,diia
.У цьому випадку назва встановлена за замовчуванням.
Назва не впливає на механізм інтеграції, але ви не зможете її відредагувати після застосування конфігурації реєстру.
-
У полі
Адреса зовнішньої системи
введіть базовий URL сервера, до якого необхідно під’єднатися. Наприклад,http://api2.diia.gov.ua
.URL має починатися з
http://
абоhttps://
, що вказує на те, що зовнішній сервіс буде доступний через порти80
або443
відповідно.
Ці налаштування автоматично додаються до YAML-конфігурації Service Entry після її застосування (див. пункт вище). -
Протокол інтеграції —
REST
. Наразі підтримується лише REST-інтеграція. -
Вкажіть тип автентифікації —
AUTH_TOKEN+BEARER
(встановлюється за замовчування для цього типу з’єднання).
Наразі підтримується лише цей тип автентифікації.Детальніше про методи автентифікації дивіться у секції Методи автентифікації. -
Вкажіть ендпоінт автентифікації партнера —
/api/v1/auth/partner
.Необхідно вказати абсолютну адресу ( https://example.ua/auth
) або relative path відносно адреси, вказаної у поліАдреса зовнішньої системи
(/auth
) -
Вкажіть json-path для отримання токена доступу —
$.token
. -
Вкажіть токен авторизації. Наприклад, він може виглядати так:
eyJhbGciOiJIUzI1NiIsInR5cCI6Ik
-
-
Натисніть Підтвердити, щоб зберегти налаштування.
В результаті формується запит на внесення змін до конфігурації реєстру та виконується пайплайн, що застосовує зміни до реєстру.
Подальші кроки розгортання однакові для усіх систем. Див. кроки 6-9 розділу Налаштування зовнішньої інтеграції у Control Plane. -
Виконайте додаткові конфігурації на рівні регламенту реєстру у файлі bp-trembita/configuration.yml.
Налаштування для інтеграції з "Дія" може виглядати так:
Приклад 3. Налаштування регламенту для інтеграції з "Дія" версії реєстру 1.9.3+external-systems: diia: operations: get-damaged-property: resource-path: "/api/v1/public-service/damaged-property/filtered" method: "GET" create-distribution: resource-path: "/api/v1/notification/distribution/push" method: "POST"
Для отримання деталей щодо конфігурації регламенту зверніться до сторінки REST-конектор: налаштування регламенту.