Why authentik behind a reverse proxy needs careful header handling
When TLS terminates at a reverse proxy or load balancer, the proxy must forward three things to authentik: the original protocol (X-Forwarded-Proto), the original host (X-Forwarded-Host) and the client address (X-Forwarded-For). From authentik 2026.8, the server only honors these headers when the request comes from a network listed in AUTHENTIK_LISTEN__TRUSTED_PROXY_CIDRS. Any proxy or load balancer in front of authentik must therefore be both sending the headers and sitting inside a trusted range, or authentik will ignore what it receives.
Teams need to get this right in any HTTPS deployment that uses a proxy, which covers most production installs. authentik builds its own redirect URLs, cookie settings and issuer metadata from the request it sees. If it believes the connection is plain HTTP, login pages can load mixed content, sign-in can spin without finishing, and OIDC or SAML flows can fail with errors that look unrelated to headers. Client IP addresses recorded in audit logs and used by policies such as GeoIP or reputation checks are also only as accurate as the forwarded address the server trusts.
This page walks through the decisions behind that setup: which proxy you run (NGINX, Traefik, Caddy or a cloud load balancer), how to scope the trusted CIDRs to the addresses your proxy actually uses, and how to confirm the result. Confirm with your own network team which source addresses reach authentik, because container networks, Kubernetes ingress controllers and cloud load balancers often present addresses different from the ones you expect. Check the authentik 2026.8 release notes for the exact behavior and any upgrade steps before changing a running deployment.
Choosing NGINX, Traefik, Caddy or a cloud load balancer
NGINX is usually configured by hand in a site or server block, so the forwarded headers are whatever your location blocks send to authentik. Your team owns TLS termination, certificate renewal and the upstream definition that points at the authentik server container. The main risk is a proxy that forwards the request without X-Forwarded-Proto or X-Forwarded-Host, which authentik then reads as plain HTTP on a different host.
- Forwarded headers: Set
X-Forwarded-Proto,X-Forwarded-HostandX-Forwarded-Forin the proxy block that serves authentik, using the variables your NGINX version provides for the client scheme, host and address. - TLS termination: Usually terminated at NGINX with certificates your team manages, so confirm how the upstream connection is made to the server container.
- Websockets: Upgrade and Connection headers must be passed for the WebSocket endpoints authentik uses.
- Trusted networks: The address NGINX connects from must fall inside
AUTHENTIK_LISTEN__TRUSTED_PROXY_CIDRSon authentik 2026.8 and later. - Vendor check: Confirm exact directive names and variable behavior in the NGINX documentation for your installed version.
After changing the configuration, load a login flow over HTTPS and confirm the browser sees only HTTPS URLs and assets.
Traefik usually receives the routing rules from Docker labels, a file provider or Kubernetes ingress objects, and forwarded headers are handled through its entry point and middleware settings. Traefik can terminate TLS with certificates from its own store or an ACME resolver, and it passes the original scheme and host to the backend when configured to do so. Because the header behavior depends on how the entry point is declared, the trust boundary needs to be set explicitly rather than assumed.
- Forwarded headers: Confirm that Traefik sets
X-Forwarded-Proto,X-Forwarded-HostandX-Forwarded-Foron requests to authentik, and that it trusts only the networks you intend. - TLS termination: Terminate at the entry point with an ACME resolver or supplied certificates, and document which resolver renews them.
- Trusted networks: Add the Traefik container or pod network to
AUTHENTIK_LISTEN__TRUSTED_PROXY_CIDRSon 2026.8 and later. - Websockets: Traefik generally supports WebSocket upgrades without extra middleware, but test the authentik endpoints to confirm.
- Vendor check: Confirm entry point trust settings and header middleware names against the Traefik version you run.
Check the rendered routing configuration after each change, since a label or ingress annotation mistake is easy to miss.
Caddy is often chosen for its automatic HTTPS, which obtains and renews certificates for the configured site without a separate tool. Its reverse proxy directive forwards the client address and scheme to the upstream by default, so the main question is whether the upstream trusts those values. Your team still decides which network ranges authentik should accept forwarded headers from, and that list must match the address Caddy uses when it connects.
- Forwarded headers: Caddy's reverse proxy sets forwarded headers for the upstream by default; confirm the exact set in the version you run.
- TLS termination: Automatic HTTPS handles certificates for public names, while private or internal names may need a configured certificate source.
- Trusted networks: Add the Caddy address seen by authentik to
AUTHENTIK_LISTEN__TRUSTED_PROXY_CIDRSwhen running 2026.8 or later. - Websockets: The reverse proxy directive handles WebSocket upgrades, so check the authentik endpoints during testing.
- Vendor check: Confirm default header behavior and automatic HTTPS conditions in the Caddy documentation for your release.
Verify the certificate chain and the scheme authentik reports after the first successful login.
A cloud load balancer, such as the Application Load Balancer used in AWS deployments, usually terminates TLS with a managed certificate and forwards traffic to the authentik server over HTTP or HTTPS. The forwarded headers depend on the provider's listener and target group settings, and the source address that authentik sees is the load balancer's private address, not the client's. Your team must confirm both the trust list and the health check path, because a wrong trust list causes the same symptoms as a wrong proxy.
- Forwarded headers: Confirm which headers the load balancer adds and whether it preserves the client address in the forwarded-for header.
- TLS termination: Usually at the listener with a managed certificate; decide whether the backend connection is plain or encrypted.
- Trusted networks: Add the load balancer subnets or private ranges to
AUTHENTIK_LISTEN__TRUSTED_PROXY_CIDRS, and keep the list as narrow as your network design allows. - Health checks: Point the health check at a path authentik serves successfully, and confirm that it does not depend on forwarded headers.
- Vendor check: Confirm header behavior, idle timeouts for long-lived connections and WebSocket support in the provider's documentation.
After deployment, confirm that the audit log records client addresses, not load balancer addresses, for sign-in events.
The right choice depends on who will operate the proxy and where the trust boundary sits. A self-managed web server gives your team full control of headers and timeouts, while a container-native proxy or a cloud listener shifts some of that work to labels, annotations or provider settings. In every case the same three decisions apply: which component terminates TLS, which headers reach authentik, and which networks authentik trusts to set them. Ask whether your platform team already runs one of these proxies, since mixing tools across environments adds troubleshooting work.
- Operations fit: Pick the proxy your team already patches, monitors and renews certificates for.
- Trust scope: Keep
AUTHENTIK_LISTEN__TRUSTED_PROXY_CIDRSas narrow as the chosen topology allows. - Environment match: Compose, Kubernetes and cloud deployments each have a natural proxy, so align the choice with the install method.
- Upgrade exposure: Note proxy changes that must be re-tested alongside authentik upgrades.
- Vendor check: Confirm exact settings for your authentik and proxy versions before you copy any example into production.
Whatever you choose, write down the trust list and header rules so the next change is reviewed against them.
Configuration options and when each fits
This table compares the main ways to place authentik behind a proxy or load balancer, with the trade-off of each. Read each row as a decision: the option in the first column fits the situation in the last column, and the middle columns explain what you gain and what you take on.
| Option | What it gives you | What it costs you | When it fits |
|---|---|---|---|
| TLS terminated at the proxy | One place to manage certificates and redirects, and forwarded protocol headers tell authentik the original request was HTTPS. | Traffic between proxy and authentik is plain HTTP unless you add a second TLS hop, and the proxy must send correct X-Forwarded-Proto and X-Forwarded-Host values. | Most self-run deployments where the proxy and authentik sit on a private network you control. |
| TLS pass-through to authentik | Encryption continues end to end, and authentik sees the original connection details without relying on the proxy's headers. | Layer 7 features such as path routing, header rewrites and WAF rules are limited, and certificate handling moves onto authentik's side. | Setups where policy requires encryption up to the application and the proxy only forwards TCP. |
| Single proxy hop | Simple header chain: one trusted sender sets X-Forwarded-For, which is easy to verify in logs. | Any extra hop, such as a CDN in front of the proxy, must also be trusted or the client address will be wrong. | Direct exposure through one reverse proxy, the most common layout to start with. |
| Chained proxies or CDN in front | Caching, DDoS filtering or regional routing from an upstream layer. | Every hop adds an address that must appear in AUTHENTIK_LISTEN__TRUSTED_PROXY_CIDRS, and a missed hop shows up as wrong client IPs or protocol errors. | Environments where an edge service is already mandated, with each hop documented and tested. |
| Cloud load balancer in front | Managed availability, certificate integration and fewer proxy components to patch. | The load balancer's private addresses fall inside your VPC network range, so trusted CIDRs must cover that range precisely, and health check paths need planning. | Cloud-hosted deployments, such as an AWS layout with an application load balancer in front of authentik. |
| Self-run proxy (NGINX, Traefik, Caddy) | Full control over configuration, headers and certificate renewal inside your own network. | Your team owns proxy upgrades, TLS settings, websocket configuration and the header rules that authentik depends on. | On-premises or private-cloud deployments where you already operate a reverse proxy standard. |
| Narrow trusted CIDRs (proxy addresses only) | Only the proxy's own address range can set forwarded headers, which limits spoofing from other hosts. | Addresses change when proxies are rescheduled or scaled, so the list needs updating as infrastructure moves. | Fixed proxy IPs or a dedicated subnet for the proxy tier. Confirm the exact address of each hop in your environment. |
| Broad trusted CIDRs (wide ranges) | Fewer configuration changes when proxies move inside a large internal network. | Any host in the range can forge X-Forwarded-For and X-Forwarded-Proto, which weakens client address logging and HTTPS detection. | Rarely justified. Use only as a temporary measure while you confirm the correct proxy addresses. |
How to configure the proxy and authentik step by step
This sequence takes a proxy from its default setup to a verified authentik sign-in over HTTPS. Each step closes with a check so you can confirm the proxy, the trusted network list and the forwarded headers agree before you move on.
Confirm the authentik version and supported line
Before changing anything, record the authentik version your deployment runs and compare it with the supported lines in the security policy. The current supported lines are listed there, and the latest release on the GitHub releases page is the reference for what you may be upgrading to. Read the release notes for your target version, since the trusted proxy behavior described below is tied to specific releases. Done when you have the running version written down, confirmed as supported, and you know which release notes apply to your upgrade path.
Map the proxy network addresses
The network team or whoever operates the load balancer lists every address range the proxy uses to reach authentik. This includes the proxy's own addresses, any intermediate load balancer tier, and the container or pod network if the proxy runs in the same host or cluster. Keep the list as narrow as your topology allows, because every entry becomes a source whose forwarded headers authentik will believe. Done when you have a written list of CIDR ranges and an owner who can confirm each one matches the live network.
Set the trusted proxy CIDRs
Set AUTHENTIK_LISTEN__TRUSTED_PROXY_CIDRS on the authentik server to the list from the previous step, using the format your deployment method expects (environment file, Helm values or compose configuration). Restart the server container so the setting takes effect. From 2026.8, authentik reads X-Forwarded-Proto, X-Forwarded-Host and X-Forwarded-For only from these networks, so an incomplete list will make the proxy's headers ignored. Done when the server starts cleanly and the setting is visible in the running configuration.
Configure forwarded headers on the proxy
In the proxy configuration, set X-Forwarded-Proto to the scheme the client used, X-Forwarded-Host to the public hostname, and X-Forwarded-For to the client address, passing these to authentik on every route that serves it. Remove any client-supplied copies of these headers at the edge so users cannot spoof them. Use the example directives for your chosen proxy (NGINX, Traefik, Caddy or a cloud load balancer) and confirm your load balancer does not rewrite the scheme before the request reaches the proxy. Done when a request to the public hostname shows the expected scheme and host in authentik's request log.
Enable websocket upgrades for the relevant paths
Configure the proxy to pass the HTTP Upgrade and Connection headers on the paths authentik uses for WebSocket connections, so that live updates and any upgraded sessions work through the proxy. Confirm the exact path list in the authentik documentation for your version rather than copying an old example. Keep the timeouts on those routes at least as long as the sessions they carry. Done when a browser session that depends on a WebSocket connection stays open through the proxy without repeated disconnects.
Verify HTTPS login and redirects
From a browser outside the internal network, open the public address, start a sign-in and complete it. Check that every redirect, login form, stylesheet and script loads over HTTPS, and that the redirect back to the application uses the public hostname. Test with an application that uses OIDC or SAML so the callback URLs are exercised too. A wrong setup often shows as mixed content warnings, pages that keep loading, or authentication errors after the password step. Done when a full sign-in and sign-out cycle completes with no mixed content warnings and no redirects to HTTP or an internal hostname.
Verify the admin interface and token behavior
Sign in to the admin interface through the proxy and open the pages that display the application list, the provider configuration and the outposts. Check that the instance shows the public hostname in generated URLs and that no page references an internal address. Also confirm that the admin session survives a refresh and a logout. Document the verified settings and the proxy configuration version in your change record so the next upgrade or proxy change can be tested against the same checklist. Done when the admin interface works end to end through the proxy and your change record lists the trusted CIDRs, headers and websocket paths you verified.
Websockets, IPv6 listen address and other proxy details
Your reverse proxy must pass WebSocket connections to authentik unchanged. authentik uses WebSocket functions for live interface behavior, and since the 2025.10 release it runs those functions on PostgreSQL instead of Redis, so the proxy path to the server carries them directly. A proxy that drops the Upgrade and Connection headers, or that closes idle connections after a short timeout, can break these functions in ways that look like a general fault rather than a proxy setting. Confirm that the proxy you chose (NGINX, Traefik, Caddy or a cloud load balancer) supports WebSocket upgrades on the authentik host and paths, and that its idle timeout is long enough for long-lived connections. Check current vendor documentation for each product, because defaults and required directives differ. Test by signing in to the admin interface and confirming in browser developer tools that the WebSocket connection opens and stays open, not only that pages return HTTP 200. The 2025.10 release notes explain the Redis removal.
Version 2026.5 changed the default listen address from 0.0.0.0 to [::], the IPv6 wildcard. Before you upgrade a deployment that already runs, check where the proxy sends traffic. If the host or container runtime does not accept IPv6 connections, or if your proxy upstream uses an IPv4 address that the server no longer answers on, requests will fail with gateway errors even though the container is running. The fix is to set the listen address explicitly to the IPv4 wildcard in your deployment configuration, so the server matches what the host supports. Confirm the exact configuration key in the 2026.5 release notes before you change it, and do not assume the key name from older guides. Also confirm that any port mapping in Docker Compose or service definition in Kubernetes exposes the port on the address family your proxy uses.
After any change to listen address or proxy configuration, run a short check from the proxy host itself, not only from your browser. Request the sign-in page through the proxy, confirm the upstream address in the proxy logs, and confirm that the response comes from authentik rather than a gateway error page. Then repeat the WebSocket check from the earlier step. Record the listen address, proxy version and upstream target in your change record so that the next upgrade has a known baseline. If you run several proxies or a cloud load balancer in front of one another, verify each hop, because a correct first hop can still fail at a second hop that only handles IPv4. Treat these checks as part of every upgrade, since listen defaults can change between releases.
Symptoms of a wrong proxy setup and how to recognize them
Why does authentik redirect users to http instead of https behind a proxy?
The most likely cause is that authentik does not receive the X-Forwarded-Proto header from your proxy, or ignores it because the proxy's address is not trusted. From authentik 2026.8, forwarded headers are only accepted from networks listed in AUTHENTIK_LISTEN__TRUSTED_PROXY_CIDRS, so authentik can treat an HTTPS request as plain HTTP. Check the scheme in the Location header of a redirect from the login flow. If it says confirm that your proxy sends X-Forwarded-Proto` and that its source address falls inside the configured CIDR range.
What causes mixed content errors on an authentik login page?
Mixed content appears when the page is served over HTTPS but authentik generates links, scripts or API calls with an ` scheme. The browser then blocks those resources. This follows the same forwarded header issue described in the 2026.8 release notes, where authentik may treat HTTPS as HTTP. Open the browser developer console and look for blocked requests. Then compare the URLs with your external domain. If the scheme is wrong, review the proxy's forwarded headers and the trusted proxy CIDR list before changing anything inside authentik.
Why does the authentik login page keep loading endlessly?
An endless spinner after sign-in often means a redirect or WebSocket connection is looping or failing. Possible causes include a wrong scheme or host in redirects, a proxy that does not forward the upgrade headers for WebSockets, or a trusted proxy setting that excludes the proxy address. Check the browser network tab for repeated redirects and for WebSocket connections that close immediately. Also confirm that the proxy forwards requests to the same authentik server that issued the original redirect.
How do I tell whether authentik sees the proxy IP or the client IP?
Check the client address recorded in authentik's event logs and compare it with the address of a test client. If every event shows the proxy's internal IP, authentik is not reading X-Forwarded-For from a trusted source. Make sure the proxy sets that header, that its own address is included in AUTHENTIK_LISTEN__TRUSTED_PROXY_CIDRS, and that no other proxy in the chain overwrites the header. Logs that show the correct client IP after a change confirm the fix.
Why do callback URLs and OAuth redirects show the wrong host name?
Callback URLs use the host that authentik believes the request came from. If it reads X-Forwarded-Host from an untrusted source or the header is missing, the redirect may point to an internal hostname or port. Inspect the redirect_uri parameter in the authorization request and compare it with the redirect URI registered in the application's provider. A mismatch produces errors such as invalid redirect URI, and the fix is usually to correct forwarded headers at the proxy and confirm the trusted CIDR list.
Does the 2026.5 change to the default listen address affect proxy setups?
It can. The 2026.5 release notes say the default listen address changed from 0.0.0.0 to [::], and some IPv4-only environments may need to adjust it. If the proxy connects over IPv4 and authentik is not reachable, requests fail at the connection level rather than producing authentication errors. Confirm the listen settings in your deployment, test connectivity from the proxy host to the authentik server port, and review the 2026.5 release notes before upgrading an existing setup.
What should I check first when authentication fails only behind the proxy?
Start by comparing a direct connection to authentik with a connection through the proxy. If the direct connection works and the proxied one fails, the problem sits in the forwarded headers, trusted CIDRs or WebSocket handling. Capture the request and response headers at the proxy, confirm X-Forwarded-Proto, X-Forwarded-Host and X-Forwarded-For are present, and verify the proxy's address matches a trusted range. Your own environment and proxy documentation should confirm the exact header names each product sets by default.
Security risks of trusting forwarded headers
Forwarded headers tell authentik which scheme, host and client address a request came from, so authentik builds redirects and logs from them. Every risk below comes from the same trust decision: which network paths are allowed to set those headers, and which paths can reach authentik without passing through the proxy at all.
Over-broad trusted proxy ranges
Setting AUTHENTIK_LISTEN__TRUSTED_PROXY_CIDRS to a wide range, such as a whole flat VPC or a large corporate block, lets any host in that range send its own X-Forwarded-For or X-Forwarded-Proto value. Authentik then accepts the spoofed client address or scheme. Limit the list to the addresses your proxy or load balancer actually uses, and confirm them from the proxy's outbound address in a test request.
Direct access to the server container
If the authentik server port is reachable from a network the proxy does not sit on, a client can skip the proxy entirely and send headers straight to authentik. The bypass also skips any WAF, rate limit or access rule you placed at the edge. Publish only the proxy's listener, and block the server port at the host firewall, security group or Kubernetes network policy.
TLS certificate ownership at the edge
The proxy terminates TLS, so the certificate, its private key and its renewal process sit outside authentik. An expired certificate at the edge is a sign-in outage for every application that depends on authentik. Name the team that owns the certificate, record the renewal method, and test that the chain is served correctly after each renewal.
Admin paths exposed through the proxy
A single proxy rule that forwards everything to authentik also forwards the administration interface and the API. Users who should only reach sign-in can then load the admin pages and try the login forms there. Route only the flow, sign-in and application paths your users need to the public listener, and restrict administration to a separate hostname, an internal network or an identity-aware access rule.
Client addresses in logs
When the proxy does not pass the real client address, every audit and login event shows the proxy's address. Investigations then cannot tell which user or network caused a failed sign-in burst, and address-based policies such as GeoIP or reputation checks see the wrong input. Confirm that the proxy sets X-Forwarded-For and that authentik logs the resolved client address in a test sign-in from outside your network.
Proxy settings that change between releases
Forwarded-header handling, listen addresses and proxy-facing defaults have changed across recent authentik releases, including the default listen address change in 2026.5. An upgrade can therefore break a setup that worked before, even when the proxy configuration did not change. Read the release notes for each version between your current and target release, and repeat the header and sign-in tests after every upgrade.
What a reverse proxy engagement covers and what it does not
A reverse proxy engagement covers the configuration that places NGINX, Traefik, Caddy or a cloud load balancer in front of authentik inside your own infrastructure. In practice that means the proxy routes and TLS termination, the forwarded headers it sends (such as X-Forwarded-Proto, X-Forwarded-Host and X-Forwarded-For), the trusted proxy networks listed in AUTHENTIK_LISTEN__TRUSTED_PROXY_CIDRS, and the websocket paths authentik needs. DeployOpen configures these in your environment, verifies that authentik sees the original scheme and host, and checks the symptoms that point to a wrong setup, such as mixed content or endless loading. Your team can often handle the simpler parts itself, such as creating a single virtual host for a lab instance, but the trusted CIDR list and the header chain across every hop are where mistakes tend to hide.
Work that DeployOpen does not take on includes changes to network ownership, firewall policy and DNS zones that your own security team controls, as well as tuning of unrelated applications behind the same proxy. DeployOpen also does not issue audit reports, attestations or certifications. If your reverse proxy configuration is part of a compliance assessment, the proxy settings and the evidence of their testing can be prepared for an independent auditor or certification body, but that body makes the determination. Confirm with your auditor which records they will expect, such as configuration exports and test results, before the work starts.
The engagement scope, deliverables and handover are agreed in writing before any change is made to your systems. Ask for the written scope to name the proxy product and version, the authentik version and its upgrade path, the environments covered, who approves production changes, and what the runbook contains. A useful handover includes the final proxy configuration, the trusted CIDR values with their reasoning, a header verification checklist, and a rollback procedure. Confirm current product behavior against the authentik release 2026.8 notes and your proxy's own documentation before you finalize the scope.
Questions teams ask before configuring the proxy
Can our own team put authentik behind a reverse proxy without a partner?
Yes, a team with working knowledge of its proxy and DNS can usually do the basic setup alone, because the core work is a handful of forwarded headers, a trusted proxy list and a TLS listener. The harder part is confirming that every path works after the change: login, logout, the admin interface, outposts and any websocket traffic. Teams that already operate the proxy, own the certificates and can test against a staging hostname are the best candidates to do it in house. Teams without that proxy experience, or with several proxies and domains, often find an outside review of the configuration worth the time. Whichever route you choose, test a failed header on purpose so you know what the symptoms look like before users report them.
What makes the reverse proxy work take longer or cost more?
Effort follows the number of moving parts rather than the proxy brand alone. The main drivers are:
- How many proxies or load balancers sit in front of authentik, since each hop must forward headers correctly and must be listed as trusted.
- Whether TLS is already terminated cleanly at one point or split across several layers, with re-encryption to the backend.
- How many public domains, subdomains and per-application hostnames need to route through authentik.
- Whether proxy outposts, LDAP or RADIUS endpoints need their own routing, which adds listeners and testing.
Each additional driver adds design decisions, test cases and rollback planning. Ask any provider to break the quote down along these lines so you can see which items would shrink if your architecture is simpler.
How long does a reverse proxy configuration for authentik take?
The duration depends on the drivers above and on how quickly your change process approves changes to production routing, so no single figure applies. A simple single-proxy setup in a test environment can be completed in a short working session, while a multi-domain production change with staged testing and a rollback plan takes longer. No duration figure has been published for this work, so ask any provider for a timeline in their written scope and check which steps depend on your own change windows. Plan for at least one full test cycle on a non-production hostname before cutover.
What access and information do we need to provide before the work starts?
Prepare four things before any configuration begins:
- DNS control for the public hostname, so the record and any staging name can point at the new entry point.
- The certificate source, whether a corporate certificate authority, a public certificate or a cloud-managed certificate, and who renews it.
- The network CIDRs of every proxy or load balancer that will forward traffic to authentik, because these become the trusted proxy list in
AUTHENTIK_LISTEN__TRUSTED_PROXY_CIDRS. - A list of applications and hostnames that will be routed through the proxy, plus access to a staging environment for testing.
Missing any of these usually causes delays later, most often when a team discovers the proxy's egress address is not the address it expected.
Does a wrong proxy setup create security risk for authentik?
Yes. From authentik 2026.8, the server accepts forwarded headers such as X-Forwarded-Proto, X-Forwarded-Host and X-Forwarded-For only from networks listed in the trusted proxy setting. If that list is too broad, clients outside your proxy can supply headers that authentik believes, which weakens its view of the connection and of client addresses. If the list is too narrow, authentik may treat HTTPS traffic as HTTP, which causes mixed content, endless loading or authentication errors. Both failure modes are worth testing explicitly, and your security team should review the CIDR list as a controlled configuration item rather than a convenience setting. For version-specific details, read the authentik 2026.8 release notes.
What does a fixed-scope quote for this work normally include?
DeployOpen agrees the scope, deliverables and timeline in writing before work starts, and most engagements are fixed-scope. A quote follows from that written scope, so it should name the proxies in scope, the domains and applications routed through authentik, the certificate and DNS changes, the staging and production test cases, and the documentation handed over at the end. Items that are not in scope, such as reconfiguring unrelated proxies or changing the identity design, should be listed as exclusions. DeployOpen does not publish a price list. Ask for the written scope first, then compare quotes on the same deliverables. Ongoing support, upgrades and continuous testing are available as retainers and are priced separately from the one-time configuration.
How DeployOpen scopes and supports authentik proxy setups
DeployOpen plans, implements, hardens, documents and supports self-hosted open-source platforms inside your own infrastructure, including the reverse proxy path in front of authentik. Each engagement starts from a written scope that fixes what is configured, tested and handed over before work begins.
How we scope
- Inventory every proxy, load balancer and ingress that will front authentik, including vendor, version and where TLS terminates.
- Record the trusted proxy CIDRs for each hop and confirm the authentik version against the 2026.8 forwarded header rules.
- Agree in writing which hostnames, protocols, websocket paths and forward auth applications are in scope before work starts.
How we build
- Configure forwarded headers and trusted proxy networks on the reverse proxy and in AUTHENTIK_LISTEN__TRUSTED_PROXY_CIDRS.
- Verify HTTPS detection, login redirects, websocket connections and outpost traffic with test sign-ins from each network path.
- Check the listen address behavior introduced in 2026.5 against your IPv4 and IPv6 network configuration before go-live.
How we hand over
- Deliver the proxy configuration files, the authentik settings used and a written record of the trusted network ranges.
- Document the symptoms of a wrong setup, such as mixed content or endless loading, with the checks your team should run first.
- Walk your operations and security engineers through the configuration, change process and rollback steps for future proxy edits.
How we support
- Engagements are fixed-scope, so changes to proxies, networks or authentik versions are scoped and quoted separately.
- Ongoing support, upgrades and continuous testing are available as a retainer that covers proxy changes after each authentik release.
- Ask any partner to confirm how they will re-test trusted proxy settings when your load balancer, CDN or ingress controller changes.

