Разработка api шлюза для on-prem кластера Kubernetes

Цена договорная
24 ноября 2021, 06:35 • 0 откликов • 21 просмотр
Облако для предоставления 1С. Каждая инфомрационная база является подой с образом httpd.
К каждой поде создается сервис (Kind: Service из Kubernetes)
Как выглядит сервис внутри http://orgid-ibname:80/ibname

user - логин пользователя в системе
orgid - уникальный айди клиента. Один клиент может содержать несколько пользователей (пример, oke861eevl151515144559)
ibname - уникальное название информационной базы (ИБ) в области организации ( пример, test1, ipibanov, ooogefest)

Вся логика уже реализована на сервисах сайта, доступ через http

Провайдером авторизации выступает сайт с api (уже реализован)
Пользователь проходит авторизацию в Личном кабинете либо через приложение Запускатор (только Windows)
В ответ от сайта получает список баз доступных для подключения данному логину

url для подключения к базе может быть двух вариантов

https://fqdn/tokenid - где tokenid случайно сгенерированный uuid, по которому шлюз через сайт может подтвердить авторизацию

https://fqdn/orgid/ibname - ссылка, означает что база открыта для вшнешнего подключения без дополнительной авторизации через шлюз
данная схема используется при интеграциях с внешними сервисами 1С (Битрикс, обмены, консолидации)

Требования к шлюзу:
1. Проверка токенов с сайтом, кэширование записей - orgid - ibname, возможность сброса кэш
2. Контроль одновременного количества сессий для связки пользователь/информационная база (не более одного)
3. Возможно исключать некоторые ресурсы из схемы авторизации
4. Минимальные задержки при проверке.
5. Нативное решение (krakend, kong, ваш вариант)
6. Возможность изменить вид публичной ссылки по другому макросу (например другой fqdn, или добавить еще один параметр)

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