From b2cc62e65557d724bf9d484d51ea5581036fe991 Mon Sep 17 00:00:00 2001 From: akanealw Date: Thu, 18 May 2023 20:12:59 -0500 Subject: [PATCH] updated and rearranged authelia config files --- authelia/add-to-protected-domains.conf | 10 ++++++ .../configuration.yml | 0 .../npmsnippets/authelia-authrequest.conf | 25 +++++++++++++ authelia/npmsnippets/authelia-location.conf | 36 +++++++++++++++++++ authelia/npmsnippets/authelia-proxy.conf | 8 +++++ .../users_database.yml | 0 6 files changed, 79 insertions(+) create mode 100644 authelia/add-to-protected-domains.conf rename configuration.yml => authelia/configuration.yml (100%) create mode 100644 authelia/npmsnippets/authelia-authrequest.conf create mode 100644 authelia/npmsnippets/authelia-location.conf create mode 100644 authelia/npmsnippets/authelia-proxy.conf rename users_database.yml => authelia/users_database.yml (100%) diff --git a/authelia/add-to-protected-domains.conf b/authelia/add-to-protected-domains.conf new file mode 100644 index 0000000..824d91a --- /dev/null +++ b/authelia/add-to-protected-domains.conf @@ -0,0 +1,10 @@ +include /etc/nginx/conf.d/include/authelia-location.conf; + +location / { + include /etc/nginx/conf.d/include/authelia-proxy.conf; + include /etc/nginx/conf.d/include/authelia-authrequest.conf; + proxy_pass $forward_scheme://$server:$port; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection upgrade; + proxy_set_header Accept-Encoding gzip; +} diff --git a/configuration.yml b/authelia/configuration.yml similarity index 100% rename from configuration.yml rename to authelia/configuration.yml diff --git a/authelia/npmsnippets/authelia-authrequest.conf b/authelia/npmsnippets/authelia-authrequest.conf new file mode 100644 index 0000000..08b8d0f --- /dev/null +++ b/authelia/npmsnippets/authelia-authrequest.conf @@ -0,0 +1,25 @@ +## Send a subrequest to Authelia to verify if the user is authenticated and has permission to access the resource. +auth_request /authelia; + +## Set the $target_url variable based on the original request. + +## Comment this line if you're using nginx without the http_set_misc module. +set_escape_uri $target_url $scheme://$http_host$request_uri; + +## Uncomment this line if you're using NGINX without the http_set_misc module. +# set $target_url $scheme://$http_host$request_uri; + +## Save the upstream response headers from Authelia to variables. +auth_request_set $user $upstream_http_remote_user; +auth_request_set $groups $upstream_http_remote_groups; +auth_request_set $name $upstream_http_remote_name; +auth_request_set $email $upstream_http_remote_email; + +## Inject the response headers from the variables into the request made to the backend. +proxy_set_header Remote-User $user; +proxy_set_header Remote-Groups $groups; +proxy_set_header Remote-Name $name; +proxy_set_header Remote-Email $email; + +## If the subreqest returns 200 pass to the backend, if the subrequest returns 401 redirect to the portal. +error_page 401 =302 https://auth.akanealw.com/?rd=$target_url; \ No newline at end of file diff --git a/authelia/npmsnippets/authelia-location.conf b/authelia/npmsnippets/authelia-location.conf new file mode 100644 index 0000000..62c874d --- /dev/null +++ b/authelia/npmsnippets/authelia-location.conf @@ -0,0 +1,36 @@ +set $upstream_authelia http://authelia:9091/api/verify; + +## Virtual endpoint created by nginx to forward auth requests. +location /authelia { + ## Essential Proxy Configuration + internal; + proxy_pass $upstream_authelia; + + ## Headers + ## The headers starting with X-* are required. + proxy_set_header X-Original-URL $scheme://$http_host$request_uri; + proxy_set_header X-Original-Method $request_method; + proxy_set_header X-Forwarded-Method $request_method; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Forwarded-Host $http_host; + proxy_set_header X-Forwarded-Uri $request_uri; + proxy_set_header X-Forwarded-For $remote_addr; + proxy_set_header Content-Length ""; + proxy_set_header Connection ""; + + ## Basic Proxy Configuration + proxy_pass_request_body off; + proxy_next_upstream error timeout invalid_header http_500 http_502 http_503; # Timeout if the real server is dead + proxy_redirect http:// $scheme://; + proxy_http_version 1.1; + proxy_cache_bypass $cookie_session; + proxy_no_cache $cookie_session; + proxy_buffers 4 32k; + client_body_buffer_size 128k; + + ## Advanced Proxy Configuration + send_timeout 5m; + proxy_read_timeout 240; + proxy_send_timeout 240; + proxy_connect_timeout 240; +} \ No newline at end of file diff --git a/authelia/npmsnippets/authelia-proxy.conf b/authelia/npmsnippets/authelia-proxy.conf new file mode 100644 index 0000000..e42cecf --- /dev/null +++ b/authelia/npmsnippets/authelia-proxy.conf @@ -0,0 +1,8 @@ +## Headers +proxy_set_header Host $host; +proxy_set_header X-Original-URL $scheme://$http_host$request_uri; +proxy_set_header X-Forwarded-Proto $scheme; +proxy_set_header X-Forwarded-Host $http_host; +proxy_set_header X-Forwarded-Uri $request_uri; +proxy_set_header X-Forwarded-Ssl on; +proxy_set_header X-Forwarded-For $remote_addr; diff --git a/users_database.yml b/authelia/users_database.yml similarity index 100% rename from users_database.yml rename to authelia/users_database.yml