Аутентификация
Формат, выдача и применение JWT‑токена
Аутентификация выполняется HTTP‑заголовком Authorization со схемой Bearer. В качестве учётных данных используется JWT‑токен, выданный платформой.
Получение токена
JWT‑токен выпускается платформой и предоставляется мерчанту через ответственного менеджера или администратора. Самостоятельное получение токена через публичные эндпойнты не предусмотрено: эндпойнт POST /auth/businessself/login/start предназначен для входа пользователей в личный кабинет и требует подтверждения по SMS.
Атрибуты выдаваемого токена:
| Атрибут | Значение |
|---|---|
| Алгоритм подписи | HS256 |
Роль (role) | BusinessIntegration |
Издатель (iss) | NP |
Аудитория (aud) | NPServices |
| Срок действия по умолчанию | 1 год |
| Привязка | один идентификатор мерчанта (IDDomainEntity) |
Применение
Заголовок добавляется к каждому запросу к мерчантскому API:
Идентификатор мерчанта (IDDomainEntity) в JWT‑claims не публикуется. Платформа определяет принадлежность операций мерчанту на стороне сервера по содержимому токена.
Хранение
Токен является долгоживущим секретом, эквивалентным паролю интеграции. Применяются стандартные требования к хранению секретов:
- запрет на размещение в системах контроля версий;
- запрет на встраивание в клиентские приложения и фронтенд;
- хранение в защищённом хранилище (vault, секреты CI/CD, переменные окружения серверного процесса).
При компрометации токена необходимо незамедлительно обратиться к менеджеру для выпуска нового и блокировки скомпрометированного.
Ротация
Порядок плановой замены токена:
- Получение нового токена через менеджера. Старый токен остаётся валидным до истечения срока, указанного в
exp. - Поэтапное обновление значения секрета на серверах интеграции.
- Подтверждение работоспособности интеграции на новом токене.
- Запрос отзыва старого токена через менеджера.
В период ротации одновременная работа двух токенов одного мерчанта допустима.
Диагностика ошибок аутентификации
| Симптом | Причина | Действие |
|---|---|---|
HTTP 401, тело отсутствует | заголовок Authorization не передан | проверка корректности проксирования заголовка |
Текст Ошибка аутентификации или token is IsNullOrEmpty | заголовок пуст или не начинается с Bearer | проверка формата заголовка |
Текст Token is not valid | повреждённая или некорректная подпись | запрос нового токена |
Текст Token expired | истёк срок действия (exp) | ротация токена |
status: "AccessError" при валидном токене | роль в токене отличается от BusinessIntegration или нет связи с мерчантом | повторный выпуск токена через менеджера |
Тестовая среда
В тестовой среде применяется отдельный токен, привязанный к тестовому мерчанту. Условия использования и контрольный перечень приведены в разделе Тестирование.