outposts/proxy: allow setting no-redirect via header or query param
closes #4455 Signed-off-by: Jens Langhammer <jens@goauthentik.io>
This commit is contained in:
parent
75d4246b79
commit
19ee98b36d
|
@ -35,7 +35,8 @@ func (a *Application) redirectToStart(rw http.ResponseWriter, r *http.Request) {
|
||||||
if err != nil {
|
if err != nil {
|
||||||
a.log.WithError(err).Warning("failed to decode session")
|
a.log.WithError(err).Warning("failed to decode session")
|
||||||
}
|
}
|
||||||
if r.Header.Get(constants.HeaderNoRedirect) == "true" {
|
if r.Header.Get(constants.HeaderNoRedirect) != "" ||
|
||||||
|
r.URL.Query().Get(strings.ToLower(constants.HeaderNoRedirect)) != "" {
|
||||||
rw.WriteHeader(401)
|
rw.WriteHeader(401)
|
||||||
er := a.errorTemplates.Execute(rw, ErrorPageData{
|
er := a.errorTemplates.Execute(rw, ErrorPageData{
|
||||||
Title: "Unauthenticated",
|
Title: "Unauthenticated",
|
||||||
|
|
|
@ -21,7 +21,11 @@ If the user does not have a matching attribute, authentik falls back to using th
|
||||||
|
|
||||||
## Receiving authentication
|
## Receiving authentication
|
||||||
|
|
||||||
It is recommended to set the `X-Authentik-No-Redirect` header to `true` to prevent redirects when sending requests via the below methods. This prevents additional load when unauthenticated requests are retried and all get redirected to a flow executor.
|
By default, when the proxy provider receives credentials that aren't valid for itself, it will start a normal authentication flow, and redirect to the flow start page. Some applications might require a 401 response to prompt for credentials.
|
||||||
|
|
||||||
|
To always return a 401 response when authentication headers are missing/invalid, you can either set the `X-Authentik-No-Redirect` header to any value or the query parameter `x-authentik-no-redirect` to any value.
|
||||||
|
|
||||||
|
This is the default behaviour as some applications use the Authorization header for themselves, and as such if the proxy provider would check it, these applications would be inaccessible.
|
||||||
|
|
||||||
### Receiving HTTP Basic authentication
|
### Receiving HTTP Basic authentication
|
||||||
|
|
||||||
|
|
Reference in New Issue