Release 2022.1
Breaking changes
This release mostly removes legacy fields and features that have been deprecated for several releases.
-
LDAP Outposts:
This release removes the
accountStatus
andsuperuser
fields. Use the direct replacementsgoauthentik.io/ldap/active
andgoauthentik.io/ldap/superuser
. -
Proxy Outposts:
This release consolidates headers sent by authentik to have a common prefix.
The following headers have been removed:
- X-Auth-Username, use
X-authentik-username
- X-Auth-Groups, use
X-authentik-groups
- X-Forwarded-Email, use
X-authentik-email
- X-Forwarded-Preferred-Username, use
X-authentik-username
- X-Forwarded-User, use
X-authentik-uid
The proxy now also sets the host header based on what is configured as upstream in the proxy provider. The original Host is forwarded as
X-Forwarded-Host
.Additionally, the header requirements for nginx have changed. Either a
X-Original-URL
orX-Original-URI
header are now required. See the Proxy provider documentation for updated snippets. - X-Auth-Username, use
-
API:
The deprecated /api/v2beta/ Endpoint is removed. Use
/api/v3/
. -
Backup:
The integrated backup has been deprecated for the following reasons:
- Difficulty with restores not working properly
- Inflexible configuration (fixed retention, limited to once a day, only S3 supported)
- Most users will already have an existing backup infrastructure
Minor changes/fixes
- core: dont return 404 when trying to view key of expired token
- crypto: fully parse certificate on validation in serializer to prevent invalid certificates from being saved
- flows: handle error if flow title contains invalid format string
- internal: route traffic to proxy providers based on cookie domain when multiple domain-level providers exist
- internal: use math.MaxInt for compatibility
- lifecycle: add early check for missing/invalid secret key
- outposts/proxyv2: allow access to /outpost.goauthentik.io urls in forward auth mode to make routing in nginx/traefik easier
- outposts/proxyv2: fix before-redirect url not being saved in proxy mode
- outposts/proxyv2: fix JWKS url pointing to localhost on embedded outpost
- providers/oauth2: change default redirect uri behaviour; set first used url when blank and use star for wildcard
- root: allow customisation of ports in compose without override
- root: decrease to 10 backup history
- root: fix backups running every minute instead of once
- stages/authenticator_webauthn: make more WebAuthn options configurable
- web: add polyfill for Intl.ListFormat
- web: directly read csrf token before injecting into request
- web: fix double plural in label
- web/admin: also set embedded outpost host when it doesn't include scheme
- web/admin: fix missing configure flow setting on webuahtn setup stage form
- web/flows: remove node directly instead of using removeChild()
Fixed in 2022.1.2
- internal/proxyv2: only allow access to /outpost.goauthentik.io in nginx mode when forward url could be extracted
- lib: disable backup by default, add note to configuration
- lifecycle: replace lowercase, deprecated prometheus_multiproc_dir
- outposts: allow custom label for docker containers
- policies/hibp: ensure password is encodable
- providers/proxy: add PathPrefix to auto-traefik labels
- root: upgrade python dependencies
Fixed in 2022.1.3
- internal: add support for X-Original-URL
- internal: add optional debug server listening on 9900
- internal: don't override server header
- internal: start adding tests to outpost
- lifecycle: make secret_key warning more prominent
- lifecycle: wait for db in worker
- outposts/ldap: Fix more case sensitivity issues. (#2144)
- outposts/proxy: add more test cases for domain-level auth
- outposts/proxy: fix potential empty redirect, add tests
- outposts/proxy: trace full headers to debug
- providers/proxy: fix traefik label
- root: add max-requests for gunicorn and max tasks for celery
- root: fix redis passwords not being encoded correctly
- web/admin: fix links which look like labels
- web/admin: fix SMS Stage form not working
Fixed in 2022.1.4
- core: fix view_token permission not being assigned on token creation for non-admin user
- lifecycle: remove gunicorn reload option
- lifecycle: send analytics in gunicorn config to decrease outgoing requests when workers get restarted
- providers/proxy: add support for X-Original-URI in nginx, better handle missing headers and report errors to authentik
- providers/proxy: don't include hostname and scheme in redirect when we only got a path and not a full URL
- providers/proxy: fix routing for external_host when using forward_auth_domain
- providers/proxy: set traefik labels using object_naming_template instead of UUID
- sources/ldap: add list_flatten function to property mappings, enable on managed LDAP mappings
- web: add es locale
- web: add pl locale
- web/admin: only check first half of locale when detecting
- web/flows: fix width on flow container
- web/user: include locale code in locale selection
Fixed in 2022.1.5
- build(deps): bump uvicorn from 0.17.1 to 0.17.3 (#2229)
- core: allow formatting strings to be used for applications' launch URLs
- internal: don't attempt to lookup SNI Certificate if no SNI is sent
- internal: fix CSRF error caused by Host header
- internal: improve error handling for internal reverse proxy
- internal: remove uvicorn server header
- internal: trace headers and url for backend requests
- outposts: fix channel not always having a logger attribute
- outposts: fix compare_ports to support both service and container ports
- outposts: fix service reconciler re-creating services
- outposts: remove node_port on V1ServicePort checks to prevent service creation loops
- providers/proxy: fix Host/:Authority not being modified
- providers/proxy: fix nil error in claims
- providers/proxy: improve error handling for invalid backend_override
- sources/ldap: log entire exception
- sources/saml: fix incorrect ProtocolBinding being sent
- sources/saml: fix server error
- stages/authenticator_validate: handle non-existent device_challenges
- web/admin: fix mismatched icons in overview and lists
Upgrading
This release does not introduce any new requirements.
docker-compose
Download the docker-compose file for 2022.1 from here. Afterwards, simply run docker-compose up -d
.
Kubernetes
Update your values to use the new images:
image:
repository: ghcr.io/goauthentik/server
tag: 2022.1.1