diff --git a/README.md b/README.md index 290cdc0..8c01885 100644 --- a/README.md +++ b/README.md @@ -336,6 +336,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64 ## Versions +* **13.04.23:** - [Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) authelia-location.conf, authelia-server.conf, authentik-server.conf - Simplify auth configs and include updates for Authelia 4.38. * **13.04.23:** - [Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) nginx.conf, authelia-location.conf, authentik-location.conf, and site-confs/default.conf - Move ssl.conf include to default.conf. Remove Authorization headers in authelia. Sort proxy_set_header in authelia and authentik. * **25.03.23:** - Fix renewal post hook. * **10.03.23:** - Cleanup unused csr and keys folders. See [certbot 2.3.0 release notes](https://github.com/certbot/certbot/releases/tag/v2.3.0). diff --git a/readme-vars.yml b/readme-vars.yml index cf36fab..290fc9f 100644 --- a/readme-vars.yml +++ b/readme-vars.yml @@ -154,6 +154,7 @@ app_setup_block: | # changelog changelogs: + - { date: "13.04.23:", desc: "[Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) authelia-location.conf, authelia-server.conf, authentik-server.conf - Simplify auth configs and include updates for Authelia 4.38." } - { date: "13.04.23:", desc: "[Existing users should update:](https://github.com/linuxserver/docker-swag/blob/master/README.md#updating-configs) nginx.conf, authelia-location.conf, authentik-location.conf, and site-confs/default.conf - Move ssl.conf include to default.conf. Remove Authorization headers in authelia. Sort proxy_set_header in authelia and authentik." } - { date: "25.03.23:", desc: "Fix renewal post hook." } - { date: "10.03.23:", desc: "Cleanup unused csr and keys folders. See [certbot 2.3.0 release notes](https://github.com/certbot/certbot/releases/tag/v2.3.0)." } diff --git a/root/defaults/nginx/authelia-location.conf.sample b/root/defaults/nginx/authelia-location.conf.sample index ae4d630..32cd82e 100644 --- a/root/defaults/nginx/authelia-location.conf.sample +++ b/root/defaults/nginx/authelia-location.conf.sample @@ -1,10 +1,10 @@ -## Version 2023/04/13 - Changelog: https://github.com/linuxserver/docker-swag/commits/master/root/defaults/nginx/authelia-location.conf.sample +## Version 2023/04/24 - Changelog: https://github.com/linuxserver/docker-swag/commits/master/root/defaults/nginx/authelia-location.conf.sample # Make sure that your authelia container is in the same user defined bridge network and is named authelia # Rename /config/nginx/proxy-confs/authelia.subdomain.conf.sample to /config/nginx/proxy-confs/authelia.subdomain.conf # Make sure that the authelia configuration.yml has 'path: "authelia"' defined ## Send a subrequest to Authelia to verify if the user is authenticated and has permission to access the resource. -auth_request /authelia/api/verify; +auth_request /authelia/api/authz/auth-request; ## If the subreqest returns 200 pass to the backend, if the subrequest returns 401 redirect to the portal. error_page 401 = @authelia_proxy_signin; @@ -23,3 +23,6 @@ proxy_set_header Remote-User $user; ## Include the Set-Cookie header if present. auth_request_set $set_cookie $upstream_http_set_cookie; add_header Set-Cookie $set_cookie; + +## Set $redirection_url to the location header of the response from the auth request +auth_request_set $redirection_url $upstream_http_location; diff --git a/root/defaults/nginx/authelia-server.conf.sample b/root/defaults/nginx/authelia-server.conf.sample index cbc1a86..a79fb87 100644 --- a/root/defaults/nginx/authelia-server.conf.sample +++ b/root/defaults/nginx/authelia-server.conf.sample @@ -1,4 +1,4 @@ -## Version 2023/02/09 - Changelog: https://github.com/linuxserver/docker-swag/commits/master/root/defaults/nginx/authelia-server.conf.sample +## Version 2023/04/24 - Changelog: https://github.com/linuxserver/docker-swag/commits/master/root/defaults/nginx/authelia-server.conf.sample # Make sure that your authelia container is in the same user defined bridge network and is named authelia # Rename /config/nginx/proxy-confs/authelia.subdomain.conf.sample to /config/nginx/proxy-confs/authelia.subdomain.conf # Make sure that the authelia configuration.yml has 'path: "authelia"' defined @@ -10,16 +10,6 @@ location ^~ /authelia { include /config/nginx/resolver.conf; set $upstream_authelia authelia; proxy_pass http://$upstream_authelia:9091; -} - -# location for authelia auth requests -location = /authelia/api/verify { - internal; - - include /config/nginx/proxy.conf; - include /config/nginx/resolver.conf; - set $upstream_authelia authelia; - proxy_pass http://$upstream_authelia:9091/authelia/api/verify; ## Include the Set-Cookie header if present. auth_request_set $set_cookie $upstream_http_set_cookie; @@ -33,23 +23,18 @@ location = /authelia/api/verify { location @authelia_proxy_signin { internal; - ## Set the $target_url variable based on the original request. - set_escape_uri $target_url $scheme://$http_host$request_uri; - ## Include the Set-Cookie header if present. auth_request_set $set_cookie $upstream_http_set_cookie; add_header Set-Cookie $set_cookie; - ## Set $authelia_backend to route requests to the current domain by default - set $authelia_backend $http_host; - ## In order for Webauthn to work with multiple domains authelia must operate on a separate subdomain - ## To use authelia on a separate subdomain: - ## * comment the $authelia_backend line above - ## * rename /config/nginx/proxy-confs/authelia.conf.sample to /config/nginx/proxy-confs/authelia.conf - ## * make sure that your dns has a cname set for authelia - ## * uncomment the $authelia_backend line below and change example.com to your domain - ## * restart the swag container - #set $authelia_backend authelia.example.com; + ## Set the $target_url variable based on the original request. + set_escape_uri $target_url $scheme://$http_host$request_uri; - return 302 https://$authelia_backend/authelia/?rd=$target_url; + ## Set $redirection_url if it is empty + if ($redirection_url = false) { + set $redirection_url https://$http_host/authelia/?rd=$target_url; + } + + ## Redirect to login + return 302 $redirection_url; } diff --git a/root/defaults/nginx/authentik-server.conf.sample b/root/defaults/nginx/authentik-server.conf.sample index 08ac225..b5adfd6 100644 --- a/root/defaults/nginx/authentik-server.conf.sample +++ b/root/defaults/nginx/authentik-server.conf.sample @@ -1,4 +1,4 @@ -## Version 2023/02/09 - Changelog: https://github.com/linuxserver/docker-swag/commits/master/root/defaults/nginx/authentik-server.conf.sample +## Version 2023/04/24 - Changelog: https://github.com/linuxserver/docker-swag/commits/master/root/defaults/nginx/authentik-server.conf.sample # Make sure that your authentik container is in the same user defined bridge network and is named authentik-server # Rename /config/nginx/proxy-confs/authentik.subdomain.conf.sample to /config/nginx/proxy-confs/authentik.subdomain.conf @@ -9,16 +9,6 @@ location ^~ /outpost.goauthentik.io { include /config/nginx/resolver.conf; set $upstream_authentik authentik-server; proxy_pass http://$upstream_authentik:9000; -} - -# location for authentik auth requests -location = /outpost.goauthentik.io/auth/nginx { - internal; - - include /config/nginx/proxy.conf; - include /config/nginx/resolver.conf; - set $upstream_authentik authentik-server; - proxy_pass http://$upstream_authentik:9000/outpost.goauthentik.io/auth/nginx; ## Include the Set-Cookie header if present. auth_request_set $set_cookie $upstream_http_set_cookie; @@ -32,14 +22,18 @@ location = /outpost.goauthentik.io/auth/nginx { location @goauthentik_proxy_signin { internal; - ## Set the $target_url variable based on the original request. - set_escape_uri $target_url $scheme://$http_host$request_uri; - ## Include the Set-Cookie header if present. auth_request_set $set_cookie $upstream_http_set_cookie; add_header Set-Cookie $set_cookie; - ## Set $authentik_backend to route requests to the current domain by default - set $authentik_backend $http_host; - return 302 https://$authentik_backend/outpost.goauthentik.io/start?rd=$target_url; + ## Set the $target_url variable based on the original request. + set_escape_uri $target_url $scheme://$http_host$request_uri; + + ## Set $redirection_url if it is empty + if ($redirection_url = false) { + set $redirection_url https://$http_host/outpost.goauthentik.io/start?rd=$target_url; + } + + ## Redirect to login + return 302 $redirection_url; }