Единый security-паттерн для HTTP-интеграций
Директивный
Правило
Заголовок раздела «Правило»Новые и переводимые HTTP-интеграции используют один общий reusable-модуль с единым способом аутентификации, интроспекцией токенов и XDTO-валидацией входных параметров. Каждая интеграция не изобретает свою схему авторизации и разбора тела.
Минимальный контракт модуля:
- Аутентификация — единая точка: интроспекция/валидация токена (или
JWT) до бизнес-логики. Запрос без
валидного токена →
401/403, дальше не проходит. - Авторизация — выполнение от технического пользователя с минимальной
ролью (
Useна конкретный сервис/метод). - Валидация входа — параметры тела проверяются по XDTO-схеме/контракту до
использования; невалидное тело →
400, а не исключение в середине обработки. - Идемпотентность — см. обработчики обмена.
- Логирование — диагностически значимые события в ЖР, без секретов и чувствительных тел запросов.
Разрозненные самописные точки входа — источник дыр в безопасности и неконтролируемого разбора данных. Единый модуль делает поведение всех интеграций одинаковым, проверяемым на ревью и переиспользуемым.
Правильно
Заголовок раздела «Правильно»Общий модуль (ИнтеграцииБезопасность в примере) — один на конфигурацию: новая
интеграция подключает его, а не копирует код. Логирование отказов внутри модуля —
в ЖР, без токенов и тел запросов.
Когда не применять
Заголовок раздела «Когда не применять»Исключений нет: любая точка входа HTTP-интеграции проходит через общий security-контракт. Внутренние вызовы без внешней границы — вне области стандарта.