Встраивание Superset в ваше приложение

Корпоративная отчетность в крупных компаниях не ограничивается стандартными BI-инструментами. Нередко необходимо разрабатывать решения, позволяющие использовать несколько продуктов вместе, что, в свою очередь, накладывает дополнительные требования к UI-дизайну, такие как использование единой формы авторизации для всего приложения. Столкнувшись с такой задачей, мы реализовали систему, которая использует токен доступа Superset для входа в пользовательский интерфейс без введения логина, соблюдая все требования безопасности.
блог о bi, №1 в рунете
Решение состоит из нескольких элементов, принцип работы которых описан ниже.
  1. Взаимодействие между Backend приложения и SuperSet.
Реализована авторизация server to server, на которых прописан Application Kay сверяемый на обеих сторонах. На картинке показан механизм взаимодействия:
- запроса со стороны Backend к SuperSet на создание пользователя «test1»;
- SuperSet сверяет со своей стороны Application Kay и создает пользователя. После успешного выполнения команды, SuperSet возвращает логин пользователя «test1».
2. Загрузка интерфейса SuperSet в часть Frontend приложения.
Главная проблема на данном этапе не получить форму логина и пароля SuperSet. Диаграмма взаимодействия показана на рисунке ниже:
- Frontend делает запрос у Backend, которому известен Application Kay:
- Backend запрашивает token для логина test1, который генерирует SuperSet и возвращает в ответ;
- Backend пробрасывает в часть Frontend сгенерированный token;
- далее можно загружать SuperSet напрямую c Frontend, обходя процедуру авторизации. Для этого необходимо использовать URL на дашборд, указав в параметрах token.

Для проверки решения будем выполнять HTTP-запросы, используя утилиту командной строки curl.
Отправляем запрос на создание пользователя «test123»:
Запрашиваем token для пользователя «test123»
Переходим на URL для дашборда номер 9 с использованием полученного token.