From 71fa7f67eab5943598697522622236bf1afd22b9 Mon Sep 17 00:00:00 2001 From: Pierre-Olivier Mercier Date: Mon, 6 Sep 2021 12:03:13 +0200 Subject: [PATCH] configs: Add nginx config for OIDC --- configs/nginx/auth/oidc.conf | 50 ++++++++++++++++++++++++++++++++ configs/nginx/get-team/oidc.conf | 3 ++ 2 files changed, 53 insertions(+) create mode 100644 configs/nginx/auth/oidc.conf create mode 100644 configs/nginx/get-team/oidc.conf diff --git a/configs/nginx/auth/oidc.conf b/configs/nginx/auth/oidc.conf new file mode 100644 index 00000000..994812ab --- /dev/null +++ b/configs/nginx/auth/oidc.conf @@ -0,0 +1,50 @@ +error_page 401 = @error401; + +location /challenge_access { + # forward the /validate request to Vouch Proxy + proxy_pass http://auth:9090; + # 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 the user is not logged in, redirect them to Vouch's login URL +location @error401 { + return 302 https://fic.srs.epita.fr/challenge_access/login?url=https://fic.srs.epita.fr$request_uri&vouch-failcount=$auth_resp_failcount&X-Vouch-Token=$auth_resp_jwt&error=$auth_resp_err; +} + +location /auth { + proxy_pass http://auth:5556; +} +location /approval { + proxy_pass http://auth:5556; +} +location /token { + proxy_pass http://auth:5556; +} +location /keys { + proxy_pass http://auth:5556; +} +location /userinfo { + proxy_pass http://auth:5556; +} +location /static { + proxy_pass http://auth:5556; +} +location /theme { + proxy_pass http://auth:5556; +} +location /.well-known/openid-configuration { + proxy_pass http://auth:5556; +} diff --git a/configs/nginx/get-team/oidc.conf b/configs/nginx/get-team/oidc.conf new file mode 100644 index 00000000..32709ab7 --- /dev/null +++ b/configs/nginx/get-team/oidc.conf @@ -0,0 +1,3 @@ +auth_request /challenge_access/validate; + +auth_request_set $team "$upstream_http_x_vouch_user";