Correct the forward authentication configuration template for Caddy The directives were not executed in the given order, but instead, using the implicit sequence defined in https://caddyserver.com/docs/caddyfile/directives#directive-order. Surrounding the directives with route {} fixes this. Signed-off-by: Andreas <43118918+eulores@users.noreply.github.com>
		
			
				
	
	
		
			34 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
Use the following configuration:
 | 
						|
 | 
						|
```
 | 
						|
app.company {
 | 
						|
    # directive execution order is only as stated if enclosed with route.
 | 
						|
    route {
 | 
						|
        # always forward outpost path to actual outpost
 | 
						|
        reverse_proxy /outpost.goauthentik.io/* http://outpost.company:9000
 | 
						|
 | 
						|
        # forward authentication to outpost
 | 
						|
        forward_auth http://outpost.company:9000 {
 | 
						|
            uri /outpost.goauthentik.io/auth/caddy
 | 
						|
 | 
						|
            # capitalization of the headers is important, otherwise they will be empty
 | 
						|
            copy_headers X-Authentik-Username X-Authentik-Groups X-Authentik-Email X-Authentik-Name X-Authentik-Uid X-Authentik-Jwt X-Authentik-Meta-Jwks X-Authentik-Meta-Outpost X-Authentik-Meta-Provider X-Authentik-Meta-App X-Authentik-Meta-Version
 | 
						|
 | 
						|
            # optional, in this config trust all private ranges, should probably be set to the outposts IP
 | 
						|
            trusted_proxies private_ranges
 | 
						|
        }
 | 
						|
 | 
						|
        # actual site configuration below, for example
 | 
						|
        reverse_proxy localhost:1234
 | 
						|
    }
 | 
						|
}
 | 
						|
```
 | 
						|
 | 
						|
If you're trying to proxy to an upstream over HTTPS, you need to set the `Host` header to the value they expect for it to work correctly.
 | 
						|
 | 
						|
```
 | 
						|
reverse_proxy /outpost.goauthentik.io/* https://outpost.company {
 | 
						|
    header_up Host {http.reverse_proxy.upstream.hostport}
 | 
						|
}
 | 
						|
```
 |