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

Блокировка запросов со скомпрометированными токенами

ПроAPI Защита предоставляет функцию для предотвращения использования утечек токенов аутентификации. В этом руководстве описывается, как включить эту функцию с помощью контейнера Docker ПроAPI Защита для REST API или GraphQL API.

Эта возможность зависит от предоставленных вами данных о скомпрометированных токенах. Чтобы активировать ее, смонтируйте файл .txt, содержащий эти токены, в контейнер firewall Docker, затем установите соответствующую переменную среды.

Для REST API, если в запросе появляется какой-либо из помеченных токенов, ПроAPI Защита ответит, используя код состояния, указанный в переменной среды APIFW_CUSTOM_BLOCK_STATUS_CODE. Для GraphQL API любой запрос, содержащий помеченный токен, будет заблокирован, даже если он соответствует подключенной схеме.

Чтобы включить функцию denylist:

  1. Создайте текстовый файл .txt с скомпрометированными токенами. Каждый токен должен быть в новой строке.

    eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzb21lIjoicGF5bG9hZDk5OTk5ODIifQ.CUq8iJ_LUzQMfDTvArpz6jUyK0Qyn7jZ9WCqE0xKTCA
    eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzb21lIjoicGF5bG9hZDk5OTk5ODMifQ.BinZ4AcJp_SQz-iFfgKOKPz_jWjEgiVTb9cS8PP4BI0
    eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzb21lIjoicGF5bG9hZDk5OTk5ODQifQ.j5Iea7KGm7GqjMGBuEZc2akTIoByUaQc5SSX7w_qjY8
    
  2. Смонтируйте файл denylist в контейнере Docker ПроAPI Защита. Например, в вашем docker-compose.yaml внесите следующее изменение:

    ...
        volumes:
          - <HOST_PATH_TO_SPEC>:<CONTAINER_PATH_TO_SPEC>
    +     - <HOST_PATH_TO_LEAKED_TOKEN_FILE>:<CONTAINER_PATH_TO_LEAKED_TOKEN_FILE>
    ...
    
  3. Смонтируйте файл denylist в контейнере Docker ПроAPI Защита. Например, в вашем docker-compose.yaml внесите следующее изменение:

Переменная среды Описание
APIFW_DENYLIST_TOKENS_FILE Путь в контейнере к подключенному файлу denylist. Пример: /auth-data/tokens-denylist.txt.
APIFW_DENYLIST_TOKENS_COOKIE_NAME Имя файла cookie, который содержит маркер аутентификации.
APIFW_DENYLIST_TOKENS_HEADER_NAME Название заголовка, передающего токен аутентификации. Если указаны оба APIFW_DENYLIST_TOKENS_COOKIE_NAME и APIFW_DENYLIST_TOKENS_HEADER_NAME, ПроAPI Защита проверяет оба последовательно.
APIFW_DENYLIST_TOKENS_TRIM_BEARER_PREFIX Указывает, следует ли удалять префикс Bearer из заголовка аутентификации при сравнении со списком отказов. Если токены в denylist не имеют этого префикса, но есть в заголовке аутентификации, токены могут быть сопоставлены неправильно. Принимает true или false (по умолчанию).