Розмежування прав доступу до бізнес-процесів для зовнішніх клієнтів

Даний документ розширює загальний дизайн по роботі з зовнішніми клієнтами в контексті автентифікації зовнішніх клієнтів у сервісі bp-webservice-gateway та розмежування прав на ініціювання бізнес-процесів

1. Базові принципи

  • Бізнес-процеси що можуть бути викликані зовнішнім клієнтом мають розмежування прав на ініціювання

  • Виконання авторизаційних правил на старт бізнес-процесу відбувається у Сервісі виконання бізнес-процесів за загальним механізмом в системі. Детальніше — за посиланням.

  • Права доступу до бізнес-процесів для зовнішніх клієнтів є частиною регламенту

  • Ідентифікація зовнішнього клієнта та отримання авторизаційного токена відбувається у сервісі bp-webservice-gateway

2. Взаємодія компонентів системи

На даній діаграмі зображені сценарії з реєстрації нового зовнішнього клієнта, налаштування авторизаціних правил та обробкою запиту з ШБО Трембіта.

2.3. Конфігурація карти доступу

  • Конфігурація карти доступу налаштовується за загальними правилами визначеними в системі

  • Для налаштування використовується окремий файл bp-auth/external-system.yaml

  • В якості ролі могуть бути використані загальна роль trembita-invoker чи специфічна для сервіс аккаунту

  • Додатково для цієї ролі повинні бути налаштовані авторизаційні правила для викликів Фабрики Даних

Приклад файлу конфігурації карти доступу
authorization:
  realm: external-system
  process_definitions:
    - process_definition_id: add-lab # Унікальний ідентифікатор бізнес-процесу
      roles:
        - trembita_invoker
    - process_definition_id: update-lab
      roles:
        - external-system-role-berdyansk-rtg

2.4. Конфігурація зовнішніх клієнтів для сервісу

  • Оновлення конфігурації для сервісу відбувається протягом проходження пайплайну публікацій змін

  • Конфігурація зовнішніх клієнтів зберігається в OpenShift ConfigMap з назвою bp-webservice-gateway-consumers

  • Згенеровані паролі для зовнішніх клієнтів зберігаються в OpenShift Secret з назвою bp-webservice-gateway-consumers

  • Для інтеграції ресурсів OpenShift у контекст застосунку використовується бібліотека spring-cloud-kubernetes-config

  • Після оновлення відповідних конфігурацій в ресурсах OpenShift пайплайн публікацій змін ініціює рестарт сервісу для отримання актуальних значень конфігурацій

Канонічний вигляд структури OpenShift ConfigMap bp-webservice-gateway-consumers
kind: ConfigMap
apiVersion: v1
metadata:
  name: bp-webservice-gateway-consumers
data:
  application.yaml: |-
    trembita:
      consumers:
        drrp: # name
          description: Державний реєстр речових прав на нерухоме майно
          subsystemCode: 6_MJU_DRRP_cons
          memberClass: GOV
          memberCode: 00015622
        berdyansk-rtg: # name
          description: РТГ Бердянської територіальної громади
          subsystemCode: 63_BerdyanskRTG_cons
          memberClass: GOV
          memberCode: 02140805
Канонічний вигляд структури OpenShift Secret bp-webservice-gateway-consumers
kind: Secret
apiVersion: v1
metadata:
  name: bp-webservice-gateway-consumers
data:
  trembita.consumers.drrp.keycloakClientSecret: afa87cf2-8925-47b3-a1d2-c64aaec9e319
  trembita.consumers.berdyansk-rtg.keycloakClientSecret: 5140eb60-7fdd-44ff-8c3c-fd8060e635a4