Ustawianie nagłówków za pomocą NGINX auth_request i oauth2_proxy
Chcę użyćauth_request ioauth2_proxy aby ustawić nagłówek po pomyślnym żądaniu uwierzytelnienia, a następnie przekazać go do następnego wiersza proxy, który obsłuży rzeczywiste żądanie.
Skonfigurowałem NGINX i różne serwery proxy do zrobienia swoich rzeczy, jednak nie jestem pewien, jak ustawić nagłówek z serwera (AUTH PROXY w diagramie), którego używam dla żądania autoryzacji, tak aby ten nagłówek został przekazany następny serwer (BACKEND SERVER in diagram)
NGINX ---- auth request ----> AUTH PROXY
|
| <--- 201 <------ SUCCESS
|
----> underlying request ----> BACKEND SERVER
Moja konfiguracja NGINX wygląda tak
server {
listen 9123;
resolver 10.3.0.2;
resolver_timeout 30;
location / {
auth_request /_auth;
proxy_set_header x-user $http_x_user;
proxy_pass http://backend_server;
}
location = /_auth {
internal;
proxy_pass https://auth;
proxy_pass_request_body off;
proxy_set_header Content-Length "";
proxy_set_header X-Original-URI $request_uri;
}
}
Kiedy wykonuję rzeczywiste żądanie, widzę następujące informacje w dziennikach debugowania NGINX (jest to część odpowiedzi z serwera autoryzacji):
2013/10/14 17:46:42 [debug] 31222#0: *4 http proxy header: "Content-Type: text/html; charset=utf-8"
2013/10/14 17:46:42 [debug] 31222#0: *4 http proxy header: "Date: Mon, 14 Oct 2013 17:46:42 GMT"
2013/10/14 17:46:42 [debug] 31222#0: *4 http proxy header: "Server: nginx/1.2.5"
2013/10/14 17:46:42 [debug] 31222#0: *4 http proxy header: "Vary: Cookie"
2013/10/14 17:46:42 [debug] 31222#0: *4 http proxy header: "x-user: 1"
Chcę wziąćx-user
nagłówek i przekazać go do serwera zaplecza.
Próbowałem różnych kombinacji wlocation /
blok, ale żaden z nich jeszcze nie zadziałał. Na przykład.
proxy_set_header x-user $upstream_http_x_user;
proxy_set_header x-user $http_x_user;
proxy_set_header x-user $sent_http_x_user;
proxy_pass_header x-user
Żadne z nich nie wydaje się działać. Jakieś pomysły, w jaki sposób mogę wykonać to zadanie? Pamiętaj, że to proxy auth ustawia nagłówek, który chcę przekazać do serwera zaplecza,