⚡️ v42.27.1

API Gateway проверил токен. Значит, доступ разрешён? 🔐

Представьте: пользователь обращается к API за информацией о договоре.

Запрос проходит через API Gateway. Токен действительный, маршрут разрешён, лимиты не превышены.

Всё хорошо?

Не совсем. Пользователь может попытаться получить чужой договор, просто изменив его идентификатор.

И здесь возникает важный вопрос: кто должен проверять права доступа?

Я разделяю ответственность на несколько уровней.

1. API Gateway проверяет вход 🚪

Аутентификация, базовые политики доступа, ограничения по методам, маршрутизация и лимиты запросов.

Шлюз проверяет подлинность предъявленных учётных данных и применяет общие политики доступа.

1. Бизнес-сервис проверяет контекст 🔍

Имеет ли конкретный пользователь право читать именно этот договор?

Доступна ли ему запрошенная операция?

Действительный токен ещё не означает право доступа к любому объекту системы.

1. Политики должны быть согласованы ⚙️

Шлюз может использовать внешнюю систему авторизации, но наличие такой интеграции ещё не гарантирует корректную проверку прав на бизнес-объект.

Важно определить, где принимается решение о доступе и кто отвечает за его выполнение.

1. Проверяем не только успешные запросы 🧪

В тестах обязательно должны быть попытки обращения к чужим объектам и запрещённым операциям.

Например: — пользователь А запрашивает свой договор — доступ разрешён; — пользователь А запрашивает договор пользователя Б — доступ запрещён; — пользователь без необходимых прав пытается изменить договор — операция отклоняется.

Это не просто теоретическая угроза.

В OWASP API Security Top 10 (2023) нарушение авторизации на уровне объектов — Broken Object Level Authorization (BOLA) — занимает первое место.

📚 Источник: https://owasp.org/API-Security/editions/2023/en/0xa1-broken-object-level-authorization/

💡 Мой принцип: API Gateway централизует общие правила, но не освобождает сервис от проверки бизнес-прав.

Иначе можно построить отлично защищённый вход в систему, внутри которой пользователи получают доступ к чужим данным.

А где в вашей архитектуре проходит эта граница? Что проверяете на шлюзе, а что оставляете бизнес-сервисам?

#APIGateway #APISecurity #APIManagement #Т1Амбассадор