From 644616d8b187b3c15fb9898c41c37b83ef34ae69 Mon Sep 17 00:00:00 2001 From: James Elliott Date: Sun, 9 Oct 2022 12:09:45 +1100 Subject: [PATCH] docs: npm custom locations (#4152) --- .../proxies/nginx-proxy-manager/index.md | 21 ++++++++++++++++++ .../protectedapp.customlocation.png | Bin 0 -> 15090 bytes 2 files changed, 21 insertions(+) create mode 100644 docs/content/en/integration/proxies/nginx-proxy-manager/protectedapp.customlocation.png diff --git a/docs/content/en/integration/proxies/nginx-proxy-manager/index.md b/docs/content/en/integration/proxies/nginx-proxy-manager/index.md index f3baccb87..012294a5b 100644 --- a/docs/content/en/integration/proxies/nginx-proxy-manager/index.md +++ b/docs/content/en/integration/proxies/nginx-proxy-manager/index.md @@ -131,6 +131,8 @@ either most likely require an adjustment, or may require an adjustment if you're * You are running Authelia on the default port. * You are running Authelia with the `container_name` of `authelia` or the Authelia process is otherwise resolvable by [NGINX Proxy Manager] as `authelia`. +* If you want to use a [Custom Location](#protected-application-custom-locations) and wish for it to be protected you + follow the [Protected Application Custom Location](#protected-application-custom-locations) guide. ### Snippets @@ -206,6 +208,25 @@ Protected Application (Nextcloud) `Advanced` tab example: {{< figure src="protectedapp.advanced.png" alt="Step 4" width="450" >}} +### Protected Application Custom Locations + +It's important to note if you define locations in the `Custom Locations` tab of a proxy host that they will not be +checked with Authelia for authorization effectively bypassing the authorization policies you implement. If you want a +custom location then you can also define this in the advanced tab. + +To replicate the `Custom Location` tab below a location block can be *__ADDED__* to the +[Protected Application](#protected-application) `Advanced` tab: + +```nginx +location /custom { + include /snippets/proxy.conf; + include /snippets/authelia-authrequest.conf; + proxy_pass http://192.168.1.20:8080; +} +``` + +{{< figure src="protectedapp.customlocation.png" alt="Custom Location" width="450" >}} + #### Proxy Hosts Screenshot The following screenshot shows an example of following the directions for the Authelia Portal and two applications: diff --git a/docs/content/en/integration/proxies/nginx-proxy-manager/protectedapp.customlocation.png b/docs/content/en/integration/proxies/nginx-proxy-manager/protectedapp.customlocation.png new file mode 100644 index 0000000000000000000000000000000000000000..2a5e635cdd1dd8c16408f180c9d08dde61de735f GIT binary patch literal 15090 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 literal 0 HcmV?d00001