Модуль ngx_http_auth_jwt_module

Пример конфигурации
Директивы
     auth_jwt
     auth_jwt_header_set
     auth_jwt_claim_set
     auth_jwt_key_file
Встроенные переменные

Модуль ngx_http_auth_jwt_module (1.11.3) предоставляет возможность авторизации клиента с проверкой предоставляемого JSON Web Token (JWT) при помощи указанных ключей. JWT claims должны быть зашифрованы в структуре JSON Web Signature (JWS). Модуль может использоваться для настройки аутентификации OpenID Connect.

Модуль может быть скомбинирован с другими модулями доступа, такими как ngx_http_access_module, ngx_http_auth_basic_module и ngx_http_auth_request_module с помощью директивы satisfy.

Модуль поддерживает следующие криптографические алгоритмы:

До версии 1.13.7 поддерживались только алгоритмы HS256, RS256 и RS256.

Модуль доступен как часть коммерческой подписки.

Пример конфигурации

location / {
    auth_jwt          "closed site";
    auth_jwt_key_file conf/keys.json;
}

Директивы

Синтаксис: auth_jwt строка [token=$переменная] | off;
Умолчание:
auth_jwt off;
Контекст: http, server, location

Включает проверку JSON Web Token. Заданная строка используется в качестве realm. В значении параметра допустимо использование переменных.

Необязательный параметр token задаёт переменную, содержащую JSON Web Token. По умолчанию JWT передаётся в заголовке “Authorization” в качестве Bearer Token. JWT может также передаваться как кука или часть строки запроса:

auth_jwt "closed site" token=$cookie_auth_token;

Специальное значение off отменяет действие унаследованной с предыдущего уровня конфигурации директивы auth_jwt.

Синтаксис: auth_jwt_header_set $переменная имя ...;
Умолчание:
Контекст: http

Эта директива появилась в версии 1.11.10.

Устанавливает переменную в параметр заголовка JOSE, определяемый именами ключей. Сопоставление имён начинается с верхнего уровня дерева JSON. Для массива переменная хранит список его элементов, разделяемых запятыми.

До версии 1.13.7 можно было указать лишь одно имя, результат для массивов был не определён.

Синтаксис: auth_jwt_claim_set $переменная имя ...;
Умолчание:
Контекст: http

Эта директива появилась в версии 1.11.10.

Устанавливает переменную в параметр JWT claim, определяемый именами ключей. Сопоставление имён начинается с верхнего уровня дерева JSON. Для массива переменная хранит список его элементов, разделяемых запятыми.

location / {
    auth_jwt           "closed site";
    auth_jwt_key_file  conf/keys.json;
    auth_jwt_claim_set $email info e-mail;
    auth_jwt_claim_set $job info "job title";
}

До версии 1.13.7 можно было указать лишь одно имя, результат для массивов был не определён.

Синтаксис: auth_jwt_key_file файл;
Умолчание:
Контекст: http, server, location

Задаёт файл в формате JSON Web Key Set для проверки подписи JWT. В значении параметра допустимо использование переменных.

Встроенные переменные

Модуль ngx_http_auth_jwt_module поддерживает встроенные переменные:

$jwt_header_имя
возвращает значение указанного заголовка JOSE
$jwt_claim_имя
возвращает значение указанной JWT claim