auth_jwt_validate_sub
Директива `auth_jwt_validate_sub` проверяет утверждение `sub` в JWT во время проверок авторизации.
Описание
Директива auth_jwt_validate_sub используется в конфигурациях NGINX для обеспечения проверки поля sub (subject) в JSON Web Token (JWT). Поле sub обычно идентифицирует субъект JWT, например идентификатор пользователя. Эту директиву можно установить в положение on, чтобы гарантировать, что значение поля sub соответствует ожидаемым значениям, добавляя уровень защиты от несанкционированного доступа. Когда директива включена, она будет обеспечивать соответствие утверждений внутри JWT стратегиям авторизации, определённым сервером, повышая надёжность контроля доступа.
При настройке этой директивы её наличие влияет как на успешные, так и на неуспешные сценарии валидации. Если проверка выполняется и утверждение не проходит валидацию, NGINX может быть настроен на применение конкретных действий в ответ, например перенаправление на страницу входа, если он интегрирован с другими механизмами аутентификации, определёнными директивами вроде auth_jwt_redirect. Обработка валидации инкапсулирована в модуле NGINX, который разбирает JWT, поэтому важно понимать сопутствующие настройки JWT для обеспечения бесшовной работы.
Контекст, в котором может применяться эта директива, включает http, server и location, что обеспечивает гибкость её использования по всей конфигурации сервера. Установка auth_jwt_validate_sub в off или отсутствие определения этой директивы подразумевает, что проверка поля sub не будет выполняться, что может привести к риску несанкционированного доступа, если это не контролируется должным образом.
Пример конфига
location /protected {
auth_jwt_enabled on;
auth_jwt_validate_sub on;
auth_jwt_key my_jwt_secret;
auth_jwt_loginurl /login;
}Убедитесь, что проверяемые JWT действительно содержат поле sub; отсутствие этого поля может привести к неудачной аутентификации.
Установка директивы в on без соответствующих проверок наличия требуемых полей может привести к тому, что нежелательный доступ будет непреднамеренно предоставлен, если конфигурация выполнена неправильно.