This commit is contained in:
zino
2023-12-05 21:17:54 +01:00
parent 989806f295
commit 5d72d7e3ee
2 changed files with 28 additions and 6 deletions

View File

@@ -17,11 +17,14 @@ server {
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
location = /validate { location = /validate {
# forward the /validate request to Vouch Proxy
proxy_pass http://vouch:9090/validate;
# be sure to pass the original host header # be sure to pass the original host header
proxy_set_header Host $http_host; proxy_set_header Host $http_host;
# Vouch Proxy only acts on the request headers # Vouch Proxy only acts on the request headers
proxy_pass_request_body on; proxy_pass_request_body off;
proxy_set_header Content-Length ""; proxy_set_header Content-Length "";
# optionally add X-Vouch-User as returned by Vouch Proxy along with the request # optionally add X-Vouch-User as returned by Vouch Proxy along with the request
@@ -31,11 +34,14 @@ server {
auth_request_set $auth_resp_jwt $upstream_http_x_vouch_jwt; auth_request_set $auth_resp_jwt $upstream_http_x_vouch_jwt;
auth_request_set $auth_resp_err $upstream_http_x_vouch_err; auth_request_set $auth_resp_err $upstream_http_x_vouch_err;
auth_request_set $auth_resp_failcount $upstream_http_x_vouch_failcount; auth_request_set $auth_resp_failcount $upstream_http_x_vouch_failcount;
}
# forward the /validate request to Vouch Proxy # if validate returns `401 not authorized` then forward the request to the error401block
resolver 127.0.0.11; error_page 401 = @error401;
set $upstream "http://vouch:9090";
proxy_pass $upstream; location @error401 {
# redirect to Vouch Proxy for login
return 302 https://vouch.armos.zinomedia.de/login?url=$scheme://$http_host$request_uri&vouch-failcount=$auth_resp_failcount&X-Vouch-Token=$auth_resp_jwt&error=$auth_resp_err;
} }
} }
@@ -45,3 +51,4 @@ server {
server_name validate.vouch.armos.zinomedia.de; server_name validate.vouch.armos.zinomedia.de;
return 301 https://$host$request_uri; return 301 https://$host$request_uri;
} }

View File

@@ -3,6 +3,21 @@ auth_request /validate;
location = /validate { location = /validate {
proxy_pass https://validate.vouch.armos.zinomedia.de; proxy_pass https://validate.vouch.armos.zinomedia.de;
# be sure to pass the original host header
proxy_set_header Host $http_host;
# Vouch Proxy only acts on the request headers
proxy_pass_request_body off;
proxy_set_header Content-Length "";
# optionally add X-Vouch-User as returned by Vouch Proxy along with the request
auth_request_set $auth_resp_x_vouch_user $upstream_http_x_vouch_user;
# these return values are used by the @error401 call
auth_request_set $auth_resp_jwt $upstream_http_x_vouch_jwt;
auth_request_set $auth_resp_err $upstream_http_x_vouch_err;
auth_request_set $auth_resp_failcount $upstream_http_x_vouch_failcount;
} }
# if validate returns `401 not authorized` then forward the request to the error401block # if validate returns `401 not authorized` then forward the request to the error401block