nginx — перевод JWT из заголовка авторизации в Пользовательский HTTP-заголовок для внутреннего запроса

#authentication #nginx #jwt #nginx-reverse-proxy

#идентификация #nginx #агентство jwt #nginx-обратный прокси

Вопрос:

Можно ли прочитать заголовок авторизации HTTP в nginx plus и поместить носитель jwt из него в пользовательский заголовок HTTP для запроса прокси-сервера к.. например, внутренним микросервисам? Nginx plus выступает в качестве шлюза api/безопасности и должен аутентифицировать запрос с помощью JWT внутри заголовка авторизации. После правильной проверки JWT носитель должен быть помещен в пользовательский HTTP-заголовок для прокси-запроса к серверной веб-службе.

Я попробовал следующее:

 location / {   auth_jwt "API";  auth_jwt_require $valid_app_id $valid_issuer $valid_sub;  auth_jwt_key_request /public_jws_keys;   proxy_set_header X-ClientAuthToken $http_authorization;  proxy_pass_header X-ClientAuthToken;   location /firstLocation {  proxy_pass http://url-to-first-location;  }   location /secondLocation {  proxy_pass http://url-to-second-location;  }   ...    }  location /public_jws_keys {  internal;  proxy_method GET;  proxy_cache jwk; # Cache responses  proxy_pass "http://url-to-idp/jwks"; }  

Развертывание работает нормально. Но даже несмотря на то, что я отправляю допустимый запрос с допустимым JWT в заголовке авторизации nginx, он отвечает 401. Как только я удалю строку proxy_set_header X-ClientAuthToken $http_authorization;, тот же запрос будет аутентифицирован…

Я часами гуглил в Интернете, а также пытался ознакомиться с документацией nginx… К сожалению, безуспешно… Запрещает ли nginx plus копирование значений из HTTP-заголовка авторизации в другие переменные/заголовки?

Заранее благодарю вас за любые подсказки..