JwtVerifier#
Действие JwtVerifier осуществляет проверку подписи jwt-токенов по предоставленным публичным ключам и опционально проверяет срок действия токена.
Существует 2 варианта загрузки публичных ключей - через http и через локальный файл.
Параметры:
Название |
Обязательность |
Допустимые значения |
Описание |
|---|---|---|---|
jwks_url |
- |
Строковое значение |
Url, из которого будут браться публичные ключи для проверки подписи jwt-токена. |
token_var |
+ |
Строковое значение |
Переменная или выражение, в котором будет находиться токен для проверки. |
check_expiry |
- |
true/false |
Определяет необходимость проверки срока действия токена. |
max_clock_skew |
- |
Целочисленное значение |
Определяет период в секундах до истечения срока действия токена, при котором проверка срока действия перестанет проходить. |
jwks_path |
- |
true/false |
Конструкция вида: {type: file, path: путь к файлу}. |
runtime_update |
- |
Параметр от действия FileToMessage. |
|
http_sender |
- |
Параметры от действия HttpSender, за исключением external_url. |
Возможно указать либо параметры jwks_url вместе с http_sender, либо jwks_path вместе с runtime_update (опционально), либо не указывать ничего, но перед объявлением действия JwtVerifier определить действие, которое в message проставит значения публичных ключей. Остальные параметры (token_var/check_expiry/max_clock_skew) можно указывать в зависимости от обязательности.
Заполняемые переменные:
Название |
Допустимые значения |
Описание |
|---|---|---|
clj_jwt_claims |
Текстовое значение |
Клеймсы jwt токена. |
clj_validation_error_description |
Текстовое значение |
Описание ошибки. |
Примеры использования действия JwtVerifier:
- action: JwtVerifier
params:
jwks_path: {path: jwks.json, type: file}
token_var: $http_apikey
runtime_update: true
check_expiry: false
- action: JwtVerifier
params:
jwks_url: "/auth/realms/PlatformAuth/protocol/openid-connect/certs"
token_var: $http_apikey
check_expiry: true
http_sender:
service_id: request_to_oauth_with_cache
service_type: service_http_proxy
connect_timeout: 200s
request_method: get
chains:
- actions:
- action: FileToMessage
actions:
- action: JwtVerifier
params: {check_expiry: false, token_var: $http_apikey}
params: {path: /sowa/profile_storage/custom/oauth2/jwks.json, runtime_update: true}