This commit is contained in:
zino
2023-12-05 21:43:35 +01:00
parent 0a545f5ad4
commit 3fea8330b5
3 changed files with 55 additions and 25 deletions

View File

@@ -19,7 +19,38 @@ server {
add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' data:; style-src 'self' 'unsafe-inline'; font-src 'self' data:;" always; add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; img-src 'self' data:; style-src 'self' 'unsafe-inline'; font-src 'self' data:;" always;
#include "snippets/enable-vouch-no-subdomain.conf"; #include "snippets/enable-vouch-no-subdomain.conf";
include "snippets/enable-vouch.conf"; #include "snippets/enable-vouch.conf";
# send all requests to the `/validate` endpoint for authorization
auth_request /validate;
location = /validate {
# forward the /validate request to Vouch Proxy
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
error_page 401 = @error401;
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;
}
location / { location / {
resolver 127.0.0.11; resolver 127.0.0.11;

View File

@@ -16,8 +16,6 @@ server {
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
resolver 127.0.0.11;
# location / { # location / {
# # forward the /validate request to Vouch Proxy # # forward the /validate request to Vouch Proxy
# proxy_pass http://vouch:9090/validate; # proxy_pass http://vouch:9090/validate;
@@ -38,33 +36,33 @@ server {
# # auth_request_set $auth_resp_failcount $upstream_http_x_vouch_failcount; # # auth_request_set $auth_resp_failcount $upstream_http_x_vouch_failcount;
# } # }
location = /validate { # location = /validate {
# forward the /validate request to Vouch Proxy # # forward the /validate request to Vouch Proxy
proxy_pass http://vouch:9090/validate; # 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 off; # 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
auth_request_set $auth_resp_x_vouch_user $upstream_http_x_vouch_user; # auth_request_set $auth_resp_x_vouch_user $upstream_http_x_vouch_user;
# these return values are used by the @error401 call # # 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_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;
} # }
# 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
error_page 401 = @error401; # error_page 401 = @error401;
location @error401 { # location @error401 {
# redirect to Vouch Proxy for login # # 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; # 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;
} # }
} }
server { server {

View File

@@ -2,6 +2,9 @@
auth_request /validate; auth_request /validate;
location = /validate { location = /validate {
# forward the /validate request to Vouch Proxy
proxy_pass https://validate.vouch.armos.zinomedia.de:443;
# 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;
@@ -16,8 +19,6 @@ location = /validate {
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;
proxy_pass https://validate.vouch.armos.zinomedia.de:443;
} }
# 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