Главная
Определение¶
Микросервис управления пользовательскими файлами с расширением *.xls, *.xlm, *.xlsx, *.xlsm
(MS Office Excel). Высокопроизводительный, легкий и готовый к использованию.
Позволяет пользователям загружать, просматривать список, скачивать и удалять файлы шаблонов.
Юнит стандартизирован до спецификации OpenAPI v3 и представляет собой типичный RESTfull API.
Swagger UI является неотъемлемой частью основного кода.
Шаблоны файлы принадлежащие одному издателю токенов доступны только для определённых запросов.
Алгоритм работы¶
Загружаем публичный ключ сервиса, создаем необходимые группы в auth сервисе, распределяем по ним пользователей, перелогинившись пользователи могут работать.
Авторизация запросов основана на JWT Standart, при этом используется аудиенция токена.
Предлагается следующая схема: Администратор данного сервиса размещает публичный ключ сервиса клиента в папке authorized_keys
. После этого сервис готов принимать запросы.
Поддерживается JWT аутентификация по ассиметричным алгоритмам: RS*, ES*, PS*, EdDSA.
Каждый ключ должен находится в отдельном файле.
Имя ключа должно соотвествовать имени издателя определенном в поле токена iss
.
Точки и тире нужно заменить на нижнее подчеркивание.
Клиент запрашивает авторизационный токен, в котором должны присутствовать нужные аудиенции. Получив его отправляет запросы к сервису, последний верифицирует полученный токен (в данном случае на публичном ключе сервиса выпустившего токен, не обращась к последнему).
Таким образом сервису не требуется взаимодействовать с auth
юнитом, не требуется и хранить реестр пользователей у себя.
Реализуется основной принцип RESTfull API. Любой и каждый запрос самодостаточен.
Кроме того сервис требует наличия в токене поля nsp
- namespace, это наименование папки в которой храниться контент данного пользователя.
Развертывание¶
# скопировать и установить нужные значения
cp template.env .env
# создать нужные папки
mkdir templates downloads authorized_keys
# загрузить в папку authorized_keys публичный ключ/и сервисов клиентов
# добавить нужные шаблоны в папку templates
# запустить сервис
docker compose up
Ниже указан тестовый бессрочный токен с максимальной аудиенцией.
Публичный ключ издателя сервису уже добавлен.
Можно выполнять запросы с данным токеном.
eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ0ZXN0LWF1dGguc2l0ZS5jb20iLCJ0eXBlIjoiYWNjZXNzIiwibnNwIjoidGVzdC1uc3AiLCJleHAiOjE5OTYyOTM1MjUsImF1ZCI6WyJvdGhlci1hdWQiLCJ0cGxzLXN1cGVyIl19.Max5d_Q6ppGQUBURhmrKI0ptsr0aK6GMH2fRcb_rZVZqPaVaAQ-XMjkAXP3n6FQMljZQ3OklRicd9g-3nRmkLA