Обмеження доступу на рівні IP до SOAP-роутів ШБО "Трембіта"
Функціональність доступна для версії реєстру 1.9.5 та вище. |
1. Загальний опис
Платформа надає можливість регулювати доступ до SOAP API-інтерфейсів реєстру через адміністративну панель Control Plane.
SOAP-інтерфейси використовуються для вхідної взаємодії із зовнішніми системами через Шлюз Безпечного Обміну (ШБО) "Трембіта", коли зовнішня система хоче отримати дані з вашого реєстру.
На рівні інфраструктури Платформи такі SOAP-інтерфейси називають роутами (routes). Кожен роут формується з певного хоста (host
) та має свій унікальний шлях (path
), що веде до відповідного API-сервісу, до якого й обмежується доступ.
- Система передбачає два роути для взаємодії з SOAP API реєстру:
-
-
bp-webservice-gateway-trembita
— API-шлюз для викликів бізнес-процесів зовнішніми системами. Направляє трафік до сервісуbp-webservice-gateway
, який імплементує точки (ендпоінти) інтеграційної взаємодії із бізнес-процесами (наприклад,/startBp
для запуску бізнес-процесу у цільовому реєстрі та отриманні результату виконання такого процесу). -
registry-soap-api
— API-шлюз для читання даних реєстру зовнішніми системами. Направляє трафік до однойменного сервісуregistry-soap-api
, який є імплементує точки (ендпоінти) інтеграційної взаємодії із Фабрикою даних реєстру.
Зображення 1. Верхньорівнева діаграма взаємодії ШБО "Трембіта" та SOAP API-сервісів реєстру -
Щоб забезпечити контроль і безпеку використання SOAP API-інтерфейсів, адміністративна панель Control Plane надає можливість адміністратору обмежувати комунікацію лише для конкретного переліку IP-адрес.
Технічний адміністратор реєстру відповідає за перевірку відповідності вказаних IP-адрес реальним адресам "Трембіти" й за коректність їх налаштувань. Якщо жодна IP-адреса не вказана у списку ipList
, то маршрут до SOAP API не створюється, і доступ до API відсутній.
Після внесення переліку дозволених IP-адрес, зміни потрапляють до конфігурації реєстру deploy-templates/values.yaml, звідки потрапляють до пакетного менеджера Helm, який додає їх до анотацій відповідного роута, таким чином дозволяючи доступ до SOAP API.
2. Налаштування доступу
2.1. Додавання IP-адрес у Control Plane
-
Увійдіть до консолі Control Plane як адміністратор реєстру.
-
Перейдіть до розділу Реєстри та оберіть необхідний.
-
Натисніть кнопку
Редагувати
, що розташована у правому верхньому куті.Налаштування доступу до SOAP API доступне також при створенні реєстру, та не є обовʼязковим. -
Перейдіть до секції ШБО Трембіта. Тут можна вказати дозволи на доступ до SOAP API реєстру через ШБО "Трембіта". Активуйте перемикач, щоб увімкнути доступ.
За замовчуванням доступ вимкнено для нових реєстрів. -
У полі IP-адреси ШБО Трембіта додайте нову IP-адресу ШБО "Трембіта", з якої буде дозволено доступ до хосту, на якому розгортатимуться роути SOAP API.
-
Натисніть Підтвердити та повторіть дію для кожної такої IP-адреси.
-
Допустимі символи:
"0-9"
,"."
Наприклад:127.0.0.1
. -
Необхідно вказувати лише IP-адресу, без маски.
-
Дозволено введення лише IP-адрес, а не підмереж (див. детальніше — CIDR).
-
Кількість IP-адрес обмежена 10-ма.
-
Якщо перелік
ipList
не містить жодної IP-адреси, доступ до SOAP API є відсутнім (роут не створюється).
-
-
Натисніть Підтвердити, щоб зберегти зміни до конфігурації.
У результаті система формує запит на оновлення зі статусом
Новий
та типомРедагування реєстру
. -
У розділі Реєстри > Запити на оновлення знайдіть необхідний запит.
-
Відкрийте сформований запит, натиснувши іконку перегляду — 👁.
-
У новому вікні зіставте 2 версії змін, переконайтеся, що внесені вами дані вірні, та натисніть
Підтвердити
. Ви також можете відразу відхилити зміни до конфігурації, натиснувшиВідхилити
.Запропоновані зміни вносяться до конфігурації файлу deploy-templates/values.yaml репозиторію реєстру у разі підтвердження. У результаті запит набуває статусу
Підтверджено
. -
Розгортання змін займає певний час і виконується автоматично сервісом Jenkins. Сервіс запускає процес (пайплайн), що має назву Master-Build-
<registry-name>
, де<registry-name>
— назва реєстру. Переглянути статус розгортання можна, перейшовши до розділу Реєстри > ваш реєстр > Конфігурація > CI.Під час розгортання реєстру система створює роут
bp-webservice-gateway-trembita
та додає до нього helm-анотацію з IP-адресами, вказаними у файлі values.yaml. Також до кожної адреси автоматично додається маска підмережі/32
, що вказує на одну адресу.Приклад 1. Конфігурація trembita.ipList у файлі deploy-templates/values.yamltrembita: ipList: - 85.223.209.18 - 85.223.209.19 - 172.16.0.0 - 127.0.0.1
Приклад 2. Helm-анотація metadata.annotations, яка додається до SOAP API-роутів OpenShiftmetadata: annotations: haproxy.router.openshift.io/ip_whitelist: 85.223.209.18/32 85.223.209.19 172.16.0.0/32 127.0.0.1/32
У результаті доступ до SOAP API через ШБО "Трембіта" буде дозволено.
Слід відзначити, що роут для
registry-soap-api
буде створено лише після того, як відбудеться розгортання або оновлення моделі даних (data-model), і при цьому в реєстрі має бути хоча б одна дозволена адреса. Таким чином, при першому додаванні IP-адреси до списку дозволених, необхідно ініціювати процес оновлення моделі даних.Це можна здійснити шляхом ручного запуску Jenkins-пайплайну під назвою data-model, або через автоматичний запуск, який відбувається після внесення змін до моделі даних в результаті редагування регламенту.
Детальніше про це див. у розділі Перезапуск Jenkins-процесу data-model у регламенті цього документа.
2.2. Перезапуск Jenkins-процесу data-model у регламенті
Запустіть пайплайн data-model, щоб оновити конфігурацію моделі даних реєстру та створити відповідний роут registry-soap-api
. Це можна зробити декількома способами:
-
через внесення та commit змін до теки data-model регламенту registry-regulations у Gerrit-репозиторії (див. детальніше на сторінках: Операції з регламентом в Gerrit та Розширення Liquibase для моделювання даних).
У результаті оновлення моделі даних реєстру, запускається Jenkins-процес MASTER-Build-registry-regulations, який своєю чергою запускає пайплайн розгортання дата-моделі —data-model
. Цей пайплайн створює другий роут —registry-soap-api
із відповідною анотацією та записує в неї дозволені IP. -
через внесення змін до файлів моделі даних реєстру в Кабінеті адміністратора регламентів (див. детальніше на сторінках: Моделювання структури таблиць БД реєстру в XML-редакторі коду та Застосування змін до майстер-версії).
У результаті оновлення моделі даних реєстру, запускається Jenkins-процес MASTER-Build-registry-regulations, який своєю чергою запускає пайплайн розгортання дата-моделі —data-model
. Цей пайплайн створює другий роут —registry-soap-api
із відповідною анотацією та записує в неї дозволені IP. -
через запуск Jenkins-пайплайну data-model вручну. У результаті запускається Jenkins-процес data-model, який створює другий роут —
registry-soap-api
із відповідною анотацією та записує в неї дозволені IP.Детальніше про це дивіться на сторінці Як запустити Jenkins-процес розгортання моделі даних?.
Таким чином ви матимете 2 роути для повноцінного обміну даними із зовнішніми системами через ШБО "Трембіта" за SOAP-протоколом.
3. Налаштування авторизації у регламенті та використання SOAP API
Після того, як ви надали доступ на рівні IP-адреси в Control Plane і створили роути для SOAP API, можна перейти до налаштувань регламенту для керування авторизацією, зокрема:
-
надання доступу до бізнес-процесів на рівні регламенту;
-
надання доступу до SOAP API-ендпоінтів, згенерованих у сервісі
registry-soap-api
.
Детальну інформацію можна знайти на сторінці Налаштування регламенту для надання доступу до даних через SOAP та REST API. |
Наступним кроком, ви можете додати SOAP API-сервіси в ШБО для вхідної інтеграції з іншими системами.
Більше інформації на цю тему можна знайти на сторінках: |
Надалі ви зможете використовувати API для обміну даними за SOAP-протоколом через ШБО "Трембіта".