Доступ к Lite API
Общие принципы защиты API
Внешний доступ к BAF Lite осуществляется через gateway-под, который проверяет наличие валидного JWT-токена перед проксированием запроса к нижележащим сервисам. Таким образом обеспечивается защита всех сервисов, с которыми взаимодействует веб-компонента, включая video-recorder и сервисы image-api.
При обращении к сервисам внутри кластера использование JWT не требуется. Сервисы модуля image-api не защищают свои API, а часть API модуля video-recorder защищена внутренним токеном, который хранится в секрете video-recorder-token в файле ./cfg/video-recorder.secrets.json.
Генерация JWT-токена
Для генерации валидного JWT-токена используется модуль authentification-service.
API модуля authentification-service не имеет собственной защиты и не должно быть доступно извне — в противном случае злоумышленник сможет генерировать собственные токены.
Предполагается, что доступ к сервису осуществляется только внутри кластера Kubernetes или через внутренний домен.
Запрос на генерацию токена
Схема запроса:
POST /api/v1/jwt/generate
Пример запроса
curl -X 'POST' \
'http://auth-service.ru/api/v1/jwt/generate' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"expire_time": 500
}'
Параметры тела запроса (application/json)
| Параметр | Описание |
|---|---|
expire_time | Время жизни токена в секундах, отсчитываемое с момента выполнения запроса. Обязательный. |
Пример тела запроса
{
"expire_time": 500
}
Пример ответа
{
"token": "eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJBdXRoZW50aWZpY2F0aW9uU2VydmljZSIsImV4cCI6MTc4NTM1MzM1NiwibmJmIjoxNzg1MzAzMzU2fQ.Zzy-9aSDDhnKqbipAgW9MnZCb2PknSkloHzs2K7BFSavqVWtcs1_YE1aO1Sl4ELnOjF_qN-q0_flDtUCMqOZAQ"
}
Структура ответа
| Поле | Описание |
|---|---|
token | Сгенерированный JWT-токен, который должен быть передан в заголовке Authorization: Bearer <token> при обращении к защищённым API через gateway. |