Перейти к содержанию

Проверка токенов аутентификации запроса

При использовании OAuth 2.0 для аутентификации брандмауэр API может быть настроен на проверку токенов доступа перед направлением запросов на ваш сервер приложений. Брандмауэр ожидает маркер доступа в Authorization: Bearer заголовке запроса.

API Firewall считает токен действительным, если области, определенные в спецификации в метаданных токена, совпадают. Если значение APIFW_REQUEST_VALIDATION равно BLOCK, API Firewall блокирует запросы с недопустимыми токенами. В режиме LOG_ONLY запросы с недопустимыми токенами только регистрируются.

Доступность функционала

Эта функция доступна только при запуске API Firewall для фильтрации запросов REST API.

Чтобы настроить поток проверки токена OAuth 2.0, используйте следующие переменные среды:

Переменная среды Описание
APIFW_SERVER_OAUTH_VALIDATION_TYPE Тип проверки токена аутентификации:
  • JWT при использовании JWT для аутентификации запроса. Выполните дальнейшую настройку с помощью переменных APIFW_SERVER_OAUTH_JWT_*.
  • INTROSPECTION при использовании других типов токенов, которые могут быть проверены конкретной службой самоанализа токенов. Выполните дальнейшую настройку с помощью переменных APIFW_SERVER_OAUTH_INTROSPECTION_*.
APIFW_SERVER_OAUTH_JW_SIGNATURE_ALGORITHM Алгоритм, используемый для подписи JWT: RS256, RS384, RS512, HS256, HS384 или HS512.

JWT подписаны с использованием алгоритма ECDSA не может быть проверен брандмауэром API.
APIFW_SERVER_OAUTH_JWT_PUB_CERT_FILE Если JWT подписаны с использованием алгоритма RS256, RS384 или RS512, путь к файлу с открытым ключом RSA (*.pem). Этот файл должен быть смонтирован в контейнере API Firewall Docker.
APIFW_SERVER_OAUTH_JWT_SECRET_KEY Если JWT подписываются с использованием алгоритма HS256, HS384 или HS512, для подписи JWT используется значение секретного ключа.
APIFW_SERVER_OAUTH_INTROSPECTION_ENDPOINT Конечная точка самоанализа токена. Примеры конечных точек:
  • https://www.googleapis.com/oauth2/v1/tokeninfo при использовании Google OAuth
  • http://sample.com/restv1/introspection для токенов Gluu OAuth 2.0
APIFW_SERVER_OAUTH_INTROSPECTION_ENDPOINT_METHOD Метод запросов к конечной точке самоанализа токена. Может быть GET или POST.

Значение по умолчанию - GET.
APIFW_SERVER_OAUTH_INTROSPECTION_TOKEN_PARAM_NAME Имя параметра со значением токена в запросах к конечной точке самоанализа. В зависимости от значения APIFW_SERVER_OAUTH_INTROSPECTION_ENDPOINT_METHOD, API Firewall автоматически считает этот параметр либо параметром запроса, либо параметром тела.
APIFW_SERVER_OAUTH_INTROSPECTION_CLIENT_AUTH_BEARER_TOKEN Значение токена-носителя для аутентификации запросов к конечной точке самоанализа.
APIFW_SERVER_OAUTH_INTROSPECTION_CONTENT_TYPE Значение заголовка Content-Type, указывающего тип носителя службы самоанализа токенов. Значение по умолчанию - application/ octet-stream.
APIFW_SERVER_OAUTH_INTROSPECTION_REFRESH_INTERVAL Время действия кэшированных метаданных токена. Брандмауэр API кэширует метаданные токена и при получении запросов с теми же токенами получает свои метаданные из кеша.
Интервал может быть установлен в часах (h), минутах (m), секундах (s) или в комбинированном формате (например, 1h10m50s).
Значение по умолчанию — 10m(10 минут).