Привет всем.
Хочу валидировать JWT токен на уровне сервера Nginx Plus с использованием JWK ключей.
Пример JWK ключа:
{
"keys": [
{
"kty": "RSA",
"n": "xxEYtAKiN0pt_XPijJKq8lel-YLcrw0FSf89_UtczfT1pAuF2bjbaL1Jdh5WvNuznJ7g_WKNRMXv6p65pJhWnebFGi2Bg5oac5dCMx3ojNi2sHuEhp4r6jA78kD0KQZhR7ypRLhYrFmre2gc1xoFt7774wFLgsTLsa1lR-nNP2yEpvATIU0e82JmVfdrzdYL3qT9dEHc6NhOVL7vDTK0kJNseabl1ccs61zBUKvVfXpp3W2PgftDJ29SRK_dTFkoKxS3Bbc5d3rwrfDl34TIcH1CVcs7Jk28MFVowdzQeqvZx7cNiQUEqTxn9iXbdsNS-R3irpwr4ET8ABD4atXZJa7c3BmpCemNtvfedK6zNlA0WgmOPNsdrLLCDqoiteQ7CnrogVHm2ReBmR-W-DG0rojX6uxDrduRRZ49InPcgTazDBqtLW2cK0nyYaZaMnFx4TBpSmqReR7hJaSiPrGiSeCz_7hOLdipEJiZE3C0LTj2jUtKc3pRDaJiN4_XjnopPV0gRY70vaiKGcsml1k3smGGfdc7e5gjrKNy-oLydeGuQk-iybA1fpK7nHn-WA8fwOdiozi_QXVEJlmR8Aen8naYNzzjQMn9V_WxUEg0q-JzIaf-nnxFGATBIcNXbBKD0A8rPEVQ8zXnhYEEP1DakC61apGKtMEGn3R5QJP2dJE",
"e": "AQAB",
"use": "sig"
}
]
}
Также есть Nginx config:
server {
listen 80 default_server;
server_name localhost;
# вариант когда JWK ключ находится на том же сервере с Nginx
location /api/v1/data {
auth_jwt "localhost";
auth_jwt_key_file conf.d/key.jwk;
proxy_pass http://example.com;
}
# вариант когда Nginx запрашивает JWK ключи с другово сервера
location /api/v2/data {
auth_jwt "closed site";
auth_jwt_key_request /_jwks_uri; # Keys will be fetched by subrequest
proxy_pass http://example.com;
}
location = /_jwks_uri {
internal;
proxy_method GET;
proxy_set_header Accept "application/json";
proxy_pass http://{auth_server_address}/oauth2/.well_known/keys; # Obtain keys from here
}
}
Вариант когда JWK файл ключей находится на том же сервере с Nginx то все работает хорошо.
Но когда Nginx должен забирать ключи с другого сервера то он выдает такую ошибку
invalid JWK set while sending to client