website: Bump prettier from 3.3.3 to 3.4.1 in /website (#12205)

* website: Bump prettier from 3.3.3 to 3.4.1 in /website

Bumps [prettier](https://github.com/prettier/prettier) from 3.3.3 to 3.4.1.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.3.3...3.4.1)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* update formatting

Signed-off-by: Jens Langhammer <jens@goauthentik.io>

* sigh

Signed-off-by: Jens Langhammer <jens@goauthentik.io>

* disable flaky test

Signed-off-by: Jens Langhammer <jens@goauthentik.io>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Jens Langhammer <jens@goauthentik.io>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jens Langhammer <jens@goauthentik.io>
This commit is contained in:
dependabot[bot]
2024-11-27 15:14:19 +01:00
committed by GitHub
parent 6d2072a730
commit 3996bdac33
252 changed files with 22143 additions and 22140 deletions

View File

@ -5,14 +5,14 @@ slug: "/releases/2021.1"
## Headline Changes
- New versioning schema (year.month.release)
- Add global email settings
- New versioning schema (year.month.release)
- Add global email settings
In previous versions, you had to configure email connection details per [Email Stage](../../add-secure-apps/flows-stages/stages/email/index.mdx). Now, you can (and should) configure global settings.
This is documented under the [docker-compose](../../install-config/install/docker-compose.mdx) and [Kubernetes](../../install-config/install/kubernetes.md) sections.
- New notification system
- New notification system
More info can be found under [Notifications](../../sys-mgmt/events/notifications.md) and [Transports](../../sys-mgmt/events/transports.md).
@ -22,37 +22,37 @@ slug: "/releases/2021.1"
## Fixes
- events: create event when system task fails
- helm: fix old reference to static secret_key
- helm: fix s3 secret key and email password not being base64 encoded
- policies: fix logic error for sync mode
- stages/email: fix email task not falling back to use_global_settings
- events: create event when system task fails
- helm: fix old reference to static secret_key
- helm: fix s3 secret key and email password not being base64 encoded
- policies: fix logic error for sync mode
- stages/email: fix email task not falling back to use_global_settings
### Fixed in 2021.1.2
- sources/\*: Add source to flow context, so source is logged during login
- outposts: Fix outpost not correctly updating on outpost modification
- outposts: Improve drift detection on kubernetes
- providers/saml: Fix metadata not being signed when signature is enabled
- policies: Improve error handling, ensure original stacktrace is preserved
- sources/\*: Add source to flow context, so source is logged during login
- outposts: Fix outpost not correctly updating on outpost modification
- outposts: Improve drift detection on kubernetes
- providers/saml: Fix metadata not being signed when signature is enabled
- policies: Improve error handling, ensure original stacktrace is preserved
### Fixed in 2021.1.3
- admin: handle FlowNonApplicableException during flow plan
- flows: fix FlowNonApplicableException not being Sentry Ignored
- lifecycle: fix typo causing single process in docker-compose
- admin: handle FlowNonApplicableException during flow plan
- flows: fix FlowNonApplicableException not being Sentry Ignored
- lifecycle: fix typo causing single process in docker-compose
### Fixed in 2021.1.4
- admin: fix providers not showing SAML Import on empty state
- core: only cache Applications API when no filtering is done
- events: fix email template for notifications
- lib: fix ak_is_group_member checking wrong groups
- providers/saml: add support for WindowsDomainQualifiedName, add docs for NameID
- providers/saml: import SAML Provider with all autogenerated mappings
- providers/saml: make NameID configurable using a Property Mapping
- providers/saml: update default OIDs for default property mappings
- web: fix site-shell being cut off when not full height
- admin: fix providers not showing SAML Import on empty state
- core: only cache Applications API when no filtering is done
- events: fix email template for notifications
- lib: fix ak_is_group_member checking wrong groups
- providers/saml: add support for WindowsDomainQualifiedName, add docs for NameID
- providers/saml: import SAML Provider with all autogenerated mappings
- providers/saml: make NameID configurable using a Property Mapping
- providers/saml: update default OIDs for default property mappings
- web: fix site-shell being cut off when not full height
## Upgrading

View File

@ -5,17 +5,17 @@ slug: "/releases/2021.10"
## Headline Changes
- Flow Inspector
- Flow Inspector
To better understand how a flow works, and why things might not be working as intended, you can now launch Flows with an inspector enabled. This is simply triggered by adding a `?inspector` to the URL. Currently, only superuser have the permission to access the Inspector.
The inspector shows the current stage, previous stages, next planned stages, and the current flow context.
- SMS Authenticator
- SMS Authenticator
You can now use SMS-based TOTP authenticators. This new Stage supports both Twilio, and a generic API endpoint, if using another provider. This stage does not have to be used for authentication, it can simply be used during enrollment to verify your users phone numbers.
- Sign in with Apple
- Sign in with Apple
It is now possible to add an Apple OAuth Source, to allow your users to authenticate with their Apple ID.
@ -23,201 +23,201 @@ A huge shoutout to all the people that contributed, helped test and also transla
## Minor changes
- \*: Squash Migrations (#1593)
- admin: clear update notification when notification's version matches current version
- cmd: prevent outposts from panicking when failing to get their config
- core: add default for user's settings attribute
- core: add settings serializer to user/me and update_self endpoints, saved in a key in attributes
- core: improve detection for s3 settings to trigger backup
- core: include group uuids in self serializer
- core: make user's name field fully optional
- flows: inspector (#1469)
- internal: add internal healthchecking to prevent websocket errors
- internal/proxyv2: improve error handling when configuring app
- lifecycle: bump celery healthcheck to 5s timeout
- lifecycle: only lock database when system migrations need to be applied, and during django migrations, and don't double unlock
- lifecycle: only set prometheus_multiproc_dir in ak wrapper to prevent full disk on worker
- managed: don't run managed reconciler in foreground on startup
- outpost/proxy: fix missing negation for internal host ssl verification
- outposts: add additional error checking for docker controller
- outposts: Adding more flexibility to outposts in Kubernetes. (#1617)
- outposts: allow disabling of docker controller port mapping
- outposts: check ports of deployment in kubernetes outpost controller
- outposts: don't always build permissions on outpost.user access, only in signals and tasks
- outposts: fallback to known-good outpost image if configured image cannot be pulled
- outposts: fix error when comparing ports in docker controller when port mapping is disabled
- outposts: handle k8s 422 response code by recreating objects
- outposts: rename docker_image_base to container_image_base, since its not docker specific
- outposts/ldap: Support hard coded `uidNumber` and `gidNumber`. (#1582)
- outposts/proxy: add new headers with unified naming
- outposts/proxy: fix duplicate protocol in domain auth mode
- outposts/proxy: show full error message when user is authenticated
- policies: add additional filters to create flow charts on frontend
- policies/password: add extra sub_text field in tests
- providers/ldap: use RDN when using posixGroup's memberUid attribute (#1514)
- providers/proxy: always check ingress secret in kubernetes controller
- providers/proxy: update ingress controller to work with k8s 1.22
- recovery: handle error when user doesn't exist
- root: add docker-native healthcheck for web and celery
- root: add translation for backend strings
- root: coverage with toml support
- root: fix error with sentry proxy
- root: migrate docker images to netlify proxy (#1603)
- root: remove redundant internal network from compose
- root: remove structlog.processors.format_exc_info for new structlog version
- root: Use fully qualified names for docker bases base images. (#1490)
- sources/ldap: add support for Active Directory `userAccountControl` attribute
- sources/ldap: don't sync ldap source when no property mappings are set
- sources/ldap: fix logic error in Active Directory account disabled status
- sources/oauth: add Sign in with Apple (#1635)
- stages/authenticator_sms: add generic provider (#1595)
- stages/authenticator_sms: Add SMS Authenticator Stage (#1577)
- stages/authenticator_validate: create a default authenticator validate stage with sensible defaults
- stages/email: add activate_user_on_success flag, add for all example flows
- stages/prompt: add sub_text field to add HTML below prompt fields
- stages/prompt: fix sub_text not allowing blank
- stages/prompt: fix wrong field type of field_key
- stages/user_login: add check for user.is_active and tests
- stages/user_write: allow recursive writing to user.attributes
- web: add locale detection
- web: ensure fallback locale is loaded
- web: fix rendering of token copy button in dark mode
- web: fix strings not being translated at all when matching browser locale not found
- web: make table pagination size user-configurable
- web: new default flow background
- web: Translate /web/src/locales/en.po in fr_FR (#1506)
- web/admin: add fallback font for doughnut charts
- web/admin: default to warning state for backup task
- web/admin: don't require username nor name for activate/deactivate toggles
- web/admin: fix description for flow import
- web/admin: fix LDAP Source form not exposing syncParentGroup
- web/admin: fix search group label
- web/admin: fix SMS Authenticator stage not loading state correctly
- web/admin: improve visibility of oauth rsa key
- web/admin: only show outpost deployment info when not embedded
- web/admin: truncate prompt label when too long
- web/elements: fix initialLoad not being done when viewportCheck was disabled
- web/elements: fix model form always loading when viewport check is disabled
- web/elements: use dedicated button for search clear instead of webkit exclusive one
- web/flows: adjust message for email stage
- web/user: don't show managed tokens in user interface
- web/user: initial optimisation for smaller screens
- web/user: load interface settings from user settings
- \*: Squash Migrations (#1593)
- admin: clear update notification when notification's version matches current version
- cmd: prevent outposts from panicking when failing to get their config
- core: add default for user's settings attribute
- core: add settings serializer to user/me and update_self endpoints, saved in a key in attributes
- core: improve detection for s3 settings to trigger backup
- core: include group uuids in self serializer
- core: make user's name field fully optional
- flows: inspector (#1469)
- internal: add internal healthchecking to prevent websocket errors
- internal/proxyv2: improve error handling when configuring app
- lifecycle: bump celery healthcheck to 5s timeout
- lifecycle: only lock database when system migrations need to be applied, and during django migrations, and don't double unlock
- lifecycle: only set prometheus_multiproc_dir in ak wrapper to prevent full disk on worker
- managed: don't run managed reconciler in foreground on startup
- outpost/proxy: fix missing negation for internal host ssl verification
- outposts: add additional error checking for docker controller
- outposts: Adding more flexibility to outposts in Kubernetes. (#1617)
- outposts: allow disabling of docker controller port mapping
- outposts: check ports of deployment in kubernetes outpost controller
- outposts: don't always build permissions on outpost.user access, only in signals and tasks
- outposts: fallback to known-good outpost image if configured image cannot be pulled
- outposts: fix error when comparing ports in docker controller when port mapping is disabled
- outposts: handle k8s 422 response code by recreating objects
- outposts: rename docker_image_base to container_image_base, since its not docker specific
- outposts/ldap: Support hard coded `uidNumber` and `gidNumber`. (#1582)
- outposts/proxy: add new headers with unified naming
- outposts/proxy: fix duplicate protocol in domain auth mode
- outposts/proxy: show full error message when user is authenticated
- policies: add additional filters to create flow charts on frontend
- policies/password: add extra sub_text field in tests
- providers/ldap: use RDN when using posixGroup's memberUid attribute (#1514)
- providers/proxy: always check ingress secret in kubernetes controller
- providers/proxy: update ingress controller to work with k8s 1.22
- recovery: handle error when user doesn't exist
- root: add docker-native healthcheck for web and celery
- root: add translation for backend strings
- root: coverage with toml support
- root: fix error with sentry proxy
- root: migrate docker images to netlify proxy (#1603)
- root: remove redundant internal network from compose
- root: remove structlog.processors.format_exc_info for new structlog version
- root: Use fully qualified names for docker bases base images. (#1490)
- sources/ldap: add support for Active Directory `userAccountControl` attribute
- sources/ldap: don't sync ldap source when no property mappings are set
- sources/ldap: fix logic error in Active Directory account disabled status
- sources/oauth: add Sign in with Apple (#1635)
- stages/authenticator_sms: add generic provider (#1595)
- stages/authenticator_sms: Add SMS Authenticator Stage (#1577)
- stages/authenticator_validate: create a default authenticator validate stage with sensible defaults
- stages/email: add activate_user_on_success flag, add for all example flows
- stages/prompt: add sub_text field to add HTML below prompt fields
- stages/prompt: fix sub_text not allowing blank
- stages/prompt: fix wrong field type of field_key
- stages/user_login: add check for user.is_active and tests
- stages/user_write: allow recursive writing to user.attributes
- web: add locale detection
- web: ensure fallback locale is loaded
- web: fix rendering of token copy button in dark mode
- web: fix strings not being translated at all when matching browser locale not found
- web: make table pagination size user-configurable
- web: new default flow background
- web: Translate /web/src/locales/en.po in fr_FR (#1506)
- web/admin: add fallback font for doughnut charts
- web/admin: default to warning state for backup task
- web/admin: don't require username nor name for activate/deactivate toggles
- web/admin: fix description for flow import
- web/admin: fix LDAP Source form not exposing syncParentGroup
- web/admin: fix search group label
- web/admin: fix SMS Authenticator stage not loading state correctly
- web/admin: improve visibility of oauth rsa key
- web/admin: only show outpost deployment info when not embedded
- web/admin: truncate prompt label when too long
- web/elements: fix initialLoad not being done when viewportCheck was disabled
- web/elements: fix model form always loading when viewport check is disabled
- web/elements: use dedicated button for search clear instead of webkit exclusive one
- web/flows: adjust message for email stage
- web/user: don't show managed tokens in user interface
- web/user: initial optimisation for smaller screens
- web/user: load interface settings from user settings
## Fixed in 2021.10.1-rc2
- core: add user flag to prevent users from changing their usernames
- core: log user for http requests
- flows: clear cache when deleting bindings
- outpost/ldap: fix logging for mismatched provider
- root: add cookie domain setting
- sources/oauth: add choices to oauth provider_type
- web: disable Sentry.showReportDialog
- web/flows: showing of authentik logo in flow executor
- web/flows: fix authenticator device selection not updating
- web/flows: show cancel link when choosing authenticator challenge
- core: add user flag to prevent users from changing their usernames
- core: log user for http requests
- flows: clear cache when deleting bindings
- outpost/ldap: fix logging for mismatched provider
- root: add cookie domain setting
- sources/oauth: add choices to oauth provider_type
- web: disable Sentry.showReportDialog
- web/flows: showing of authentik logo in flow executor
- web/flows: fix authenticator device selection not updating
- web/flows: show cancel link when choosing authenticator challenge
## Fixed in 2021.10.1-rc3
- api: fix error when connection to websocket via secret_key
- core: add toggle to completely disable backup mechanism
- core: add USER_ATTRIBUTE_CHANGE_EMAIL
- events: fix error when notification transport doesn't exist anymore
- outposts: fix docker controller not using object_naming_template
- providers/oauth2: fallback to uid if UPN was selected but isn't available
- providers/oauth2: fix events being created from /application/o/authorize/
- sources/ldap: prevent key `users` from being set as this is an M2M relation
- sources/ldap: skip values which are of type bytes
- api: fix error when connection to websocket via secret_key
- core: add toggle to completely disable backup mechanism
- core: add USER_ATTRIBUTE_CHANGE_EMAIL
- events: fix error when notification transport doesn't exist anymore
- outposts: fix docker controller not using object_naming_template
- providers/oauth2: fallback to uid if UPN was selected but isn't available
- providers/oauth2: fix events being created from /application/o/authorize/
- sources/ldap: prevent key `users` from being set as this is an M2M relation
- sources/ldap: skip values which are of type bytes
## Fixed in 2021.10.1
- core: add API for all user-source connections
- core: add API to list all authenticator devices
- core: add created field to source connection
- flows: optimise stage user_settings API
- outposts: separate websocket re-connection logic to decrease requests on reconnect
- root: pin node images to v16
- root: update golang ldap server package
- web/user: fix wrong device being selected in user's mfa update form
- web/user: rework MFA Device UI to support multiple devices
- web/user: update form to update mfa devices
- core: add API for all user-source connections
- core: add API to list all authenticator devices
- core: add created field to source connection
- flows: optimise stage user_settings API
- outposts: separate websocket re-connection logic to decrease requests on reconnect
- root: pin node images to v16
- root: update golang ldap server package
- web/user: fix wrong device being selected in user's mfa update form
- web/user: rework MFA Device UI to support multiple devices
- web/user: update form to update mfa devices
## Fixed in 2021.10.2
- api: replace django sentry proxy with go proxy to prevent login issues
- providers/proxy: allow configuring of additional scope mappings for proxy
- providers/saml: fix error on missing AssertionConsumerServiceURL, fall back to default ACS
- root: fix Detection of S3 settings for backups
- root: fix postgres install on bullseye
- root: update base images for outposts
- root: update to buster
- stages/identification: add show_source_labels option, to show labels for sources
- stages/invitation: don't throw 404 error in stage
- stages/invitation: remove invitation from plan context after deletion
- stages/prompt: fix type in Prompt not having enum set
- web/flows: fix invalid validation for static tokens
- web/flows: fix sub_text not rendering for static fields
- web/user: fix configureUrl not being passed to `<ak-user-settings-password>`
- api: replace django sentry proxy with go proxy to prevent login issues
- providers/proxy: allow configuring of additional scope mappings for proxy
- providers/saml: fix error on missing AssertionConsumerServiceURL, fall back to default ACS
- root: fix Detection of S3 settings for backups
- root: fix postgres install on bullseye
- root: update base images for outposts
- root: update to buster
- stages/identification: add show_source_labels option, to show labels for sources
- stages/invitation: don't throw 404 error in stage
- stages/invitation: remove invitation from plan context after deletion
- stages/prompt: fix type in Prompt not having enum set
- web/flows: fix invalid validation for static tokens
- web/flows: fix sub_text not rendering for static fields
- web/user: fix configureUrl not being passed to `<ak-user-settings-password>`
## Fixed in 2021.10.3
- admin: improve check to remove version notifications
- cmd/server: improve cleanup on shutdown
- core: add command to output full config
- core: fix auth_method for tokens
- core: include parent group name
- core: make group membership lookup respect parent groups (upwards)
- events: ignore creation/deletion of AuthenticatedSession objects
- internal: start embedded outpost directly after backend is healthy instead of waiting
- lifecycle: revert to non-h11 worker
- outpost/ldap: don't cleanup user info as it is overwritten on bind
- providers/\*: include list of outposts
- providers/ldap: add/squash migrations
- providers/ldap: memory Query (#1681)
- recovery: add create_admin_group management command
- root: fix defaults for EMAIL_USE_TLS
- root: improve compose detection, add anonymous stats
- root: keep last 30 backups
- sources/ldap: remove deprecated default
- sources/oauth: set prompt=none for Discord provider
- sources/plex: allow users to connect their plex account without login flow
- sources/plex: use exception_to_string in tasks
- stages/authenticator\_\*: add default name for authenticators
- stages/identification: only allow limited challenges for login sources
- stages/identification: use random sleep
- stages/prompt: add text_read_only field
- stages/prompt: default prompts to the current value of the context
- stages/prompt: only set placeholder when in context
- stages/prompt: set field placeholder based on plan context
- stages/prompt: use initial instead of default
- web: fix linting errors by adding a wrapper for next param
- web/admin: only show flows with an invitation stage configured instead of all enrollment flows
- web/admin: show warning on invitation list when no stage exists or is bound
- web/admin: show warning on provider when not used with outpost
- web/flows: fix authenticator_validate not allowing alphanumeric codes due to empty pattern
- web/flows: improve display of static tokens
- web/user: fix ak-user-settings-password getting wrong configureUrl
- web/user: fix device type for static tokens
- web/user: fix empty page when no sources to connect exist
- web/user: fix redirect after starting configuration flow from user interface
- admin: improve check to remove version notifications
- cmd/server: improve cleanup on shutdown
- core: add command to output full config
- core: fix auth_method for tokens
- core: include parent group name
- core: make group membership lookup respect parent groups (upwards)
- events: ignore creation/deletion of AuthenticatedSession objects
- internal: start embedded outpost directly after backend is healthy instead of waiting
- lifecycle: revert to non-h11 worker
- outpost/ldap: don't cleanup user info as it is overwritten on bind
- providers/\*: include list of outposts
- providers/ldap: add/squash migrations
- providers/ldap: memory Query (#1681)
- recovery: add create_admin_group management command
- root: fix defaults for EMAIL_USE_TLS
- root: improve compose detection, add anonymous stats
- root: keep last 30 backups
- sources/ldap: remove deprecated default
- sources/oauth: set prompt=none for Discord provider
- sources/plex: allow users to connect their plex account without login flow
- sources/plex: use exception_to_string in tasks
- stages/authenticator\_\*: add default name for authenticators
- stages/identification: only allow limited challenges for login sources
- stages/identification: use random sleep
- stages/prompt: add text_read_only field
- stages/prompt: default prompts to the current value of the context
- stages/prompt: only set placeholder when in context
- stages/prompt: set field placeholder based on plan context
- stages/prompt: use initial instead of default
- web: fix linting errors by adding a wrapper for next param
- web/admin: only show flows with an invitation stage configured instead of all enrollment flows
- web/admin: show warning on invitation list when no stage exists or is bound
- web/admin: show warning on provider when not used with outpost
- web/flows: fix authenticator_validate not allowing alphanumeric codes due to empty pattern
- web/flows: improve display of static tokens
- web/user: fix ak-user-settings-password getting wrong configureUrl
- web/user: fix device type for static tokens
- web/user: fix empty page when no sources to connect exist
- web/user: fix redirect after starting configuration flow from user interface
## Fixed in 2021.10.4
- core: force lowercase emails for gravatar usage
- outposts: fix MFA Challenges not working with outpost
- outposts/ldap: fix logic error in cached ldap searcher
- outposts/proxy: fix static files not being served in proxy mode
- providers/proxy: return list of configured scope names so outpost requests custom scopes
- root: use python slim-bullseye as base
- sources/ldap: fix user/group sync overwriting attributes instead of merging them
- sources/ldap: set connect/receive timeout (default to 15s)
- stages/\*: disable trim_whitespace on important fields
- stages/authenticator_duo: fix devices created with name
- stages/authenticator_validate: enable all device classes by default
- web: write interfaces to different folders and remove custom chunk names
- web/admin: fix display issues with flow execute buttons
- web/admin: show warnings above tab bar
- web/admin: use more natural default ordering for objects
- core: force lowercase emails for gravatar usage
- outposts: fix MFA Challenges not working with outpost
- outposts/ldap: fix logic error in cached ldap searcher
- outposts/proxy: fix static files not being served in proxy mode
- providers/proxy: return list of configured scope names so outpost requests custom scopes
- root: use python slim-bullseye as base
- sources/ldap: fix user/group sync overwriting attributes instead of merging them
- sources/ldap: set connect/receive timeout (default to 15s)
- stages/\*: disable trim_whitespace on important fields
- stages/authenticator_duo: fix devices created with name
- stages/authenticator_validate: enable all device classes by default
- web: write interfaces to different folders and remove custom chunk names
- web/admin: fix display issues with flow execute buttons
- web/admin: show warnings above tab bar
- web/admin: use more natural default ordering for objects
## Upgrading

View File

@ -9,252 +9,252 @@ This release does not have any headline features, and mostly fixes bugs.
## Breaking changes
- stages/prompt: Before 2021.12, any policy was required to pass for the result to be considered valid. This has been changed, and now all policies are required to be valid.
- stages/prompt: Before 2021.12, any policy was required to pass for the result to be considered valid. This has been changed, and now all policies are required to be valid.
## Minor changes
- core: make defaults for \_change_email and \_change_username configurable
- core: remove dump_config, handle directly in config loader without booting django, don't check database
- events: add gdpr_compliance option
- internal: fix integrated docs not working
- internal: use runserver when debug for code reload
- lib: add cli option for lib.config
- lib: add improved log to sentry events being sent
- lib: fix custom URL schemes being overwritten
- lib: load json strings in config env variables
- lib: log error for file:// in config
- lifecycle: allow custom worker count in k8s
- lifecycle: improve backup restore by dropping database before
- lifecycle: improve redis connection debug py printing full URL
- outpost: configure error reporting based off of main instance config
- outposts: don't panic when listening for metrics fails
- outposts: reload on signal USR1, fix display of reload offset
- outposts/ldap: copy boundUsers map when running refresh instead of using blank map
- outposts/ldap: fix panic when attempting to update without locked users mutex
- outposts/proxy: continue compiling additional regexes even when one fails
- outposts/proxy: show better error when hostname isn't configured
- outposts/proxy: use disableIndex for static files
- policies/expression: fix ak_user_has_authenticator evaluation when not specifying optional device_type (#1849)
- providers/saml: fix SessionNotOnOrAfter not being included
- root: add lifespan shim to prevent errors
- root: fix settings for managed not loaded
- root: make sentry sample rate configurable
- stages/authenticator_validate: catch error when attempting to configure user without flow
- stages/email: fix missing component in response when retrying email send
- stages/email: minify email css template
- stages/email: prevent error with duplicate token
- web: improve dark theme for vertical tabs
- web: only show applications with http link
- web/admin: allow flow edit on flow view page
- web/admin: fix actions column on ip reputation page
- web/admin: fix Forms with file uploads not handling errors correctly
- web/admin: make object view pages more consistent
- web/admin: make user clickable for bound policies list
- web/admin: redesign provider pages to provide more info
- web/admin: show changelog on user info page
- web/admin: unify rendering and sorting of user lists
- web/elements: add new API to store attributes in URL, use for table and tabs
- web/elements: allow app.model names for ak-object-changelog
- web/elements: allow multiple tabs with different state
- web/flows: fix spinner during webauthn not centred
- web/flows: update default background
- web/user: fix filtering for applications based on launchURL
- web/user: fix height issues on user interface
- core: make defaults for \_change_email and \_change_username configurable
- core: remove dump_config, handle directly in config loader without booting django, don't check database
- events: add gdpr_compliance option
- internal: fix integrated docs not working
- internal: use runserver when debug for code reload
- lib: add cli option for lib.config
- lib: add improved log to sentry events being sent
- lib: fix custom URL schemes being overwritten
- lib: load json strings in config env variables
- lib: log error for file:// in config
- lifecycle: allow custom worker count in k8s
- lifecycle: improve backup restore by dropping database before
- lifecycle: improve redis connection debug py printing full URL
- outpost: configure error reporting based off of main instance config
- outposts: don't panic when listening for metrics fails
- outposts: reload on signal USR1, fix display of reload offset
- outposts/ldap: copy boundUsers map when running refresh instead of using blank map
- outposts/ldap: fix panic when attempting to update without locked users mutex
- outposts/proxy: continue compiling additional regexes even when one fails
- outposts/proxy: show better error when hostname isn't configured
- outposts/proxy: use disableIndex for static files
- policies/expression: fix ak_user_has_authenticator evaluation when not specifying optional device_type (#1849)
- providers/saml: fix SessionNotOnOrAfter not being included
- root: add lifespan shim to prevent errors
- root: fix settings for managed not loaded
- root: make sentry sample rate configurable
- stages/authenticator_validate: catch error when attempting to configure user without flow
- stages/email: fix missing component in response when retrying email send
- stages/email: minify email css template
- stages/email: prevent error with duplicate token
- web: improve dark theme for vertical tabs
- web: only show applications with http link
- web/admin: allow flow edit on flow view page
- web/admin: fix actions column on ip reputation page
- web/admin: fix Forms with file uploads not handling errors correctly
- web/admin: make object view pages more consistent
- web/admin: make user clickable for bound policies list
- web/admin: redesign provider pages to provide more info
- web/admin: show changelog on user info page
- web/admin: unify rendering and sorting of user lists
- web/elements: add new API to store attributes in URL, use for table and tabs
- web/elements: allow app.model names for ak-object-changelog
- web/elements: allow multiple tabs with different state
- web/flows: fix spinner during webauthn not centred
- web/flows: update default background
- web/user: fix filtering for applications based on launchURL
- web/user: fix height issues on user interface
## Fixed in 2021.12.1-rc2
- \*: don't use go embed to make using custom files easier
- crypto: add certificate discovery to automatically import certificates from lets encrypt
- crypto: fix default API not having an ordering
- outposts: always trigger outpost reconcile on startup
- outposts/ldap: Rework/improve LDAP search logic. (#1687)
- outposts/proxy: make logging fields more consistent
- outposts/proxy: re-add rs256 support
- providers/proxy: fix defaults for traefik integration
- providers/proxy: use wildcard for traefik headers copy
- providers/saml: fix error when using post bindings and user freshly logged in
- providers/saml: fix IndexError in signature check
- sources/ldap: add optional tls verification certificate
- sources/ldap: allow multiple server URIs for loadbalancing and failover
- sources/ldap: don't cache LDAP Connection, use random server
- sources/ldap: handle typeerror during creation of objects when using wrong keyword params
- sources/plex: fix plex token being included in event log
- stages/prompt: fix error when both default and required are set
- web/admin: add spinner to table refresh button to show progress
- web/admin: don't show disabled http basic as red
- web/admin: fix wrong description for reputation policy
- web/flows: fix linting errors
- web/flows: Revise duo authenticator login prompt text (#1872)
- \*: don't use go embed to make using custom files easier
- crypto: add certificate discovery to automatically import certificates from lets encrypt
- crypto: fix default API not having an ordering
- outposts: always trigger outpost reconcile on startup
- outposts/ldap: Rework/improve LDAP search logic. (#1687)
- outposts/proxy: make logging fields more consistent
- outposts/proxy: re-add rs256 support
- providers/proxy: fix defaults for traefik integration
- providers/proxy: use wildcard for traefik headers copy
- providers/saml: fix error when using post bindings and user freshly logged in
- providers/saml: fix IndexError in signature check
- sources/ldap: add optional tls verification certificate
- sources/ldap: allow multiple server URIs for loadbalancing and failover
- sources/ldap: don't cache LDAP Connection, use random server
- sources/ldap: handle typeerror during creation of objects when using wrong keyword params
- sources/plex: fix plex token being included in event log
- stages/prompt: fix error when both default and required are set
- web/admin: add spinner to table refresh button to show progress
- web/admin: don't show disabled http basic as red
- web/admin: fix wrong description for reputation policy
- web/flows: fix linting errors
- web/flows: Revise duo authenticator login prompt text (#1872)
## Fixed in 2021.12.1-rc3
- core: add FlowToken which saves the pickled flow plan, replace standard token in email stage to allow finishing flows in different sessions
- core: fix missing permission check for group creating when creating service account
- outposts/ldap: Fix search case sensitivity. (#1897)
- policies/expression: add ak_call_policy
- providers/saml: add ?force_binding to limit bindings for metadata endpoint
- root: add request_id to celery tasks, prefixed with "task-"
- sources/\*: Allow creation of source connections via API
- stages/prompt: use policyenginemode all
- tests/e2e: add post binding test
- web: fix duplicate classes, make generic icon clickable
- web: fix text colour for bad request on light mode
- web/admin: show outpost warning on application page too
- web/elements: close dropdown when refresh event is dispatched
- web/user: allow custom font-awesome icons for applications
- core: add FlowToken which saves the pickled flow plan, replace standard token in email stage to allow finishing flows in different sessions
- core: fix missing permission check for group creating when creating service account
- outposts/ldap: Fix search case sensitivity. (#1897)
- policies/expression: add ak_call_policy
- providers/saml: add ?force_binding to limit bindings for metadata endpoint
- root: add request_id to celery tasks, prefixed with "task-"
- sources/\*: Allow creation of source connections via API
- stages/prompt: use policyenginemode all
- tests/e2e: add post binding test
- web: fix duplicate classes, make generic icon clickable
- web: fix text colour for bad request on light mode
- web/admin: show outpost warning on application page too
- web/elements: close dropdown when refresh event is dispatched
- web/user: allow custom font-awesome icons for applications
## Fixed in 2021.12.1-rc4
- core: fix error when using invalid key-values in attributes query
- flows: fix error in inspector view
- flows: fix error when trying to print FlowToken objects
- lib: correctly report "faked" IPs to sentry
- outposts: add additional checks for websocket connection
- outposts: cleanup logs for failed binds
- outposts: don't try to create docker client for embedded outpost
- outposts: fix docker controller not stopping containers
- outposts: fix unlabeled transaction
- outposts: handle RuntimeError during websocket connect
- outposts: rewrite re-connect logic without recws
- outposts: set display name for outpost service account
- outposts/ldap: fix searches with mixed casing
- outposts/proxy: use filesystem storage for non-embedded outposts
- policies: don't always clear application cache on post_save
- stagse/authenticator_webauthn: remove pydantic import
- web: fix borders of sidebars in dark mode
- core: fix error when using invalid key-values in attributes query
- flows: fix error in inspector view
- flows: fix error when trying to print FlowToken objects
- lib: correctly report "faked" IPs to sentry
- outposts: add additional checks for websocket connection
- outposts: cleanup logs for failed binds
- outposts: don't try to create docker client for embedded outpost
- outposts: fix docker controller not stopping containers
- outposts: fix unlabeled transaction
- outposts: handle RuntimeError during websocket connect
- outposts: rewrite re-connect logic without recws
- outposts: set display name for outpost service account
- outposts/ldap: fix searches with mixed casing
- outposts/proxy: use filesystem storage for non-embedded outposts
- policies: don't always clear application cache on post_save
- stagse/authenticator_webauthn: remove pydantic import
- web: fix borders of sidebars in dark mode
## Fixed in 2021.12.1-rc5
- crypto: add additional validation before importing a certificate
- events: add flow_execution event type
- events: fix schema for top_per_user
- flows: fix wrong exception being caught in flow inspector
- outposts: reset backoff after successful connect
- outposts/proxy: fix securecookie: the value is too long again, since it can happen even with filesystem storage
- providers/oauth2: add additional logging to show with token path is taken
- providers/oauth2: use generate_key instead of uuid4
- sources/ldap: fix incorrect task names being referenced, use source native slug
- sources/oauth: add initial okta type
- sources/oauth: allow oauth types to override their login button challenge
- sources/oauth: implement apple native sign-in using the apple JS SDK
- sources/oauth: strip parts of custom apple client_id
- stages/authenticator_webauthn: make user_verification configurable
- stages/identification: fix miscalculated sleep
- stages/invitation: use GroupMemberSerializer serializer to prevent all of the user's groups and their users from being returned
- web: add link to open API Browser for API Drawer
- web/admin: add dashboard with user creation/login statistics
- web/admin: fix invalid display for LDAP Source sync status
- web/admin: fix rendering for applications on view page
- web/admin: fix rendering of applications with custom icon
- web/admin: improve wording for froward_auth, don't show setup when using proxy mode
- web/admin: show warning when deleting currently logged in user
- web/admin: update overview page
- web/flows: fix error when attempting to enroll new webauthn device
- crypto: add additional validation before importing a certificate
- events: add flow_execution event type
- events: fix schema for top_per_user
- flows: fix wrong exception being caught in flow inspector
- outposts: reset backoff after successful connect
- outposts/proxy: fix securecookie: the value is too long again, since it can happen even with filesystem storage
- providers/oauth2: add additional logging to show with token path is taken
- providers/oauth2: use generate_key instead of uuid4
- sources/ldap: fix incorrect task names being referenced, use source native slug
- sources/oauth: add initial okta type
- sources/oauth: allow oauth types to override their login button challenge
- sources/oauth: implement apple native sign-in using the apple JS SDK
- sources/oauth: strip parts of custom apple client_id
- stages/authenticator_webauthn: make user_verification configurable
- stages/identification: fix miscalculated sleep
- stages/invitation: use GroupMemberSerializer serializer to prevent all of the user's groups and their users from being returned
- web: add link to open API Browser for API Drawer
- web/admin: add dashboard with user creation/login statistics
- web/admin: fix invalid display for LDAP Source sync status
- web/admin: fix rendering for applications on view page
- web/admin: fix rendering of applications with custom icon
- web/admin: improve wording for froward_auth, don't show setup when using proxy mode
- web/admin: show warning when deleting currently logged in user
- web/admin: update overview page
- web/flows: fix error when attempting to enroll new webauthn device
## Fixed in 2021.12.1
- core: fix error when attempting to provider from cached application
- events: improve app lookup for event creation
- internal: cleanup duplicate and redundant code, properly set sentry SDK scope settings
- lifecycle: add -Ofair to celery
- web/admin: add sidebar to applications
- web/admin: fix notification unread colours not matching on user and admin interface
- web/admin: fix stage related flows not being shown in a list
- web/elements: add Markdown component to improve rendering
- web/elements: add support for sidebar on table page
- web/elements: close notification drawer when clearing all notifications
- core: fix error when attempting to provider from cached application
- events: improve app lookup for event creation
- internal: cleanup duplicate and redundant code, properly set sentry SDK scope settings
- lifecycle: add -Ofair to celery
- web/admin: add sidebar to applications
- web/admin: fix notification unread colours not matching on user and admin interface
- web/admin: fix stage related flows not being shown in a list
- web/elements: add Markdown component to improve rendering
- web/elements: add support for sidebar on table page
- web/elements: close notification drawer when clearing all notifications
## Fixed in 2021.12.2
- core: don't rotate non-api tokens
- crypto: fix private keys not being imported correctly
- outposts: release binary outposts (#1954)
- outposts/proxy: match skipPathRegex against full URL on domain auth
- policies/password: add minimum digits
- providers/oauth2: don't rely on expiry task for access codes and refresh tokens
- sources/oauth: allow writing to user in SourceConnection
- web: ignore instantSearchSDKJSBridgeClearHighlight error on edge on iOS
- web/admin: fix background colour for application sidebar
- web/elements: fix border between search buttons
- core: don't rotate non-api tokens
- crypto: fix private keys not being imported correctly
- outposts: release binary outposts (#1954)
- outposts/proxy: match skipPathRegex against full URL on domain auth
- policies/password: add minimum digits
- providers/oauth2: don't rely on expiry task for access codes and refresh tokens
- sources/oauth: allow writing to user in SourceConnection
- web: ignore instantSearchSDKJSBridgeClearHighlight error on edge on iOS
- web/admin: fix background colour for application sidebar
- web/elements: fix border between search buttons
## Fixed in 2021.12.3
- \*: revert to using GHCR directly
- core: fix error when getting launch URL for application with non-existent Provider
- internal: fix sentry sample rate not applying to proxy
- internal: rework global logging settings, embedded outpost no longer overwrites core
- outpost: re-run globalSetup when updating config, allowing for live log level changes
- outposts: handle/ignore http Abort handler
- outposts/ldap: fix log formatter and level not being set correctly
- outposts/proxy: add initial redirect-loop prevention
- outposts/proxy: fix allowlist for forward_auth and traefik
- outposts/proxy: fix ping URI not being routed
- outposts/proxy: fix session not expiring correctly due to miscalculation
- root: allow trace log level to work for core/embedded
- root: don't set secure cross opener policy
- root: drop redis cache sentry errors
- root: fix inconsistent URL quoting of redis URLs
- web/admin: add outpost type to list
- web/admin: auto set the embedded outpost's authentik_host on first view
- web/admin: don't auto-select certificate for LDAP source verification
- web/admin: fix border for outpost health status
- \*: revert to using GHCR directly
- core: fix error when getting launch URL for application with non-existent Provider
- internal: fix sentry sample rate not applying to proxy
- internal: rework global logging settings, embedded outpost no longer overwrites core
- outpost: re-run globalSetup when updating config, allowing for live log level changes
- outposts: handle/ignore http Abort handler
- outposts/ldap: fix log formatter and level not being set correctly
- outposts/proxy: add initial redirect-loop prevention
- outposts/proxy: fix allowlist for forward_auth and traefik
- outposts/proxy: fix ping URI not being routed
- outposts/proxy: fix session not expiring correctly due to miscalculation
- root: allow trace log level to work for core/embedded
- root: don't set secure cross opener policy
- root: drop redis cache sentry errors
- root: fix inconsistent URL quoting of redis URLs
- web/admin: add outpost type to list
- web/admin: auto set the embedded outpost's authentik_host on first view
- web/admin: don't auto-select certificate for LDAP source verification
- web/admin: fix border for outpost health status
## Fixed in 2021.12.4
- crypto: improve handling for non-rsa private keys
- events: create test notification with event with data
- internal: add custom proxy certificates support to embedded outpost
- policies: fix application cache not being cleared correctly
- providers/oauth2: remove jwt_alg field and set algorithm based on selected keypair, select HS256 when no keypair is selected
- stages/authenticator_validate: add passwordless login
- stages/authenticator_validate: fix prompt not triggering when using in non-authentication context
- stages/authenticator_validate: refuse passwordless flow if flow is not for authentication
- tenants: add web certificate field, make authentik's core certificate configurable based on keypair
- web/admin: fix explore integration not opening in new tab
- web/elements: fix link from notification drawer not working in user interface
- web/user: fix user details not rendering when loading to a different user settings tab and then switching
- crypto: improve handling for non-rsa private keys
- events: create test notification with event with data
- internal: add custom proxy certificates support to embedded outpost
- policies: fix application cache not being cleared correctly
- providers/oauth2: remove jwt_alg field and set algorithm based on selected keypair, select HS256 when no keypair is selected
- stages/authenticator_validate: add passwordless login
- stages/authenticator_validate: fix prompt not triggering when using in non-authentication context
- stages/authenticator_validate: refuse passwordless flow if flow is not for authentication
- tenants: add web certificate field, make authentik's core certificate configurable based on keypair
- web/admin: fix explore integration not opening in new tab
- web/elements: fix link from notification drawer not working in user interface
- web/user: fix user details not rendering when loading to a different user settings tab and then switching
## Fixed in 2021.12.5
- \*: use py3.10 syntax for unions, remove old Type[] import when possible
- core: add API endpoint to directly set user's password
- core: add error handling in source flow manager when flow isn't applicable
- core: fix UserSelfSerializer's save() overwriting other user attributes
- core: prevent LDAP password being set for internal hash upgrades
- crypto: return private key's type (required for some oauth2 providers)
- flows: add test helpers to simplify and improve checking of stages, remove force_str
- flows: don't create EventAction.FLOW_EXECUTION
- flows: update default flow titles
- flows: use WithUserInfoChallenge for AccessDeniedChallenge
- lib: strip values for timedelta from string
- outposts: add remote docker integration via SSH
- outposts: fix outpost's sentry not sending release
- outposts: include outposts build hash in state
- outposts/proxy: add support for multiple states, when multiple requests are redirect at once
- outposts/proxy: fix error checking for type assertion
- policies/reputation: rework reputation to use a single entry, include geo_ip data
- sources/oauth: add additional scopes field to get additional data from provider
- sources/oauth: fix github provider not including correct base scopes
- stages/identification: add field for passwordless flow
- tenants: forbid creation of multiple default tenants
- web: add tr to locale
- web: remove page header colour, match user navbar to admin sidebar
- web/admin: add Admin in titlebar for admin interface
- web/admin: fix alignment in outpost list when expanding rows
- web/admin: fix display when groups/users don't fit on a single row
- web/admin: include key type in list
- web/admin: mark additional scopes as non-required
- web/admin: show flow title in list
- web/elements: fix alignment of chipgroup on modal add
- web/elements: fix spacing between chips in chip-group
- web/elements: re-enable codemirror line numbers (fixed on firefox)
- web/flows: add workaround for autofocus not working in password stage
- web/flows: fix duplicate loading spinners when using webauthn
- web/flows: fix helper form not being removed from identification stage (improve password manager compatibility)
- web/flows: include user in access denied stage
- web/flows: only add helper username input if using native shadow dom to prevent browser confusion
- web/user: add language selection
- web/user: rework user source connection UI
- \*: use py3.10 syntax for unions, remove old Type[] import when possible
- core: add API endpoint to directly set user's password
- core: add error handling in source flow manager when flow isn't applicable
- core: fix UserSelfSerializer's save() overwriting other user attributes
- core: prevent LDAP password being set for internal hash upgrades
- crypto: return private key's type (required for some oauth2 providers)
- flows: add test helpers to simplify and improve checking of stages, remove force_str
- flows: don't create EventAction.FLOW_EXECUTION
- flows: update default flow titles
- flows: use WithUserInfoChallenge for AccessDeniedChallenge
- lib: strip values for timedelta from string
- outposts: add remote docker integration via SSH
- outposts: fix outpost's sentry not sending release
- outposts: include outposts build hash in state
- outposts/proxy: add support for multiple states, when multiple requests are redirect at once
- outposts/proxy: fix error checking for type assertion
- policies/reputation: rework reputation to use a single entry, include geo_ip data
- sources/oauth: add additional scopes field to get additional data from provider
- sources/oauth: fix github provider not including correct base scopes
- stages/identification: add field for passwordless flow
- tenants: forbid creation of multiple default tenants
- web: add tr to locale
- web: remove page header colour, match user navbar to admin sidebar
- web/admin: add Admin in titlebar for admin interface
- web/admin: fix alignment in outpost list when expanding rows
- web/admin: fix display when groups/users don't fit on a single row
- web/admin: include key type in list
- web/admin: mark additional scopes as non-required
- web/admin: show flow title in list
- web/elements: fix alignment of chipgroup on modal add
- web/elements: fix spacing between chips in chip-group
- web/elements: re-enable codemirror line numbers (fixed on firefox)
- web/flows: add workaround for autofocus not working in password stage
- web/flows: fix duplicate loading spinners when using webauthn
- web/flows: fix helper form not being removed from identification stage (improve password manager compatibility)
- web/flows: include user in access denied stage
- web/flows: only add helper username input if using native shadow dom to prevent browser confusion
- web/user: add language selection
- web/user: rework user source connection UI
## Upgrading

View File

@ -5,107 +5,107 @@ slug: "/releases/2021.2"
## Headline Changes
- Managed objects
- Managed objects
Objects like property mappings can now be marked as managed, which means that they will be created, updated and deleted by authentik.
Currently, this is used to update default property mappings, and mark tokens and users generated by outposts.
- Improved support for different LDAP Servers
- Improved support for different LDAP Servers
The LDAP source has improved support for non-Active Directory LDAP setups. This includes the following changes:
- Switch to sync membership from groups to users rather than user to group
- Fix users, which were removed from a group in LDAP not being removed from said group
- Add support for LDAP servers which have core fields declared as lists
- Add property-mappings for groups, to map attributes like `name` or `is_superuser`
- Switch to sync membership from groups to users rather than user to group
- Fix users, which were removed from a group in LDAP not being removed from said group
- Add support for LDAP servers which have core fields declared as lists
- Add property-mappings for groups, to map attributes like `name` or `is_superuser`
- Add test view to debug property-mappings.
- Add test view to debug property-mappings.
## Fixes
- admin: add test view for property mappings
- core: Fix application cache not being cleared correctly (and not being ignored for searches)
- events: add send_once flag to send webhooks only once
- events: allow searching by event id
- events: don't log successful system tasks
- events: improve information sent in notification emails
- providers/oauth2: pass application to configuration error event
- providers/saml: fix imported provider not saving properties correctly
- root: use filtering_bound_logger for speed improvements
- stages/consent: fix wrong widget for expire
- web: migrate Provider List to SPA
- admin: add test view for property mappings
- core: Fix application cache not being cleared correctly (and not being ignored for searches)
- events: add send_once flag to send webhooks only once
- events: allow searching by event id
- events: don't log successful system tasks
- events: improve information sent in notification emails
- providers/oauth2: pass application to configuration error event
- providers/saml: fix imported provider not saving properties correctly
- root: use filtering_bound_logger for speed improvements
- stages/consent: fix wrong widget for expire
- web: migrate Provider List to SPA
## Fixed in 2021.2.1-rc2
- admin: add Certificate-Keypair generation
- admin: fix property-mapping views redirecting to invalid URL
- admin: improve layout for policy testing
- admin: remove old provider list view
- outpost: cap reconnect backoff at 60 seconds, reset backoff on successful connection
- policies: add debug flag to PolicyRequest to prevent alerts from testing policies
- providers/saml: force-set friendly_name to empty string for managed mappings
- root: add dedicated live and readiness healthcheck views
- web: fix link to provider list on overview page
- web: fix outpost item in sidebar being active on service connection views
- admin: add Certificate-Keypair generation
- admin: fix property-mapping views redirecting to invalid URL
- admin: improve layout for policy testing
- admin: remove old provider list view
- outpost: cap reconnect backoff at 60 seconds, reset backoff on successful connection
- policies: add debug flag to PolicyRequest to prevent alerts from testing policies
- providers/saml: force-set friendly_name to empty string for managed mappings
- root: add dedicated live and readiness healthcheck views
- web: fix link to provider list on overview page
- web: fix outpost item in sidebar being active on service connection views
## Fixed in 2021.2.1-stable
- admin: fix link in source list
- web: rebuild Outposts list in SPA
- outposts: Fix reconnect not working reliably
- providers/oauth2: add authorized scopes to AUTHORIZE_APPLICATION event
- providers/oauth2: add unofficial groups attribute to default profile claim
- web: fix sidebar being active when stage prompts is selected
- admin: fix link in source list
- web: rebuild Outposts list in SPA
- outposts: Fix reconnect not working reliably
- providers/oauth2: add authorized scopes to AUTHORIZE_APPLICATION event
- providers/oauth2: add unofficial groups attribute to default profile claim
- web: fix sidebar being active when stage prompts is selected
## Fixed in 2021.2.2-stable
- crypto: move certificate and key data to separate api calls to create events
- events: rename context.token to context.secret
- events: rename token_view to secret_view
- lib: fix stacktrace for general expressions
- outposts: fix ProxyProvider update not triggering outpost update
- policies: skip cache on debug request
- providers/proxy: fix certificates without key being selectable
- root: log runtime in milliseconds
- sources/\*: switch API to use slug in URL
- sources/ldap: add API for sync status
- sources/oauth: add callback URL to api
- web: fix ModalButton working in global scope, causing issues on 2nd use
- crypto: move certificate and key data to separate api calls to create events
- events: rename context.token to context.secret
- events: rename token_view to secret_view
- lib: fix stacktrace for general expressions
- outposts: fix ProxyProvider update not triggering outpost update
- policies: skip cache on debug request
- providers/proxy: fix certificates without key being selectable
- root: log runtime in milliseconds
- sources/\*: switch API to use slug in URL
- sources/ldap: add API for sync status
- sources/oauth: add callback URL to api
- web: fix ModalButton working in global scope, causing issues on 2nd use
## Fixed in 2021.2.3-stable
- core: fix tokens using wrong lookup
- web: fix missing source create button
- core: fix tokens using wrong lookup
- web: fix missing source create button
## Fixed in 2021.2.4-stable
- admin: fix missing success_urls causing errors on create/update forms
- core: fix typo in user settings causing sources to not show
- admin: fix missing success_urls causing errors on create/update forms
- core: fix typo in user settings causing sources to not show
## Fixed in 2021.2.5-stable
- admin: fix policy list not having a refresh button
- events: pass Event's user to Notification policy engine when present
- helm: add initial wait for healthcheck
- outpost: improve logging output, ensure fields match api server
- root: fix request_id not being logged for actual asgi requests
- sources/oauth: fix buttons not being ak-root-link
- web: fix library not being full height, again
- web: fix outpost edit/delete buttons
- web: fix SiteShell breaking links when handlers are updated twice
- admin: fix policy list not having a refresh button
- events: pass Event's user to Notification policy engine when present
- helm: add initial wait for healthcheck
- outpost: improve logging output, ensure fields match api server
- root: fix request_id not being logged for actual asgi requests
- sources/oauth: fix buttons not being ak-root-link
- web: fix library not being full height, again
- web: fix outpost edit/delete buttons
- web: fix SiteShell breaking links when handlers are updated twice
## Fixed in 2021.2.6-stable
- admin: fix missing success_url for Cache clean views
- events: fix error when event can't be loaded in rule task
- flows: handle error when app cannot be found during flow import
- policies: sort groups in GroupMembershipPolicy policy and binding
- providers/oauth2: fix error when no login event could be found
- sources/ldap: fix API error when source has not synced yet
- sources/ldap: fix password setter on users which are not LDAP
- web: add sentry CaptureConsole
- web: fix colourstyles not being included in common_styles
- admin: fix missing success_url for Cache clean views
- events: fix error when event can't be loaded in rule task
- flows: handle error when app cannot be found during flow import
- policies: sort groups in GroupMembershipPolicy policy and binding
- providers/oauth2: fix error when no login event could be found
- sources/ldap: fix API error when source has not synced yet
- sources/ldap: fix password setter on users which are not LDAP
- web: add sentry CaptureConsole
- web: fix colourstyles not being included in common_styles
## Upgrading
@ -117,11 +117,11 @@ The change affects the "SAML Name" property, which has been changed from an oid
The integrations affected are:
- [Ansible Tower/AWX](/integrations/services/awx-tower/)
- [GitLab](/integrations/services/gitlab/)
- [NextCloud](/integrations/services/nextcloud/)
- [Rancher](/integrations/services/rancher/)
- [Sentry](/integrations/services/sentry/)
- [Ansible Tower/AWX](/integrations/services/awx-tower/)
- [GitLab](/integrations/services/gitlab/)
- [NextCloud](/integrations/services/nextcloud/)
- [Rancher](/integrations/services/rancher/)
- [Sentry](/integrations/services/sentry/)
### docker-compose

View File

@ -5,13 +5,13 @@ slug: "/releases/2021.3"
## Headline Changes
- WebAuthn support
- WebAuthn support
This release introduces support for [WebAuthn](https://webauthn.io/), an open standard for the use of hardware authentication keys like YubiKeys on the web.
You can configure a WebAuthn device using the "WebAuthn Authenticator Setup Stage" stage. Afterwards, it can be used as an n-th factor, just like TOTP authenticators.
- Simplify role-based access
- Simplify role-based access
Instead of having to create a Group Membership policy for every group you want to use, you can now select a Group and even a User directly in a binding.
@ -21,19 +21,19 @@ slug: "/releases/2021.3"
Group Membership policies are automatically migrated to use this simplified access.
- Invisible reCAPTCHA
- Invisible reCAPTCHA
The checkbox-based reCAPTCHA has been replaced with [reCAPTCHA v2 Invisible](https://developers.google.com/recaptcha/docs/invisible).
This is a breaking change, as a set of reCAPTCHA keys are only valid for a single type. For this, go to https://www.google.com/recaptcha/admin and create a new set of keys with the "reCAPTCHA v2" type and "Invisible reCAPTCHA badge" mode.
- Migration of Flow Executor to SPA/API
- Migration of Flow Executor to SPA/API
The flow executor has been migrated to a full SPA/API architecture. This was required for WebAuthn, but also allows for greater customizability.
It also allows other services to use the flow executor via an API, which will be used by the outpost further down the road.
- Deny stage
- Deny stage
A new stage which simply denies access. This can be used to conditionally deny access to users during a flow. Authorization flows for example required an authenticated user, but there was no previous way to block access for un-authenticated users.
@ -41,43 +41,43 @@ slug: "/releases/2021.3"
## Fixed in 2021.3.2
- sources/ldap: fix sync for Users without pwdLastSet
- web: fix date display issue
- web: fix submit in Modal reloading page in firefox
- sources/ldap: fix sync for Users without pwdLastSet
- web: fix date display issue
- web: fix submit in Modal reloading page in firefox
## Fixed in 2021.3.3
- providers/oauth2: allow protected_resource_view when method is OPTIONS
- stages/authenticator_static: fix error when disable static tokens
- stages/authenticator_webauthn: add missing migration
- web: fix Colours for user settings in dark mode
- web: fix Flow executor not showing spinner when redirecting
- web: fix Source icons not being displayed on firefox
- web: fix styling for static token list
- providers/oauth2: allow protected_resource_view when method is OPTIONS
- stages/authenticator_static: fix error when disable static tokens
- stages/authenticator_webauthn: add missing migration
- web: fix Colours for user settings in dark mode
- web: fix Flow executor not showing spinner when redirecting
- web: fix Source icons not being displayed on firefox
- web: fix styling for static token list
## Fixed in 2021.3.4
- admin: include git build hash in gh-\* tags and show build hash in admin overview
- events: don't fail on boot when geoip can't be opened
- helm: add initial geoip
- outposts: improve logs for outpost connection
- policies: fix error when clearing policy cache when no policies are cached
- root: add comment for error reporting to compose
- root: add geoip config to docker-compose
- sources/oauth: fix error on user enrollment when no enrollment flow is defined
- web: add close button to messages
- web: backport fix: add missing background filter
- web: fix outpost health display
- web: fix path for fallback flow view
- web: fix system task index
- web: improve compatibility with password managers
- web: improve layout of expanded event info
- web: improve styling for application list
- web: prevent duplicate messages
- web: show related edit button for bound stages and policies
- web: use chunking for vendor and api
- web: use loadingState for autosubmitStage
- web: use sections in sidebar, adjust colouring
- admin: include git build hash in gh-\* tags and show build hash in admin overview
- events: don't fail on boot when geoip can't be opened
- helm: add initial geoip
- outposts: improve logs for outpost connection
- policies: fix error when clearing policy cache when no policies are cached
- root: add comment for error reporting to compose
- root: add geoip config to docker-compose
- sources/oauth: fix error on user enrollment when no enrollment flow is defined
- web: add close button to messages
- web: backport fix: add missing background filter
- web: fix outpost health display
- web: fix path for fallback flow view
- web: fix system task index
- web: improve compatibility with password managers
- web: improve layout of expanded event info
- web: improve styling for application list
- web: prevent duplicate messages
- web: show related edit button for bound stages and policies
- web: use chunking for vendor and api
- web: use loadingState for autosubmitStage
- web: use sections in sidebar, adjust colouring
## Upgrading

View File

@ -5,126 +5,126 @@ slug: "/releases/2021.4"
## Headline Changes
- Configurable Policy engine mode
- Configurable Policy engine mode
In the past, all objects, which could have policies attached to them, required _all_ policies to pass to consider an action successful.
You can now configure if _all_ policies need to pass, or if _any_ policy needs to pass.
This can now be configured for the following objects:
- Applications (access restrictions)
- Sources
- Flows
- Flow-stage bindings
- Applications (access restrictions)
- Sources
- Flows
- Flow-stage bindings
For backwards compatibility, this is set to _all_, but new objects will default to _any_.
- Expiring Events
- Expiring Events
Previously, events would stay in the database forever, and had to eventually be cleaned up manually. This version add expiry to events with a default
timeout of 1 Year. This also applies to existing events, and their expiry will be set during the migration.
- New UI
- New UI
While the UI mostly looks the same, under the hood a lot has changed. The Web UI is now a Single-page application based on rollup and lit-html. This has several consequences and new features, for example:
- You can now see a user's OAuth Access/Refresh tokens and the consents they've given
- You can now see a per-object changelog based on the model_create/update/delete events being created.
- A new API Browser is available under `https://authentink.company/api/v2beta/`
- Several new charts, new pages and quality-of-life improvements
- Credentials of objects are no longer shown while editing them
- You can now see a user's OAuth Access/Refresh tokens and the consents they've given
- You can now see a per-object changelog based on the model_create/update/delete events being created.
- A new API Browser is available under `https://authentink.company/api/v2beta/`
- Several new charts, new pages and quality-of-life improvements
- Credentials of objects are no longer shown while editing them
- Deprecated Group membership has been removed.
- Deprecated Group membership has been removed.
## Minor changes
- You can now specify the amount of processes started in docker-compose using the `WORKERS` environment variable.
- You can now specify the amount of processes started in docker-compose using the `WORKERS` environment variable.
## Fixed in 2021.4.2
- core: fix propertymapping API returning invalid value for components (https://github.com/goauthentik/authentik/issues/746)
- core: improve messaging when creating a recovery link for a user when no recovery flow exists
- flows: annotate flows executor 404 error
- flows: include configure_flow in stages API
- helm: make storage class, size and mode configurable
- helm: turn off monitoring by default (https://github.com/goauthentik/authentik/issues/741)
- outposts: fix errors when creating multiple outposts
- root: add restart: unless-stopped to compose
- root: base Websocket message storage on Base not fallback
- root: fix healthcheck part in docker-compose
- root: fix setting of EMAIL_USE_TLS and EMAIL_USE_SSL
- sources/ldap: improve error handling during sync
- sources/oauth: fix error when creating an oauth source which has fixed URLs
- sources/oauth: fix resolution of sources' provider type
- web: fix background-color on router outlet on light mode
- web/admin: fix error when user doesn't have permissions to read source
- web/admin: fix errors in user profile when non-superuser
- core: fix propertymapping API returning invalid value for components (https://github.com/goauthentik/authentik/issues/746)
- core: improve messaging when creating a recovery link for a user when no recovery flow exists
- flows: annotate flows executor 404 error
- flows: include configure_flow in stages API
- helm: make storage class, size and mode configurable
- helm: turn off monitoring by default (https://github.com/goauthentik/authentik/issues/741)
- outposts: fix errors when creating multiple outposts
- root: add restart: unless-stopped to compose
- root: base Websocket message storage on Base not fallback
- root: fix healthcheck part in docker-compose
- root: fix setting of EMAIL_USE_TLS and EMAIL_USE_SSL
- sources/ldap: improve error handling during sync
- sources/oauth: fix error when creating an oauth source which has fixed URLs
- sources/oauth: fix resolution of sources' provider type
- web: fix background-color on router outlet on light mode
- web/admin: fix error when user doesn't have permissions to read source
- web/admin: fix errors in user profile when non-superuser
## Fixed in 2021.4.3
- \*: add model_name to TypeCreate API to distinguish between models sharing a component
- api: fix CSRF error when using POST/PATCH/PUT in API Browser
- api: make 401 messages clearer
- api: mount outposts under outposts/instances to match flows
- core: add parameter to output property mapping test result formatted
- core: add superuser_full_list to applications list, shows all applications when superuser
- core: fix Tokens being created with incorrect intent by default
- outposts: don't run outpost_controller when no service connection is set
- providers/oauth2: Set CORS Headers for token endpoint, check Origin header against redirect URLs
- root: auto-migrate on startup, lock database using pg_advisory_lock
- sources/oauth: add login with plex support
- sources/oauth: fix redirect loop for source with non-configurable URLs
- sources/oauth: save null instead of empty string for sources without configurable URLs
- web/admin: add ability to add users to a group whilst creating a group
- web/admin: fix default for codemirror
- web/admin: fix group member table order
- web/admin: fix non-matching provider type being selected when creating an OAuth Source
- web/admin: fix provider type resetting when changing provider type
- web/admin: fix undefined being shown when viewing application
- web/admin: improve default selection for property-mappings
- \*: add model_name to TypeCreate API to distinguish between models sharing a component
- api: fix CSRF error when using POST/PATCH/PUT in API Browser
- api: make 401 messages clearer
- api: mount outposts under outposts/instances to match flows
- core: add parameter to output property mapping test result formatted
- core: add superuser_full_list to applications list, shows all applications when superuser
- core: fix Tokens being created with incorrect intent by default
- outposts: don't run outpost_controller when no service connection is set
- providers/oauth2: Set CORS Headers for token endpoint, check Origin header against redirect URLs
- root: auto-migrate on startup, lock database using pg_advisory_lock
- sources/oauth: add login with plex support
- sources/oauth: fix redirect loop for source with non-configurable URLs
- sources/oauth: save null instead of empty string for sources without configurable URLs
- web/admin: add ability to add users to a group whilst creating a group
- web/admin: fix default for codemirror
- web/admin: fix group member table order
- web/admin: fix non-matching provider type being selected when creating an OAuth Source
- web/admin: fix provider type resetting when changing provider type
- web/admin: fix undefined being shown when viewing application
- web/admin: improve default selection for property-mappings
## Fixed in 2021.4.4
- \*: make tasks run every 60 minutes not :00 every hour
- outposts: check for X-Forwarded-Host to switch context
- outposts: improve update performance
- outposts: move local connection check to task, run every 60 minutes
- providers/oauth2: add proper support for non-http schemes as redirect URIs
- providers/oauth2: fix TokenView not having CORS headers set even with proper Origin
- sources/oauth: fix error whilst fetching user profile when source uses fixed URLs
- sources/oauth: handle error in AzureAD when ID Can't be extracted
- stages/user_login: add default backend
- web: fix title not being loaded from config
- web: only report http errors for 500 and above
- web: send response info when response is thrown
- web/admin: add description for fields in proxy provider form
- web/admin: adjust phrasing of cards on overview page
- web/admin: fix display for user supseruser status
- web/admin: fix error when me() returns 403
- web/admin: fix error when updating identification stage
- web/admin: fix invalid group member count
- web/admin: fix link to providers on overview page
- web/admin: fix mismatched required tags
- web/admin: improve phrasing for Policy bindings
- web/admin: only allow policies to be bound to sources as users/groups cannot be checked
- web/admin: only pre-select items when creating a new object
- web/flows: fix Sentry not being loaded correctly
- \*: make tasks run every 60 minutes not :00 every hour
- outposts: check for X-Forwarded-Host to switch context
- outposts: improve update performance
- outposts: move local connection check to task, run every 60 minutes
- providers/oauth2: add proper support for non-http schemes as redirect URIs
- providers/oauth2: fix TokenView not having CORS headers set even with proper Origin
- sources/oauth: fix error whilst fetching user profile when source uses fixed URLs
- sources/oauth: handle error in AzureAD when ID Can't be extracted
- stages/user_login: add default backend
- web: fix title not being loaded from config
- web: only report http errors for 500 and above
- web: send response info when response is thrown
- web/admin: add description for fields in proxy provider form
- web/admin: adjust phrasing of cards on overview page
- web/admin: fix display for user supseruser status
- web/admin: fix error when me() returns 403
- web/admin: fix error when updating identification stage
- web/admin: fix invalid group member count
- web/admin: fix link to providers on overview page
- web/admin: fix mismatched required tags
- web/admin: improve phrasing for Policy bindings
- web/admin: only allow policies to be bound to sources as users/groups cannot be checked
- web/admin: only pre-select items when creating a new object
- web/flows: fix Sentry not being loaded correctly
## Fixed in 2021.4.5
- core: fix text on error pages being hard to read
- outposts: only kill docker container if its running
- root: add middleware to properly report websocket connection to sentry
- root: don't use .error of structlog to not send to sentry
- stages/email: catch ValueError when global email settings are invalid
- stages/invitation: accept token from prompt_data
- stages/invitation: fix token not being loaded correctly from query string
- web: fix text-colour for form help text
- web: ignore network errors for sentry
- web/admin: don't show docker certs as required
- web/flows: fix redirect loop when sentry is enabled on flow views
- web/flows: include ShadyDOM, always enable ShadyDOM for flow interface, improve compatibility with password
- web/flows/identification: fix phrasing account recovery
- core: fix text on error pages being hard to read
- outposts: only kill docker container if its running
- root: add middleware to properly report websocket connection to sentry
- root: don't use .error of structlog to not send to sentry
- stages/email: catch ValueError when global email settings are invalid
- stages/invitation: accept token from prompt_data
- stages/invitation: fix token not being loaded correctly from query string
- web: fix text-colour for form help text
- web: ignore network errors for sentry
- web/admin: don't show docker certs as required
- web/flows: fix redirect loop when sentry is enabled on flow views
- web/flows: include ShadyDOM, always enable ShadyDOM for flow interface, improve compatibility with password
- web/flows/identification: fix phrasing account recovery
## Upgrading

View File

@ -5,7 +5,7 @@ slug: "/releases/2021.5"
## Headline Changes
- LDAP Provider
- LDAP Provider
:::info
This feature is still in technical preview, so please report any Bugs you run into on [GitHub](https://github.com/goauthentik/authentik/issues)
@ -17,85 +17,85 @@ This feature is still in technical preview, so please report any Bugs you run in
Binding against the LDAP Server uses a flow in the background. This allows you to use the same policies and flows as you do for web-based logins. The only limitation is that currently only identification and password stages are supported, due to how LDAP works.
- Compatibility with forwardAuth/auth_request
- Compatibility with forwardAuth/auth_request
The authentik proxy is now compatible with forwardAuth (traefik) / auth_request (nginx). All that is required is the latest version of the outpost,
and the correct config from [here](../../add-secure-apps/providers/proxy/forward_auth.mdx).
- Docker images for ARM
- Docker images for ARM
Docker images are now built for amd64 and arm64.
- Reduced setup complexity
- Reduced setup complexity
The authentik server now requires less containers. The static container (as well as the traefik when using docker-compose) are no longer required. As the first stage of a migration to Golang instead of Python, authentik now runs behind an in-container reverse proxy, which hosts the static files.
- New Plex authentication source
- New Plex authentication source
The plex source (previously a provider for the OAuth Source) has been rewritten to a dedicated Source.
You can now limit access to authentik based on which servers a Plex user is member of.
- Configurable source behaviour
- Configurable source behaviour
You can now configure how a source behaves after the user has authenticated themselves to the source. Previously, authentik always checked the unique identifier from the source, enrolled the user when the identifier didn't exist and authenticated the user otherwise.
Now you can configure how the matching should be done:
- Identifier: Keeps the old behaviour, can lead to duplicate user accounts
- Email (link): If a user with the same Email address exists, they are linked. Can have security implications when a source doesn't validate email addresses.
- Email (deny): Deny the flow if the Email address is already used.
- Username (link): If a user with the same username address exists, they are linked. Can have security implications when a username is used with another source.
- Username (deny): Deny the flow if the username address is already used.
- Identifier: Keeps the old behaviour, can lead to duplicate user accounts
- Email (link): If a user with the same Email address exists, they are linked. Can have security implications when a source doesn't validate email addresses.
- Email (deny): Deny the flow if the Email address is already used.
- Username (link): If a user with the same username address exists, they are linked. Can have security implications when a username is used with another source.
- Username (deny): Deny the flow if the username address is already used.
## Minor changes
- Improved compatibility of the flow interface with password managers.
- Improved compatibility when using SAML Sources with a redirect binding.
- Improved configurability of outpost docker image name for managed Outposts.
- Add customization of access code validity for OAuth2 Providers.
- Add ability to configure no login fields on identification stage to only allow logins with Sources.
- Add single-use flag for invitations to delete token after use.
- Fix sidebar not collapsible on mobile.
- Improved compatibility of the flow interface with password managers.
- Improved compatibility when using SAML Sources with a redirect binding.
- Improved configurability of outpost docker image name for managed Outposts.
- Add customization of access code validity for OAuth2 Providers.
- Add ability to configure no login fields on identification stage to only allow logins with Sources.
- Add single-use flag for invitations to delete token after use.
- Fix sidebar not collapsible on mobile.
## Fixed in 2021.5.2
- core: fix application's slug field not being set to unique
- flows: fix error when using cancel flow
- lib: Fix config loading of secrets from files (#887)
- lib: fix parsing of remote IP header when behind multiple reverse proxies
- lifecycle: check if group of docker socket exists
- lifecycle: fix error when worker is not running as root
- outposts: fix error when controller loads from cache but cache has expired
- outposts: fix missing default for OutpostState.for_channel
- outposts: fix reload notification not working due to wrong ID being cached
- outposts/ldap: fix AUTHENTIK_INSECURE not being respected for API client during bind
- outposts/proxy: fix error redeeming code when using non-standard ports
- outposts/proxy: fix insecure TLS Skip
- providers/ldap: use username instead of name for user dn (#883)
- providers/proxy: connect ingress to https instead of http
- root: only load debug secret key when debug is enabled
- web: fix chunks overwriting each other
- web/admin: add notice for LDAP Provider's group selection
- web/admin: fix PropertyMappings not loading correctly
- website/docs: add example ldapsearch command
- core: fix application's slug field not being set to unique
- flows: fix error when using cancel flow
- lib: Fix config loading of secrets from files (#887)
- lib: fix parsing of remote IP header when behind multiple reverse proxies
- lifecycle: check if group of docker socket exists
- lifecycle: fix error when worker is not running as root
- outposts: fix error when controller loads from cache but cache has expired
- outposts: fix missing default for OutpostState.for_channel
- outposts: fix reload notification not working due to wrong ID being cached
- outposts/ldap: fix AUTHENTIK_INSECURE not being respected for API client during bind
- outposts/proxy: fix error redeeming code when using non-standard ports
- outposts/proxy: fix insecure TLS Skip
- providers/ldap: use username instead of name for user dn (#883)
- providers/proxy: connect ingress to https instead of http
- root: only load debug secret key when debug is enabled
- web: fix chunks overwriting each other
- web/admin: add notice for LDAP Provider's group selection
- web/admin: fix PropertyMappings not loading correctly
- website/docs: add example ldapsearch command
## Fixed in 2021.5.3
- outposts: fix update signal not being sent to correct instances
- providers/oauth2: fix double login required when prompt=login
- providers/proxy: fix redirect_uris not always being set on save
- sources/plex: force setting of plex token
- web: fix t.reset is not a function
- web: remove nginx config, add caching headers to static files
- web/admin: fix flow form not loading data
- outposts: fix update signal not being sent to correct instances
- providers/oauth2: fix double login required when prompt=login
- providers/proxy: fix redirect_uris not always being set on save
- sources/plex: force setting of plex token
- web: fix t.reset is not a function
- web: remove nginx config, add caching headers to static files
- web/admin: fix flow form not loading data
## Fixed in 2021.5.4
- providers/oauth2: add missing kid header to JWT Tokens
- stages/authenticator\_\*: fix Permission Error when disabling Authenticator as non-superuser
- web: fix missing flow and policy cache clearing UI
- web: set x-forwarded-proto based on upstream TLS Status
- providers/oauth2: add missing kid header to JWT Tokens
- stages/authenticator\_\*: fix Permission Error when disabling Authenticator as non-superuser
- web: fix missing flow and policy cache clearing UI
- web: set x-forwarded-proto based on upstream TLS Status
## Upgrading

View File

@ -5,161 +5,161 @@ slug: "/releases/2021.6"
## Headline Changes
- Duo two-factor support
- Duo two-factor support
You can now add the new `authenticator_duo` stage to configure Duo authenticators. Duo has also been added as device class to the `authenticator_validation` stage.
Currently, only Duo push notifications are supported. Because no additional input is required, Duo also works with the LDAP Outpost.
- Multi-tenancy
- Multi-tenancy
This version adds soft multi-tenancy. This means you can configure different branding settings and different default flows per domain.
This also changes how a default flow is determined. Previously, for defaults flow, authentik would pick the first flow that
- matches the required designation
- comes first sorted by slug
- is allowed by policies
- matches the required designation
- comes first sorted by slug
- is allowed by policies
Now, authentik first checks if the current tenant has a default flow configured for the selected designation. If not, it behaves the same as before, meaning that if you want to select a default flow based on policy, you can just leave the tenant default empty.
- Domain-level authorization with proxy providers
- Domain-level authorization with proxy providers
Instead of simply being able to toggle between forward auth and proxy mode, you can now enable forward auth for an entire domain. This has the downside that you can't do per-application authorization, but also simplifies configuration as you don't have to create each application in authentik.
- API Schema now uses OpenAPI v3
- API Schema now uses OpenAPI v3
The API endpoints are mostly the same, however all the clients are now built from an OpenAPI v3 schema. You can retrieve the schema from `authentik.company.tld/api/v2beta/schema/`
- On Kubernetes installs without a /media PVC, you can now set URLs instead of uploading files.
- Expanded prometheus metrics for PolicyEngine and FlowPlanner
- On Kubernetes installs without a /media PVC, you can now set URLs instead of uploading files.
- Expanded prometheus metrics for PolicyEngine and FlowPlanner
## Minor changes
- You can now specify which sources should be shown on an Identification stage.
- Add UI for the reputation of IPs and usernames for reputation policies.
- Fix proxy outpost not being able to redeem tokens when using with an un-trusted SSL Certificate
- Add UI to check access of any application for any user
- You can now specify which sources should be shown on an Identification stage.
- Add UI for the reputation of IPs and usernames for reputation policies.
- Fix proxy outpost not being able to redeem tokens when using with an un-trusted SSL Certificate
- Add UI to check access of any application for any user
## Fixed in 2021.6.1-rc5
- flows: fix configuration URL being set when no flow is configure
- stages/authenticator_totp: set TOTP issuer based on slug'd tenant title
- stages/authenticator_webauthn: use tenant title as RP_NAME
- stages/identification: add UPN
- stages/password: add constants for password backends
- web: fix flow download link
- flows: fix configuration URL being set when no flow is configure
- stages/authenticator_totp: set TOTP issuer based on slug'd tenant title
- stages/authenticator_webauthn: use tenant title as RP_NAME
- stages/identification: add UPN
- stages/password: add constants for password backends
- web: fix flow download link
## Fixed in 2021.6.1-rc6
- ci: build and push stable tag when rc not in release name
- core: delete real session when AuthenticatedSession is deleted
- core: fix impersonation not working with inactive users
- core: fix upload api not checking clear properly
- core: revert check_access API to get to prevent CSRF errors
- events: add tenant to event
- events: catch unhandled exceptions from request as event, add button to open github issue
- flows: fix error clearing flow background when no files have been uploaded
- outpost: fix syntax error when creating an outpost with connection
- outposts: fix integrity error with tokens
- outposts/ldap: improve responses for unsuccessful binds
- policies/reputation: fix race condition in tests
- provider/proxy: mark forward_auth flag as deprecated
- providers/saml: improve error handling for signature errors
- root: fix build_hash being set incorrectly for tagged versions
- sources/saml: check sessions before deleting user
- stages/authenticator_duo: don't create default duo stage
- stages/authenticator_validate: add tests for authenticator validation
- stages/identification: fix challenges not being annotated correctly and API client not loading data correctly
- web: add capabilities to sentry event
- web: migrate banner to sidebar
- web/admin: fix user enable/disable modal not matching other modals
- web/admin: select service connection by default when only one exists
- web/flows: fix expiry not shown on consent stage when loading
- web/flows: fix IdentificationStage's label not matching fields
- web/flows: improve display of allowed fields for identification stage
- website/docs: add docs for outpost configuration
- ci: build and push stable tag when rc not in release name
- core: delete real session when AuthenticatedSession is deleted
- core: fix impersonation not working with inactive users
- core: fix upload api not checking clear properly
- core: revert check_access API to get to prevent CSRF errors
- events: add tenant to event
- events: catch unhandled exceptions from request as event, add button to open github issue
- flows: fix error clearing flow background when no files have been uploaded
- outpost: fix syntax error when creating an outpost with connection
- outposts: fix integrity error with tokens
- outposts/ldap: improve responses for unsuccessful binds
- policies/reputation: fix race condition in tests
- provider/proxy: mark forward_auth flag as deprecated
- providers/saml: improve error handling for signature errors
- root: fix build_hash being set incorrectly for tagged versions
- sources/saml: check sessions before deleting user
- stages/authenticator_duo: don't create default duo stage
- stages/authenticator_validate: add tests for authenticator validation
- stages/identification: fix challenges not being annotated correctly and API client not loading data correctly
- web: add capabilities to sentry event
- web: migrate banner to sidebar
- web/admin: fix user enable/disable modal not matching other modals
- web/admin: select service connection by default when only one exists
- web/flows: fix expiry not shown on consent stage when loading
- web/flows: fix IdentificationStage's label not matching fields
- web/flows: improve display of allowed fields for identification stage
- website/docs: add docs for outpost configuration
## Fixed in 2021.6.1
- core: fix error getting stages when enrollment flow isn't set
- core: fix error when creating AuthenticatedSession without key
- flows: fix error when stage has incorrect type
- providers/saml: add support for NameID type unspecified
- providers/saml: fix error when getting transient user identifier
- providers/saml: fix NameIDPolicy not being parsed correctly
- recovery: fix error when creating multiple keys for the same user
- stages/authenticator_duo: fix error when enrolling an existing user
- stages/authenticator_duo: make Duo-admin viewset writeable
- website/docs: remove migrate command
- core: fix error getting stages when enrollment flow isn't set
- core: fix error when creating AuthenticatedSession without key
- flows: fix error when stage has incorrect type
- providers/saml: add support for NameID type unspecified
- providers/saml: fix error when getting transient user identifier
- providers/saml: fix NameIDPolicy not being parsed correctly
- recovery: fix error when creating multiple keys for the same user
- stages/authenticator_duo: fix error when enrolling an existing user
- stages/authenticator_duo: make Duo-admin viewset writeable
- website/docs: remove migrate command
## Fixed in 2021.6.2
- core: add support for custom urls for avatars
- core: deepmerge user.group_attributes, use group_attributes for user settings
- core: fix PropertyMapping's globals not matching Expression policy
- core: remove default flow background from default css, set static in base_full and dynamically in if/flow
- crypto: catch error when loading private key
- flows: make flow plan cache timeout configurable
- outposts: fix port and inner_port being mixed on docker controller
- outposts/proxy: fix additionalHeaders not being set properly
- policies: don't use policy cache when checking application access
- policies: make policy result cache timeout configurable
- root: allow loading local /static files without debug flag
- root: make general cache timeouts configurable
- root: remove old traefik labels
- root: save temporary database dump in /tmp
- root: set outposts.docker_image_base to gh-master for tests
- stages/authenticator_validate: fix error when using not_configured_action=configure
- tenants: fix tenant not being queried correctly when using accessing over a child domain
- web/admin: fix tenant's default flag not being saved
- web/admin: handle elements in slot=form not being forms
- web/admin: sort inputs on authenticator validation stage form
- core: add support for custom urls for avatars
- core: deepmerge user.group_attributes, use group_attributes for user settings
- core: fix PropertyMapping's globals not matching Expression policy
- core: remove default flow background from default css, set static in base_full and dynamically in if/flow
- crypto: catch error when loading private key
- flows: make flow plan cache timeout configurable
- outposts: fix port and inner_port being mixed on docker controller
- outposts/proxy: fix additionalHeaders not being set properly
- policies: don't use policy cache when checking application access
- policies: make policy result cache timeout configurable
- root: allow loading local /static files without debug flag
- root: make general cache timeouts configurable
- root: remove old traefik labels
- root: save temporary database dump in /tmp
- root: set outposts.docker_image_base to gh-master for tests
- stages/authenticator_validate: fix error when using not_configured_action=configure
- tenants: fix tenant not being queried correctly when using accessing over a child domain
- web/admin: fix tenant's default flag not being saved
- web/admin: handle elements in slot=form not being forms
- web/admin: sort inputs on authenticator validation stage form
## Fixed in 2021.6.3
- api: use partition instead of split for token
- core: fix flow background not correctly loading on initial draw
- events: add ability to create events via API
- events: ignore notification non-existent in transport
- events: only create SYSTEM_EXCEPTION event when error would've been sent to sentry
- expressions: fix regex_match result being inverted
- flows: add FlowStageBinding to flow plan instead of just stage
- flows: add invalid_response_action to configure how the FlowExecutor should handle invalid responses
- flows: handle possible errors with FlowPlans received from cache
- outposts: check docker container ports match
- outposts/ldap: fixed IsActive and IsSuperuser returning swapped incorrect values (#1078)
- providers/oauth2: fix exp of JWT when not using seconds
- sources/ldap: improve error handling when checking for password complexity on non-ad setups
- stages/authenticator_duo: fix component not being set in API
- stages/prompt: ensure hidden and static fields keep the value they had set
- stages/user_write: add flag to create new users as inactive
- tenants: include all default flows in current_tenant
- web/admin: fix deletion of authenticator not reloading the state correctly
- web/admin: fix only recovery flows being selectable for unenrollment flow in tenant form
- web/admin: fix text color on pf-c-card
- api: use partition instead of split for token
- core: fix flow background not correctly loading on initial draw
- events: add ability to create events via API
- events: ignore notification non-existent in transport
- events: only create SYSTEM_EXCEPTION event when error would've been sent to sentry
- expressions: fix regex_match result being inverted
- flows: add FlowStageBinding to flow plan instead of just stage
- flows: add invalid_response_action to configure how the FlowExecutor should handle invalid responses
- flows: handle possible errors with FlowPlans received from cache
- outposts: check docker container ports match
- outposts/ldap: fixed IsActive and IsSuperuser returning swapped incorrect values (#1078)
- providers/oauth2: fix exp of JWT when not using seconds
- sources/ldap: improve error handling when checking for password complexity on non-ad setups
- stages/authenticator_duo: fix component not being set in API
- stages/prompt: ensure hidden and static fields keep the value they had set
- stages/user_write: add flag to create new users as inactive
- tenants: include all default flows in current_tenant
- web/admin: fix deletion of authenticator not reloading the state correctly
- web/admin: fix only recovery flows being selectable for unenrollment flow in tenant form
- web/admin: fix text color on pf-c-card
## Fixed in 2021.6.4
- core: only show `Reset password` link when recovery flow is configured
- crypto: show both sha1 and sha256 fingerprints
- flows: handle old cached flow plans better
- g: fix static and media caching not working properly
- outposts: fix container not being started after creation
- outposts: fix docker controller not checking env correctly
- outposts: fix docker controller not checking ports correctly
- outposts: fix empty message when docker outpost controller has changed nothing
- outposts: fix permissions not being set correctly upon outpost creation
- outposts/ldap: add support for boolean fields in ldap
- outposts/proxy: always redirect to session-end interface on sign_out
- providers/oauth2: add revoked field, create suspicious event when previous token is used
- providers/oauth2: deepmerge claims
- providers/oauth2: fix CORS headers not being set for unsuccessful requests
- providers/oauth2: use self.expires for exp field instead of calculating it again
- sources/oauth: create configuration error event when profile can't be parsed as json
- stages/user_write: add wrapper for post to user_write
- web/admin: fix ModelForm not re-loading after being reset
- web/admin: show oauth2 token revoked status
- core: only show `Reset password` link when recovery flow is configured
- crypto: show both sha1 and sha256 fingerprints
- flows: handle old cached flow plans better
- g: fix static and media caching not working properly
- outposts: fix container not being started after creation
- outposts: fix docker controller not checking env correctly
- outposts: fix docker controller not checking ports correctly
- outposts: fix empty message when docker outpost controller has changed nothing
- outposts: fix permissions not being set correctly upon outpost creation
- outposts/ldap: add support for boolean fields in ldap
- outposts/proxy: always redirect to session-end interface on sign_out
- providers/oauth2: add revoked field, create suspicious event when previous token is used
- providers/oauth2: deepmerge claims
- providers/oauth2: fix CORS headers not being set for unsuccessful requests
- providers/oauth2: use self.expires for exp field instead of calculating it again
- sources/oauth: create configuration error event when profile can't be parsed as json
- stages/user_write: add wrapper for post to user_write
- web/admin: fix ModelForm not re-loading after being reset
- web/admin: show oauth2 token revoked status
## Upgrading

View File

@ -5,107 +5,107 @@ slug: "/releases/2021.7"
## Headline Changes
- SSL Support for LDAP Providers
- SSL Support for LDAP Providers
You can now configure certificates for your LDAP Providers, meaning that all communication will be done encrypted.
Currently, only SSL on port 636 is supported, not StartTLS.
- Add bundled docs
- Add bundled docs
You can now browse the authentik docs for your version by browsing to `/help`. This means you don't have to rely on an
internet connection to check the docs, and you also have the correct docs for your currently running version.
## Minor changes
- api: Tunnel Sentry requests through authentik to prevent them being blocked by ad-blockers
- core: fix error when setting icon/background to url longer than 100 chars
- events: fix error when slack notification request failed without a response
- flows: allow variable substitution in flow titles
- outposts/ldap: Fix LDAP outpost missing a `member` field on groups with all member DNs
- outposts/ldap: Fix LDAP outpost not parsing arrays from user and group attributes correctly
- providers/oauth2: allow blank redirect_uris to allow any redirect_uri
- providers/saml: fix parsing of POST bindings
- root: add PROXY protocol support for http, https, ldap and ldaps servers
- root: Allow configuration of Redis port
- root: set samesite to None for SAML POST flows
- root: subclass SessionMiddleware to set Secure and SameSite flag depending on context
- web: fix error when showing error message of request
- api: Tunnel Sentry requests through authentik to prevent them being blocked by ad-blockers
- core: fix error when setting icon/background to url longer than 100 chars
- events: fix error when slack notification request failed without a response
- flows: allow variable substitution in flow titles
- outposts/ldap: Fix LDAP outpost missing a `member` field on groups with all member DNs
- outposts/ldap: Fix LDAP outpost not parsing arrays from user and group attributes correctly
- providers/oauth2: allow blank redirect_uris to allow any redirect_uri
- providers/saml: fix parsing of POST bindings
- root: add PROXY protocol support for http, https, ldap and ldaps servers
- root: Allow configuration of Redis port
- root: set samesite to None for SAML POST flows
- root: subclass SessionMiddleware to set Secure and SameSite flag depending on context
- web: fix error when showing error message of request
## Fixed in 2021.7.1-rc2
- core: add email filter for user
- core: add group filter by member username and pk
- core: broaden error catching for propertymappings
- lib: fix outpost fake-ip not working, add tests
- outpost: fix 100% CPU Usage when not connected to websocket
- outposts: ensure outpost SAs always have permissions to fake IP
- outposts: fix git hash not being set in outposts
- outposts: save certificate fingerprint and check before re-fetching to cleanup logs
- outposts/ldap: add tracing for LDAP bind and search
- outposts/ldap: improve parsing of LDAP filters
- outposts/ldap: optimise backend Search API requests
- outposts/proxy: add X-Auth-Groups header to pass groups
- providers/oauth2: handler PropertyMapping exceptions and create event
- providers/saml: improve error handling for property mappings
- sources/ldap: improve error handling for property mappings
- web: fix icon flashing in header, fix notification header icon in dark mode
- web: separate websocket connection from messages
- web/admin: fix missing dark theme for notifications
- web/admin: fix negative count for policies when more cached than total policies
- web/admin: improve UI for notification toggle
- website/docs: clear up outpost uuids
- website/docs: remove duplicate proxy docs
- core: add email filter for user
- core: add group filter by member username and pk
- core: broaden error catching for propertymappings
- lib: fix outpost fake-ip not working, add tests
- outpost: fix 100% CPU Usage when not connected to websocket
- outposts: ensure outpost SAs always have permissions to fake IP
- outposts: fix git hash not being set in outposts
- outposts: save certificate fingerprint and check before re-fetching to cleanup logs
- outposts/ldap: add tracing for LDAP bind and search
- outposts/ldap: improve parsing of LDAP filters
- outposts/ldap: optimise backend Search API requests
- outposts/proxy: add X-Auth-Groups header to pass groups
- providers/oauth2: handler PropertyMapping exceptions and create event
- providers/saml: improve error handling for property mappings
- sources/ldap: improve error handling for property mappings
- web: fix icon flashing in header, fix notification header icon in dark mode
- web: separate websocket connection from messages
- web/admin: fix missing dark theme for notifications
- web/admin: fix negative count for policies when more cached than total policies
- web/admin: improve UI for notification toggle
- website/docs: clear up outpost uuids
- website/docs: remove duplicate proxy docs
## Fixed in 2021.7.1
- core: add tests for flow_manager
- core: fix CheckApplication's for_user flag not being checked correctly
- core: fix pagination not working correctly with applications API
- providers/oauth2: fix blank redirect_uri not working with TokenView
- root: add code of conduct and PR template
- root: add contributing file
- tenants: make event retention configurable on tenant level
- tenants: set tenant uuid in sentry
- web/admin: add notice for event_retention
- web/admin: add status card for https and timedrift
- web/admin: default to authentication flow for LDAP provider
- web/admin: fix ApplicationView's CheckAccess not sending UserID correctly
- website/docs: add go requirement
- website/docs: update terminology for dark mode
- core: add tests for flow_manager
- core: fix CheckApplication's for_user flag not being checked correctly
- core: fix pagination not working correctly with applications API
- providers/oauth2: fix blank redirect_uri not working with TokenView
- root: add code of conduct and PR template
- root: add contributing file
- tenants: make event retention configurable on tenant level
- tenants: set tenant uuid in sentry
- web/admin: add notice for event_retention
- web/admin: add status card for https and timedrift
- web/admin: default to authentication flow for LDAP provider
- web/admin: fix ApplicationView's CheckAccess not sending UserID correctly
- website/docs: add go requirement
- website/docs: update terminology for dark mode
## Fixed in 2021.7.2
- ci: fix sentry sourcemap path
- e2e: fix broken selenium by locking images
- events: ensure fallback result is set for on_failure
- events: remove default result for MonitoredTasks, only save when result was set
- flows: don't check redirect URL when set from flow plan (set from authentik or policy)
- flows: fix unhandled error in stage execution not being logged as SYSTEM_EXCEPTION event
- outpost: bump timer for periodic config reloads
- outposts: catch invalid ServiceConnection error in outpost controller
- providers/oauth2: fix error when requesting jwks keys with no rs256 aet
- providers/proxy: fix hosts for ingress not being compared correctly
- providers/saml: fix Error when getting metadata for invalid ID
- providers/saml: fix metadata being inaccessible without authentication
- sources/ldap: improve ms-ad password complexity checking
- sources/plex: add background task to monitor validity of plex token
- stages/email: fix error when re-requesting email after token has expired
- stages/invitation: delete invite only after full enrollment flow is completed
- web/admin: add re-authenticate button for plex
- web/admin: add UI to copy invitation link
- web/admin: fix empty column when no invitation expiry was set
- web/admin: fix LDAP Provider bind flow list being empty
- web/admin: fully remove response cloning due to errors
- ci: fix sentry sourcemap path
- e2e: fix broken selenium by locking images
- events: ensure fallback result is set for on_failure
- events: remove default result for MonitoredTasks, only save when result was set
- flows: don't check redirect URL when set from flow plan (set from authentik or policy)
- flows: fix unhandled error in stage execution not being logged as SYSTEM_EXCEPTION event
- outpost: bump timer for periodic config reloads
- outposts: catch invalid ServiceConnection error in outpost controller
- providers/oauth2: fix error when requesting jwks keys with no rs256 aet
- providers/proxy: fix hosts for ingress not being compared correctly
- providers/saml: fix Error when getting metadata for invalid ID
- providers/saml: fix metadata being inaccessible without authentication
- sources/ldap: improve ms-ad password complexity checking
- sources/plex: add background task to monitor validity of plex token
- stages/email: fix error when re-requesting email after token has expired
- stages/invitation: delete invite only after full enrollment flow is completed
- web/admin: add re-authenticate button for plex
- web/admin: add UI to copy invitation link
- web/admin: fix empty column when no invitation expiry was set
- web/admin: fix LDAP Provider bind flow list being empty
- web/admin: fully remove response cloning due to errors
## Fixed in 2021.7.3
- core: fix users not being able to update their profile
- lifecycle: decrease default worker count on compose
- providers/saml: fix error when WantAssertionsSigned is missing
- providers/saml: fix error when PropertyMapping return value isn't string
- web/admin: fix user's email field being required
- web/admin: fix source form's userMatchingMode being swapped
- core: fix users not being able to update their profile
- lifecycle: decrease default worker count on compose
- providers/saml: fix error when WantAssertionsSigned is missing
- providers/saml: fix error when PropertyMapping return value isn't string
- web/admin: fix user's email field being required
- web/admin: fix source form's userMatchingMode being swapped
## Upgrading

View File

@ -5,14 +5,14 @@ slug: "/releases/2021.8"
## Headline Changes
- Embedded Outpost
- Embedded Outpost
To simplify the setup, an embedded outpost has been added. This outpost runs as part of the main authentik server, and requires no additional setup.
You can simply assign providers to the embedded outpost, and either use the integrations to configure reverse proxies, or point your traffic to the main authentik server.
Traffic is routed based on host-header, meaning every host that has been configured as a provider and is assigned to the embedded proxy will be sent to the outpost, and every sub-path under `/outpost.goauthentik.io` is sent to the outpost too. The rest is sent to authentik itself.
- App passwords
- App passwords
You can now create Tokens with the intent `app_password`, and use them when authenticating with a flow. This requires the `User database + app passwords` backend in your password stage (this is done automatically on upgrade).
@ -20,122 +20,122 @@ slug: "/releases/2021.8"
## Minor changes
- admin: add API to show embedded outpost status, add notice when its not configured properly
- api: ensure all resources can be filtered
- api: make all PropertyMappings filterable by multiple managed attributes
- core: add API to directly send recovery link to user
- core: add UserSelfSerializer and separate method for users to update themselves with limited fields
- core: allow changing of groups a user is in from user api
- flows: fix unhandled error in stage execution not being logged as SYSTEM_EXCEPTION event
- lifecycle: decrease default worker count on compose
- outpost/ldap: Performance improvements, support for (member=) lookup
- providers/proxy: don't create ingress when no hosts are defined
- sources/plex: add API to get user connections
- web: add API Drawer
- web/admin: add UI to copy invitation link
- web/admin: allow modification of users groups from user view
- web/admin: re-name service connection to integration
- admin: add API to show embedded outpost status, add notice when its not configured properly
- api: ensure all resources can be filtered
- api: make all PropertyMappings filterable by multiple managed attributes
- core: add API to directly send recovery link to user
- core: add UserSelfSerializer and separate method for users to update themselves with limited fields
- core: allow changing of groups a user is in from user api
- flows: fix unhandled error in stage execution not being logged as SYSTEM_EXCEPTION event
- lifecycle: decrease default worker count on compose
- outpost/ldap: Performance improvements, support for (member=) lookup
- providers/proxy: don't create ingress when no hosts are defined
- sources/plex: add API to get user connections
- web: add API Drawer
- web/admin: add UI to copy invitation link
- web/admin: allow modification of users groups from user view
- web/admin: re-name service connection to integration
## Fixed in 2021.8.1-rc2
- ci: add pipeline to build and push js api package
- ci: upgrade web api client when schema changes
- core: add new token intent and auth backend (#1284)
- core: add token tests for invalid intent and token auth
- core: fix token intent not defaulting correctly
- core: handle error when ?for_user is not numerical
- lib: move id and key generators to lib (#1286)
- lifecycle: rename to ak
- outpost: handle non-existent permission
- outpost: add recursion limit for docker controller
- outpost: add repair_permissions command
- root: add alias for akflow files
- root: add ASGI Error handler
- root: add License to NPM package
- root: fix error_handler for websocket
- root: fix mis-matched postgres version for CI
- root: remove remainders from gen
- root: remove usage of make-gen
- root: test schema auto-update
- root: update schema
- stages/password: auto-enable app password backend
- stages/user_write: fix wrong fallback authentication backend
- web: add custom readme to api client
- web: add ESM to generated Client
- web: build. api in different folder
- web: improve api client versioning
- web: Merge pull request #1258 from goauthentik/publish-api-to-npm
- web: migrate to @goauthentik/api
- web: Update Web API Client version (#1283)
- web/admin: allow users to create app password tokens
- web/admin: display token's intents
- web/admin: fix missing app passwords backend
- web/admin: improve delete modal for stage bindings and policy bindings
- web/admin: select all password stage backends by default
- website: add docs for making schema changes
- website: make default login-2fa flow ignore 2fa with app passwords
- website/docs: add docs for `auth_method` and `auth_method_args` fields
- ci: add pipeline to build and push js api package
- ci: upgrade web api client when schema changes
- core: add new token intent and auth backend (#1284)
- core: add token tests for invalid intent and token auth
- core: fix token intent not defaulting correctly
- core: handle error when ?for_user is not numerical
- lib: move id and key generators to lib (#1286)
- lifecycle: rename to ak
- outpost: handle non-existent permission
- outpost: add recursion limit for docker controller
- outpost: add repair_permissions command
- root: add alias for akflow files
- root: add ASGI Error handler
- root: add License to NPM package
- root: fix error_handler for websocket
- root: fix mis-matched postgres version for CI
- root: remove remainders from gen
- root: remove usage of make-gen
- root: test schema auto-update
- root: update schema
- stages/password: auto-enable app password backend
- stages/user_write: fix wrong fallback authentication backend
- web: add custom readme to api client
- web: add ESM to generated Client
- web: build. api in different folder
- web: improve api client versioning
- web: Merge pull request #1258 from goauthentik/publish-api-to-npm
- web: migrate to @goauthentik/api
- web: Update Web API Client version (#1283)
- web/admin: allow users to create app password tokens
- web/admin: display token's intents
- web/admin: fix missing app passwords backend
- web/admin: improve delete modal for stage bindings and policy bindings
- web/admin: select all password stage backends by default
- website: add docs for making schema changes
- website: make default login-2fa flow ignore 2fa with app passwords
- website/docs: add docs for `auth_method` and `auth_method_args` fields
## Fixed in 2021.8.1
- \*: cleanup api schema warnings
- core: fix error for asgi error handler with websockets
- core: fix error when user updates themselves
- core: fix user object for token not be set-able
- root: Fix table of contents for CONTRIBUTING.md (#1302)
- root: Require PG_PASS to be set (#1303)
- web/admin: allow admins to create tokens
- \*: cleanup api schema warnings
- core: fix error for asgi error handler with websockets
- core: fix error when user updates themselves
- core: fix user object for token not be set-able
- root: Fix table of contents for CONTRIBUTING.md (#1302)
- root: Require PG_PASS to be set (#1303)
- web/admin: allow admins to create tokens
## Fixed in 2021.8.2
- root: fix login loop created by old settings stored in cache
- root: fix login loop created by old settings stored in cache
## Fixed in 2021.8.3
- outpost: fix FlowExecutor not sending password for identification stage
- outpost: fix generated traefik labels containing invalid hosts
- outpost: make docker network configurable when using docker integration
- web/flow: fix redirects to application being sent multiple times, causing issues with OAuth providers
- web/flow: fix rendering of checkboxes in prompt stages
- outpost: fix FlowExecutor not sending password for identification stage
- outpost: fix generated traefik labels containing invalid hosts
- outpost: make docker network configurable when using docker integration
- web/flow: fix redirects to application being sent multiple times, causing issues with OAuth providers
- web/flow: fix rendering of checkboxes in prompt stages
## Fixed in 2021.8.4
- api: add /api/v3 path
- api: add basic rate limiting for sentry proxy endpoint
- core: fix user_obj being empty on token API
- events: improve logging for task exceptions
- outpost/embedded: only send requests for non-akprox paths when we're doing proxy mode
- outpost/ldap: delay user information removal upon closing of connection
- policies/password: fix PasswordStage not being usable with prompt stages
- providers/proxy: fix traefik middleware being generated with wrong ports for embedded outposts
- providers/proxy: improve error handling for non-tls ingresses
- stages/authenticator_validate: show single button for multiple webauthn authenticators
- stages/invitation: fix invitation not inheriting ExpiringModel
- web/admin: fallback for invitation list on first load
- web/admin: fix flow executor not opening in new tab
- web/admin: fix list of webauthn devices not updating after rename
- web/flows: fix FlowExecutor not updating when challenge changes from outside
- api: add /api/v3 path
- api: add basic rate limiting for sentry proxy endpoint
- core: fix user_obj being empty on token API
- events: improve logging for task exceptions
- outpost/embedded: only send requests for non-akprox paths when we're doing proxy mode
- outpost/ldap: delay user information removal upon closing of connection
- policies/password: fix PasswordStage not being usable with prompt stages
- providers/proxy: fix traefik middleware being generated with wrong ports for embedded outposts
- providers/proxy: improve error handling for non-tls ingresses
- stages/authenticator_validate: show single button for multiple webauthn authenticators
- stages/invitation: fix invitation not inheriting ExpiringModel
- web/admin: fallback for invitation list on first load
- web/admin: fix flow executor not opening in new tab
- web/admin: fix list of webauthn devices not updating after rename
- web/flows: fix FlowExecutor not updating when challenge changes from outside
## Fixed in 2021.8.5
- api: add additional filters for ldap and proxy providers
- api: cache schema, fix server urls
- core: minor query optimization
- events: add mark_all_seen
- events: remove authentik_events gauge
- internal: disable directory listing on static files
- internal: fix font loading errors on safari
- internal: fix web requests not having a logger set
- outpost: fix spans being sent without parent context
- outposts: add expected outpost replica count to metrics
- outposts/ldap: improve logging of client IPs
- policies/password: fix symbols not being checked correctly
- root: fix is_secure with safari on debug environments
- root: include authentik version in backup naming
- stages/identification: fix empty user_fields query returning first user
- web/admin: fix user selection in token form
- web/admin: show applications instead of providers in outpost form
- web/flows: fix display error when using IdentificationStage without input fields
- api: add additional filters for ldap and proxy providers
- api: cache schema, fix server urls
- core: minor query optimization
- events: add mark_all_seen
- events: remove authentik_events gauge
- internal: disable directory listing on static files
- internal: fix font loading errors on safari
- internal: fix web requests not having a logger set
- outpost: fix spans being sent without parent context
- outposts: add expected outpost replica count to metrics
- outposts/ldap: improve logging of client IPs
- policies/password: fix symbols not being checked correctly
- root: fix is_secure with safari on debug environments
- root: include authentik version in backup naming
- stages/identification: fix empty user_fields query returning first user
- web/admin: fix user selection in token form
- web/admin: show applications instead of providers in outpost form
- web/flows: fix display error when using IdentificationStage without input fields
## Upgrading

View File

@ -5,7 +5,7 @@ slug: "/releases/2021.9"
## Headline Changes
- Split user interface
- Split user interface
This release splits the administration interface from the end-user interface. This makes things clearer for end-users, as all their options are laid out more clearly.
@ -13,7 +13,7 @@ slug: "/releases/2021.9"
The admin interface remains the same, and familiar buttons will redirect you between interfaces.
- New proxy
- New proxy
The proxy outpost has been rewritten from scratch. This replaces the old proxy, which was based on oauth2_proxy. The new proxy allows us a much greater degree of flexibility, is much lighter and reports errors better.
@ -23,7 +23,7 @@ slug: "/releases/2021.9"
If you're using a manually deployed outpost, keep in mind that the ports change to 9000 and 9443 instead of 4180 and 4443
- New metrics
- New metrics
This version introduces new and simplified Prometheus metrics. There is a new common monitoring port across the server and all outposts, 9300. This port requires no authentication, making it easier to configure.
@ -31,166 +31,166 @@ slug: "/releases/2021.9"
## Minor changes
- \*: use common user agent for all outgoing requests
- admin: migrate to new update check, add option to disable update check
- api: add additional filters for ldap and proxy providers
- core: optimise groups api by removing member superuser status
- core: remove ?v from static files
- events: add mark_all_seen
- events: allow setting a mapping for webhook transport to customise request payloads
- internal: fix font loading errors on safari
- lifecycle: fix worker startup error when docker socket's group is not called docker
- outpost: fix spans being sent without parent context
- outpost: update global outpost config on refresh
- outposts: add expected outpost replica count to metrics
- outposts/controllers: re-create service when mismatched ports to prevent errors
- outposts/controllers/kubernetes: don't create service monitor for embedded outpost
- outposts/ldap: improve logging of client IPs
- policies/password: fix symbols not being checked correctly
- root: include authentik version in backup naming
- root: show location header in logs when redirecting
- sources/oauth: prevent potentially confidential data from being logged
- stages/authenticator_duo: add API to "import" devices from duo
- stages/identification: fix empty user_fields query returning first user
- tenants: optimise db queries in middleware
- web: allow duplicate messages
- web: ignore network error
- web/admin: fix notification clear all not triggering render
- web/admin: fix user selection in token form
- web/admin: increase default expiry for refresh tokens
- web/admin: show applications instead of providers in outpost form
- web/flows: fix display error when using IdentificationStage without input fields
- \*: use common user agent for all outgoing requests
- admin: migrate to new update check, add option to disable update check
- api: add additional filters for ldap and proxy providers
- core: optimise groups api by removing member superuser status
- core: remove ?v from static files
- events: add mark_all_seen
- events: allow setting a mapping for webhook transport to customise request payloads
- internal: fix font loading errors on safari
- lifecycle: fix worker startup error when docker socket's group is not called docker
- outpost: fix spans being sent without parent context
- outpost: update global outpost config on refresh
- outposts: add expected outpost replica count to metrics
- outposts/controllers: re-create service when mismatched ports to prevent errors
- outposts/controllers/kubernetes: don't create service monitor for embedded outpost
- outposts/ldap: improve logging of client IPs
- policies/password: fix symbols not being checked correctly
- root: include authentik version in backup naming
- root: show location header in logs when redirecting
- sources/oauth: prevent potentially confidential data from being logged
- stages/authenticator_duo: add API to "import" devices from duo
- stages/identification: fix empty user_fields query returning first user
- tenants: optimise db queries in middleware
- web: allow duplicate messages
- web: ignore network error
- web/admin: fix notification clear all not triggering render
- web/admin: fix user selection in token form
- web/admin: increase default expiry for refresh tokens
- web/admin: show applications instead of providers in outpost form
- web/flows: fix display error when using IdentificationStage without input fields
## Fixed in 2021.9.1-rc2
- core: fix token expiry for service accounts being only 30 minutes
- outposts: add consistent name and type to metrics
- outposts/proxy: remove deprecated rs256
- policies: improve error handling when using bindings without policy
- providers/saml: improved error handling
- stages/email: don't crash when testing stage does not exist
- web: update background image
- core: fix token expiry for service accounts being only 30 minutes
- outposts: add consistent name and type to metrics
- outposts/proxy: remove deprecated rs256
- policies: improve error handling when using bindings without policy
- providers/saml: improved error handling
- stages/email: don't crash when testing stage does not exist
- web: update background image
## Fixed in 2021.9.1-rc3
- core: allow admins to create tokens with all parameters, re-add user to token form
- core: fix tokens not being viewable but superusers
- root: log failed celery tasks to event log
- sources/ldap: bump timeout, run each sync component in its own task
- sources/ldap: improve messages of sync tasks in UI
- sources/ldap: prevent error when retrying old system task with no arguments
- web: fix datetime-local fields throwing errors on firefox
- web: fix text colour in delete form in dark mode
- web: improve display of action buttons with non-primary classes
- web/admin: fix error in firefox when creating token
- web/admin: fix ldap sync status for new API
- web/admin: fix settings link on user avatar
- web/admin: trigger refresh after syncing ldap
- web/user: add auto-focus search for applications
- web/user: add missing stop impersonation button
- web/user: fix edit button for applications
- web/user: fix final redirect after stage setup
- web/user: optimise load, fix unread status for notifications
- core: allow admins to create tokens with all parameters, re-add user to token form
- core: fix tokens not being viewable but superusers
- root: log failed celery tasks to event log
- sources/ldap: bump timeout, run each sync component in its own task
- sources/ldap: improve messages of sync tasks in UI
- sources/ldap: prevent error when retrying old system task with no arguments
- web: fix datetime-local fields throwing errors on firefox
- web: fix text colour in delete form in dark mode
- web: improve display of action buttons with non-primary classes
- web/admin: fix error in firefox when creating token
- web/admin: fix ldap sync status for new API
- web/admin: fix settings link on user avatar
- web/admin: trigger refresh after syncing ldap
- web/user: add auto-focus search for applications
- web/user: add missing stop impersonation button
- web/user: fix edit button for applications
- web/user: fix final redirect after stage setup
- web/user: optimise load, fix unread status for notifications
## Fixed in 2021.9.1
- api: disable include_format_suffixes
- core: fix token identifier not being slugified when created with user-controller input
- outposts: don't map port 9300 on docker, only expose port
- outposts: don't restart container when health checks are starting
- outposts/ldap: allow custom attributes to shadow built-in attributes
- policies/expression: add ak_user_has_authenticator
- root: use tagged go client version
- stages/email: don't throw 404 when token can't be found
- stages/email: slugify token identifier
- stages/email: use different query arguments for email and invitation tokens
- web: fix notification badge not refreshing after clearing notifications
- api: disable include_format_suffixes
- core: fix token identifier not being slugified when created with user-controller input
- outposts: don't map port 9300 on docker, only expose port
- outposts: don't restart container when health checks are starting
- outposts/ldap: allow custom attributes to shadow built-in attributes
- policies/expression: add ak_user_has_authenticator
- root: use tagged go client version
- stages/email: don't throw 404 when token can't be found
- stages/email: slugify token identifier
- stages/email: use different query arguments for email and invitation tokens
- web: fix notification badge not refreshing after clearing notifications
## Fixed in 2021.9.2
- api: add logging to sentry proxy
- internal: add asset paths for user interface
- web: fix import order of polyfills causing shadydom to not work on firefox and safari
- web/user: enable sentry
- api: add logging to sentry proxy
- internal: add asset paths for user interface
- web: fix import order of polyfills causing shadydom to not work on firefox and safari
- web/user: enable sentry
## Fixed in 2021.9.3
- core: fix api return code for user self-update
- events: add additional validation for event transport
- outposts: ensure service is always re-created with mismatching ports
- outposts: fix outposts not correctly updating central state
- outposts: make AUTHENTIK_HOST_BROWSER configurable from central config
- outposts/proxy: ensure cookies only last as long as tokens
- outposts/proxy: Fix failing traefik healthcheck (#1470)
- outposts/proxyv2: fix routing not working correctly for domain auth
- providers/proxy: add token_validity field for outpost configuration
- web/admin: add notice for recovery
- web/admin: fix NotificationWebhookMapping not loading correctly
- web/admin: fix Transport Form not loading mode correctly on edit
- web/admin: handle error correctly when creating user recovery link
- web/elements: fix token copy error in safari
- web/elements: improve error handling on forms
- web/user: fix brand not being shown in safari
- web/user: search apps when user typed before apps have loaded
- website/docs: fix typos and grammar (#1459)
- core: fix api return code for user self-update
- events: add additional validation for event transport
- outposts: ensure service is always re-created with mismatching ports
- outposts: fix outposts not correctly updating central state
- outposts: make AUTHENTIK_HOST_BROWSER configurable from central config
- outposts/proxy: ensure cookies only last as long as tokens
- outposts/proxy: Fix failing traefik healthcheck (#1470)
- outposts/proxyv2: fix routing not working correctly for domain auth
- providers/proxy: add token_validity field for outpost configuration
- web/admin: add notice for recovery
- web/admin: fix NotificationWebhookMapping not loading correctly
- web/admin: fix Transport Form not loading mode correctly on edit
- web/admin: handle error correctly when creating user recovery link
- web/elements: fix token copy error in safari
- web/elements: improve error handling on forms
- web/user: fix brand not being shown in safari
- web/user: search apps when user typed before apps have loaded
- website/docs: fix typos and grammar (#1459)
## Fixed in 2021.9.4
- outposts: allow disabling of docker controller port mapping
- outposts/proxy: fix duplicate protocol in domain auth mode
- root: Use fully qualified names for docker bases base images. (#1490)
- sources/ldap: add support for Active Directory `userAccountControl` attribute
- sources/ldap: don't sync ldap source when no property mappings are set
- web/admin: don't require username nor name for activate/deactivate toggles
- web/admin: fix LDAP Source form not exposing syncParentGroup
- web/elements: fix initialLoad not being done when viewportCheck was disabled
- web/elements: use dedicated button for search clear instead of webkit exclusive one
- outposts: allow disabling of docker controller port mapping
- outposts/proxy: fix duplicate protocol in domain auth mode
- root: Use fully qualified names for docker bases base images. (#1490)
- sources/ldap: add support for Active Directory `userAccountControl` attribute
- sources/ldap: don't sync ldap source when no property mappings are set
- web/admin: don't require username nor name for activate/deactivate toggles
- web/admin: fix LDAP Source form not exposing syncParentGroup
- web/elements: fix initialLoad not being done when viewportCheck was disabled
- web/elements: use dedicated button for search clear instead of webkit exclusive one
## Fixed in 2021.9.5
- events: add missing migration
- lifecycle: switch to h11 uvicorn worker for now
- outpost/proxy: fix missing negation for internal host ssl verification
- outposts: check ports of deployment in kubernetes outpost controller
- outposts: don't always build permissions on outpost.user access, only in signals and tasks
- outposts: fix circular import in kubernetes controller
- outposts/proxy: add new headers with unified naming
- outposts/proxy: show full error message when user is authenticated
- providers/ldap: use RDN when using posixGroup's memberUid attribute (#1514)
- providers/proxy: always check ingress secret in kubernetes controller
- sources/ldap: fix logic error in Active Directory account disabled status
- stages/email: add activate_user_on_success flag, add for all example flows
- stages/user_login: add check for user.is_active and tests
- tests/integration: fix tests failing due to incorrect comparison
- web/admin: fix search group label
- events: add missing migration
- lifecycle: switch to h11 uvicorn worker for now
- outpost/proxy: fix missing negation for internal host ssl verification
- outposts: check ports of deployment in kubernetes outpost controller
- outposts: don't always build permissions on outpost.user access, only in signals and tasks
- outposts: fix circular import in kubernetes controller
- outposts/proxy: add new headers with unified naming
- outposts/proxy: show full error message when user is authenticated
- providers/ldap: use RDN when using posixGroup's memberUid attribute (#1514)
- providers/proxy: always check ingress secret in kubernetes controller
- sources/ldap: fix logic error in Active Directory account disabled status
- stages/email: add activate_user_on_success flag, add for all example flows
- stages/user_login: add check for user.is_active and tests
- tests/integration: fix tests failing due to incorrect comparison
- web/admin: fix search group label
## Fixed in 2021.9.6
- admin: clear update notification when notification's version matches current version
- api: ensure viewsets have default ordering
- core: include group uuids in self serializer
- core: make user's name field fully options
- core: only return group names for user_self
- internal: add internal healthchecking to prevent websocket errors
- outposts: fix error when comparing ports in docker controller when port mapping is disabled
- root: add docker-native healthcheck for web and celery
- root: remove redundant internal network from compose
- web: add locale detection
- web: fix rendering of token copy button in dark mode
- web: fix strings not being translated at all when matching browser locale not found
- web/admin: only show outpost deployment info when not embedded
- web/elements: fix model form always loading when viewport check is disabled
- web/flows: adjust message for email stage
- web/user: don't show managed tokens in user interface
- admin: clear update notification when notification's version matches current version
- api: ensure viewsets have default ordering
- core: include group uuids in self serializer
- core: make user's name field fully options
- core: only return group names for user_self
- internal: add internal healthchecking to prevent websocket errors
- outposts: fix error when comparing ports in docker controller when port mapping is disabled
- root: add docker-native healthcheck for web and celery
- root: remove redundant internal network from compose
- web: add locale detection
- web: fix rendering of token copy button in dark mode
- web: fix strings not being translated at all when matching browser locale not found
- web/admin: only show outpost deployment info when not embedded
- web/elements: fix model form always loading when viewport check is disabled
- web/flows: adjust message for email stage
- web/user: don't show managed tokens in user interface
## Fixed in 2021.9.7
- root: fix syntax error in dockerfile healthcheck
- web/admin: fix description for flow import
- root: fix syntax error in dockerfile healthcheck
- web/admin: fix description for flow import
## Fixed in 2021.9.8
- web: fix interface crashing in non-blink browsers
- web: fix interface crashing in non-blink browsers
## Upgrading

View File

@ -7,126 +7,126 @@ slug: "/releases/2022.1"
This release mostly removes legacy fields and features that have been deprecated for several releases.
- LDAP Outposts:
- LDAP Outposts:
This release removes the `accountStatus` and `superuser` fields. Use the direct replacements `goauthentik.io/ldap/active` and `goauthentik.io/ldap/superuser`.
- Proxy Outposts:
- 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`
- 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` or `X-Original-URI` header are now required. See the [_Proxy provider_](../../add-secure-apps/providers/proxy/forward_auth.mdx) documentation for updated snippets.
- API:
- API:
The deprecated /api/v2beta/ Endpoint is removed. Use `/api/v3/`.
- Backup:
- 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
- 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()
- 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
- 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
- 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
- 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
- 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

File diff suppressed because it is too large Load Diff

View File

@ -5,18 +5,18 @@ slug: "/releases/2022.11"
## Breaking changes
- Have I Been Pwned policy is deprecated
- Have I Been Pwned policy is deprecated
The policy has been merged with the password policy which provides the same functionality. Existing Have I Been Pwned policies will automatically be migrated.
- Instead of using multiple redis databases, authentik now uses a single redis database
- Instead of using multiple redis databases, authentik now uses a single redis database
This will temporarily loose some cached information after the upgrade, like cached system tasks and policy results. This data will be re-cached in the background.
## New features
- authentik now runs on Python 3.11
- Expanded password policy
- authentik now runs on Python 3.11
- Expanded password policy
The "Have I been Pwned" policy has been merged into the password policy, and additionally passwords can be checked using [zxcvbn](https://github.com/dropbox/zxcvbn) to provider concise feedback.
@ -40,49 +40,49 @@ image:
## Minor changes/fixes
- api: fix missing scheme in securitySchemes
- blueprints: Fixed bug causing blueprint instance context be discarded (#3990)
- core: fix error when propertymappings return complex value
- core: simplify group serializer for user API endpoint (#3899)
- events: deepcopy event kwargs to prevent objects being removed, remove workaround
- events: sanitize generator for json safety
- lib: fix complex objects being included in event context for ak_create_event
- lifecycle: fix incorrect messages looped
- outposts/kubernetes: ingress class (#4002)
- policies: only cache policies for authenticated users
- policies/password: merge hibp add zxcvbn (#4001)
- providers/oauth2: fix inconsistent expiry encoded in JWT
- root: make sentry DSN configurable (#4016)
- root: relicense and launch blog post
- root: use single redis db (#4009)
- sources: add custom icon support (#4022)
- stages/authenticator\_\*: cleanup
- stages/authenticator_validate: add flag to configure user_verification for webauthn devices
- stages/invitation: directly delete invitation now that flow plan is saved in email token
- web: fix twitter icon
- web/flows: always hide static user info when its not set in the flow
- api: fix missing scheme in securitySchemes
- blueprints: Fixed bug causing blueprint instance context be discarded (#3990)
- core: fix error when propertymappings return complex value
- core: simplify group serializer for user API endpoint (#3899)
- events: deepcopy event kwargs to prevent objects being removed, remove workaround
- events: sanitize generator for json safety
- lib: fix complex objects being included in event context for ak_create_event
- lifecycle: fix incorrect messages looped
- outposts/kubernetes: ingress class (#4002)
- policies: only cache policies for authenticated users
- policies/password: merge hibp add zxcvbn (#4001)
- providers/oauth2: fix inconsistent expiry encoded in JWT
- root: make sentry DSN configurable (#4016)
- root: relicense and launch blog post
- root: use single redis db (#4009)
- sources: add custom icon support (#4022)
- stages/authenticator\_\*: cleanup
- stages/authenticator_validate: add flag to configure user_verification for webauthn devices
- stages/invitation: directly delete invitation now that flow plan is saved in email token
- web: fix twitter icon
- web/flows: always hide static user info when its not set in the flow
## Fixed in 2022.11.1
- blueprints: add desired state attribute to objects (#4061)
- core: fix tab-complete in shell
- root: fix build on arm64
- stages/email: add test for email translation
- web/admin: fix error when importing duo devices
- web/admin: reset cookie_domain when setting non-domain forward auth
- blueprints: add desired state attribute to objects (#4061)
- core: fix tab-complete in shell
- root: fix build on arm64
- stages/email: add test for email translation
- web/admin: fix error when importing duo devices
- web/admin: reset cookie_domain when setting non-domain forward auth
## Fixed in 2022.11.2
- \*: fix [CVE-2022-46145](../../security/cves/CVE-2022-46145.md), Reported by [@sdimovv](https://github.com/sdimovv)
- \*: fix [CVE-2022-46145](../../security/cves/CVE-2022-46145.md), Reported by [@sdimovv](https://github.com/sdimovv)
## Fixed in 2022.11.3
- web: fix Flow Form failing to load due to outdated API client
- web: fix Flow Form failing to load due to outdated API client
## Fixed in 2022.11.4
- \*: fix [CVE-2022-46172](../../security/cves/CVE-2022-46172.md), Reported by [@DreamingRaven](https://github.com/DreamingRaven)
- \*: fix [CVE-2022-23555](../../security/cves/CVE-2022-23555.md), Reported by [@fuomag9](https://github.com/fuomag9)
- \*: fix [CVE-2022-46172](../../security/cves/CVE-2022-46172.md), Reported by [@DreamingRaven](https://github.com/DreamingRaven)
- \*: fix [CVE-2022-23555](../../security/cves/CVE-2022-23555.md), Reported by [@fuomag9](https://github.com/fuomag9)
## API Changes
@ -96,19 +96,19 @@ image:
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed content type : `application/json`
- Added property `check_static_rules` (boolean)
- Added property `check_static_rules` (boolean)
- Added property `check_have_i_been_pwned` (boolean)
- Added property `check_have_i_been_pwned` (boolean)
- Added property `check_zxcvbn` (boolean)
- Added property `check_zxcvbn` (boolean)
- Added property `hibp_allowed_count` (integer)
- Added property `hibp_allowed_count` (integer)
> How many times the password hash is allowed to be on haveibeenpwned
- Added property `zxcvbn_score_threshold` (integer)
- Added property `zxcvbn_score_threshold` (integer)
> If the zxcvbn score is equal or less than this value, the policy will fail.
##### `PUT` /policies/password/&#123;policy_uuid&#125;/
@ -117,36 +117,36 @@ Changed response : **200 OK**
Changed content type : `application/json`
- Added property `check_static_rules` (boolean)
- Added property `check_static_rules` (boolean)
- Added property `check_have_i_been_pwned` (boolean)
- Added property `check_have_i_been_pwned` (boolean)
- Added property `check_zxcvbn` (boolean)
- Added property `check_zxcvbn` (boolean)
- Added property `hibp_allowed_count` (integer)
- Added property `hibp_allowed_count` (integer)
> How many times the password hash is allowed to be on haveibeenpwned
- Added property `zxcvbn_score_threshold` (integer)
- Added property `zxcvbn_score_threshold` (integer)
> If the zxcvbn score is equal or less than this value, the policy will fail.
###### Return Type:
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed content type : `application/json`
- Added property `check_static_rules` (boolean)
- Added property `check_static_rules` (boolean)
- Added property `check_have_i_been_pwned` (boolean)
- Added property `check_have_i_been_pwned` (boolean)
- Added property `check_zxcvbn` (boolean)
- Added property `check_zxcvbn` (boolean)
- Added property `hibp_allowed_count` (integer)
- Added property `hibp_allowed_count` (integer)
> How many times the password hash is allowed to be on haveibeenpwned
- Added property `zxcvbn_score_threshold` (integer)
- Added property `zxcvbn_score_threshold` (integer)
> If the zxcvbn score is equal or less than this value, the policy will fail.
##### `PATCH` /policies/password/&#123;policy_uuid&#125;/
@ -155,36 +155,36 @@ Changed response : **200 OK**
Changed content type : `application/json`
- Added property `check_static_rules` (boolean)
- Added property `check_static_rules` (boolean)
- Added property `check_have_i_been_pwned` (boolean)
- Added property `check_have_i_been_pwned` (boolean)
- Added property `check_zxcvbn` (boolean)
- Added property `check_zxcvbn` (boolean)
- Added property `hibp_allowed_count` (integer)
- Added property `hibp_allowed_count` (integer)
> How many times the password hash is allowed to be on haveibeenpwned
- Added property `zxcvbn_score_threshold` (integer)
- Added property `zxcvbn_score_threshold` (integer)
> If the zxcvbn score is equal or less than this value, the policy will fail.
###### Return Type:
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed content type : `application/json`
- Added property `check_static_rules` (boolean)
- Added property `check_static_rules` (boolean)
- Added property `check_have_i_been_pwned` (boolean)
- Added property `check_have_i_been_pwned` (boolean)
- Added property `check_zxcvbn` (boolean)
- Added property `check_zxcvbn` (boolean)
- Added property `hibp_allowed_count` (integer)
- Added property `hibp_allowed_count` (integer)
> How many times the password hash is allowed to be on haveibeenpwned
- Added property `zxcvbn_score_threshold` (integer)
- Added property `zxcvbn_score_threshold` (integer)
> If the zxcvbn score is equal or less than this value, the policy will fail.
##### `GET` /core/tokens/&#123;identifier&#125;/
@ -193,23 +193,23 @@ Changed response : **200 OK**
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed content type : `application/json`
- Changed property `user_obj` (object)
- Changed property `user_obj` (object)
> User Serializer
- Changed property `groups_obj` (array)
- Changed property `groups_obj` (array)
Changed items (object): > Simplified Group Serializer for user's groups
New optional properties:
- `users_obj`
- `users_obj`
* Deleted property `users` (array)
* Deleted property `users` (array)
* Deleted property `users_obj` (array)
* Deleted property `users_obj` (array)
##### `PUT` /core/tokens/&#123;identifier&#125;/
@ -217,23 +217,23 @@ Changed response : **200 OK**
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed content type : `application/json`
- Changed property `user_obj` (object)
- Changed property `user_obj` (object)
> User Serializer
- Changed property `groups_obj` (array)
- Changed property `groups_obj` (array)
Changed items (object): > Simplified Group Serializer for user's groups
New optional properties:
- `users_obj`
- `users_obj`
* Deleted property `users` (array)
* Deleted property `users` (array)
* Deleted property `users_obj` (array)
* Deleted property `users_obj` (array)
##### `PATCH` /core/tokens/&#123;identifier&#125;/
@ -241,23 +241,23 @@ Changed response : **200 OK**
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed content type : `application/json`
- Changed property `user_obj` (object)
- Changed property `user_obj` (object)
> User Serializer
- Changed property `groups_obj` (array)
- Changed property `groups_obj` (array)
Changed items (object): > Simplified Group Serializer for user's groups
New optional properties:
- `users_obj`
- `users_obj`
* Deleted property `users` (array)
* Deleted property `users` (array)
* Deleted property `users_obj` (array)
* Deleted property `users_obj` (array)
##### `GET` /core/users/&#123;id&#125;/
@ -265,19 +265,19 @@ Changed response : **200 OK**
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed content type : `application/json`
- Changed property `groups_obj` (array)
- Changed property `groups_obj` (array)
Changed items (object): > Simplified Group Serializer for user's groups
New optional properties:
- `users_obj`
- `users_obj`
* Deleted property `users` (array)
* Deleted property `users` (array)
* Deleted property `users_obj` (array)
* Deleted property `users_obj` (array)
##### `PUT` /core/users/&#123;id&#125;/
@ -285,19 +285,19 @@ Changed response : **200 OK**
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed content type : `application/json`
- Changed property `groups_obj` (array)
- Changed property `groups_obj` (array)
Changed items (object): > Simplified Group Serializer for user's groups
New optional properties:
- `users_obj`
- `users_obj`
* Deleted property `users` (array)
* Deleted property `users` (array)
* Deleted property `users_obj` (array)
* Deleted property `users_obj` (array)
##### `PATCH` /core/users/&#123;id&#125;/
@ -305,19 +305,19 @@ Changed response : **200 OK**
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed content type : `application/json`
- Changed property `groups_obj` (array)
- Changed property `groups_obj` (array)
Changed items (object): > Simplified Group Serializer for user's groups
New optional properties:
- `users_obj`
- `users_obj`
* Deleted property `users` (array)
* Deleted property `users` (array)
* Deleted property `users_obj` (array)
* Deleted property `users_obj` (array)
##### `GET` /policies/bindings/&#123;policy_binding_uuid&#125;/
@ -325,23 +325,23 @@ Changed response : **200 OK**
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed content type : `application/json`
- Changed property `user_obj` (object)
- Changed property `user_obj` (object)
> User Serializer
- Changed property `groups_obj` (array)
- Changed property `groups_obj` (array)
Changed items (object): > Simplified Group Serializer for user's groups
New optional properties:
- `users_obj`
- `users_obj`
* Deleted property `users` (array)
* Deleted property `users` (array)
* Deleted property `users_obj` (array)
* Deleted property `users_obj` (array)
##### `PUT` /policies/bindings/&#123;policy_binding_uuid&#125;/
@ -349,23 +349,23 @@ Changed response : **200 OK**
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed content type : `application/json`
- Changed property `user_obj` (object)
- Changed property `user_obj` (object)
> User Serializer
- Changed property `groups_obj` (array)
- Changed property `groups_obj` (array)
Changed items (object): > Simplified Group Serializer for user's groups
New optional properties:
- `users_obj`
- `users_obj`
* Deleted property `users` (array)
* Deleted property `users` (array)
* Deleted property `users_obj` (array)
* Deleted property `users_obj` (array)
##### `PATCH` /policies/bindings/&#123;policy_binding_uuid&#125;/
@ -373,23 +373,23 @@ Changed response : **200 OK**
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed content type : `application/json`
- Changed property `user_obj` (object)
- Changed property `user_obj` (object)
> User Serializer
- Changed property `groups_obj` (array)
- Changed property `groups_obj` (array)
Changed items (object): > Simplified Group Serializer for user's groups
New optional properties:
- `users_obj`
- `users_obj`
* Deleted property `users` (array)
* Deleted property `users` (array)
* Deleted property `users_obj` (array)
* Deleted property `users_obj` (array)
##### `POST` /policies/password/
@ -397,36 +397,36 @@ Changed response : **200 OK**
Changed content type : `application/json`
- Added property `check_static_rules` (boolean)
- Added property `check_static_rules` (boolean)
- Added property `check_have_i_been_pwned` (boolean)
- Added property `check_have_i_been_pwned` (boolean)
- Added property `check_zxcvbn` (boolean)
- Added property `check_zxcvbn` (boolean)
- Added property `hibp_allowed_count` (integer)
- Added property `hibp_allowed_count` (integer)
> How many times the password hash is allowed to be on haveibeenpwned
- Added property `zxcvbn_score_threshold` (integer)
- Added property `zxcvbn_score_threshold` (integer)
> If the zxcvbn score is equal or less than this value, the policy will fail.
###### Return Type:
Changed response : **201 Created**
- Changed content type : `application/json`
- Changed content type : `application/json`
- Added property `check_static_rules` (boolean)
- Added property `check_static_rules` (boolean)
- Added property `check_have_i_been_pwned` (boolean)
- Added property `check_have_i_been_pwned` (boolean)
- Added property `check_zxcvbn` (boolean)
- Added property `check_zxcvbn` (boolean)
- Added property `hibp_allowed_count` (integer)
- Added property `hibp_allowed_count` (integer)
> How many times the password hash is allowed to be on haveibeenpwned
- Added property `zxcvbn_score_threshold` (integer)
- Added property `zxcvbn_score_threshold` (integer)
> If the zxcvbn score is equal or less than this value, the policy will fail.
##### `GET` /policies/password/
@ -447,23 +447,23 @@ Added: `zxcvbn_score_threshold` in `query`
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed content type : `application/json`
- Changed property `results` (array)
- Changed property `results` (array)
Changed items (object): > Password Policy Serializer
- Added property `check_static_rules` (boolean)
- Added property `check_static_rules` (boolean)
- Added property `check_have_i_been_pwned` (boolean)
- Added property `check_have_i_been_pwned` (boolean)
- Added property `check_zxcvbn` (boolean)
- Added property `check_zxcvbn` (boolean)
- Added property `hibp_allowed_count` (integer)
- Added property `hibp_allowed_count` (integer)
> How many times the password hash is allowed to be on haveibeenpwned
- Added property `zxcvbn_score_threshold` (integer)
- Added property `zxcvbn_score_threshold` (integer)
> If the zxcvbn score is equal or less than this value, the policy will fail.
##### `POST` /core/tokens/
@ -472,23 +472,23 @@ Changed response : **200 OK**
Changed response : **201 Created**
- Changed content type : `application/json`
- Changed content type : `application/json`
- Changed property `user_obj` (object)
- Changed property `user_obj` (object)
> User Serializer
- Changed property `groups_obj` (array)
- Changed property `groups_obj` (array)
Changed items (object): > Simplified Group Serializer for user's groups
New optional properties:
- `users_obj`
- `users_obj`
* Deleted property `users` (array)
* Deleted property `users` (array)
* Deleted property `users_obj` (array)
* Deleted property `users_obj` (array)
##### `GET` /core/tokens/
@ -496,27 +496,27 @@ Changed response : **201 Created**
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed content type : `application/json`
- Changed property `results` (array)
- Changed property `results` (array)
Changed items (object): > Token Serializer
- Changed property `user_obj` (object)
- Changed property `user_obj` (object)
> User Serializer
- Changed property `groups_obj` (array)
- Changed property `groups_obj` (array)
Changed items (object): > Simplified Group Serializer for user's groups
New optional properties:
- `users_obj`
- `users_obj`
* Deleted property `users` (array)
* Deleted property `users` (array)
* Deleted property `users_obj` (array)
* Deleted property `users_obj` (array)
##### `GET` /core/user_consent/&#123;id&#125;/
@ -524,23 +524,23 @@ Changed response : **200 OK**
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed content type : `application/json`
- Changed property `user` (object)
- Changed property `user` (object)
> User Serializer
- Changed property `groups_obj` (array)
- Changed property `groups_obj` (array)
Changed items (object): > Simplified Group Serializer for user's groups
New optional properties:
- `users_obj`
- `users_obj`
* Deleted property `users` (array)
* Deleted property `users` (array)
* Deleted property `users_obj` (array)
* Deleted property `users_obj` (array)
##### `POST` /core/users/
@ -548,19 +548,19 @@ Changed response : **200 OK**
Changed response : **201 Created**
- Changed content type : `application/json`
- Changed content type : `application/json`
- Changed property `groups_obj` (array)
- Changed property `groups_obj` (array)
Changed items (object): > Simplified Group Serializer for user's groups
New optional properties:
- `users_obj`
- `users_obj`
* Deleted property `users` (array)
* Deleted property `users` (array)
* Deleted property `users_obj` (array)
* Deleted property `users_obj` (array)
##### `GET` /core/users/
@ -568,23 +568,23 @@ Changed response : **201 Created**
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed content type : `application/json`
- Changed property `results` (array)
- Changed property `results` (array)
Changed items (object): > User Serializer
- Changed property `groups_obj` (array)
- Changed property `groups_obj` (array)
Changed items (object): > Simplified Group Serializer for user's groups
New optional properties:
- `users_obj`
- `users_obj`
* Deleted property `users` (array)
* Deleted property `users` (array)
* Deleted property `users_obj` (array)
* Deleted property `users_obj` (array)
##### `GET` /oauth2/authorization_codes/&#123;id&#125;/
@ -592,23 +592,23 @@ Changed response : **200 OK**
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed content type : `application/json`
- Changed property `user` (object)
- Changed property `user` (object)
> User Serializer
- Changed property `groups_obj` (array)
- Changed property `groups_obj` (array)
Changed items (object): > Simplified Group Serializer for user's groups
New optional properties:
- `users_obj`
- `users_obj`
* Deleted property `users` (array)
* Deleted property `users` (array)
* Deleted property `users_obj` (array)
* Deleted property `users_obj` (array)
##### `GET` /oauth2/refresh_tokens/&#123;id&#125;/
@ -616,23 +616,23 @@ Changed response : **200 OK**
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed content type : `application/json`
- Changed property `user` (object)
- Changed property `user` (object)
> User Serializer
- Changed property `groups_obj` (array)
- Changed property `groups_obj` (array)
Changed items (object): > Simplified Group Serializer for user's groups
New optional properties:
- `users_obj`
- `users_obj`
* Deleted property `users` (array)
* Deleted property `users` (array)
* Deleted property `users_obj` (array)
* Deleted property `users_obj` (array)
##### `POST` /policies/bindings/
@ -640,23 +640,23 @@ Changed response : **200 OK**
Changed response : **201 Created**
- Changed content type : `application/json`
- Changed content type : `application/json`
- Changed property `user_obj` (object)
- Changed property `user_obj` (object)
> User Serializer
- Changed property `groups_obj` (array)
- Changed property `groups_obj` (array)
Changed items (object): > Simplified Group Serializer for user's groups
New optional properties:
- `users_obj`
- `users_obj`
* Deleted property `users` (array)
* Deleted property `users` (array)
* Deleted property `users_obj` (array)
* Deleted property `users_obj` (array)
##### `GET` /policies/bindings/
@ -664,27 +664,27 @@ Changed response : **201 Created**
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed content type : `application/json`
- Changed property `results` (array)
- Changed property `results` (array)
Changed items (object): > PolicyBinding Serializer
- Changed property `user_obj` (object)
- Changed property `user_obj` (object)
> User Serializer
- Changed property `groups_obj` (array)
- Changed property `groups_obj` (array)
Changed items (object): > Simplified Group Serializer for user's groups
New optional properties:
- `users_obj`
- `users_obj`
* Deleted property `users` (array)
* Deleted property `users` (array)
* Deleted property `users_obj` (array)
* Deleted property `users_obj` (array)
##### `GET` /core/user_consent/
@ -692,27 +692,27 @@ Changed response : **200 OK**
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed content type : `application/json`
- Changed property `results` (array)
- Changed property `results` (array)
Changed items (object): > UserConsent Serializer
- Changed property `user` (object)
- Changed property `user` (object)
> User Serializer
- Changed property `groups_obj` (array)
- Changed property `groups_obj` (array)
Changed items (object): > Simplified Group Serializer for user's groups
New optional properties:
- `users_obj`
- `users_obj`
* Deleted property `users` (array)
* Deleted property `users` (array)
* Deleted property `users_obj` (array)
* Deleted property `users_obj` (array)
##### `GET` /oauth2/authorization_codes/
@ -720,27 +720,27 @@ Changed response : **200 OK**
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed content type : `application/json`
- Changed property `results` (array)
- Changed property `results` (array)
Changed items (object): > Serializer for BaseGrantModel and ExpiringBaseGrant
- Changed property `user` (object)
- Changed property `user` (object)
> User Serializer
- Changed property `groups_obj` (array)
- Changed property `groups_obj` (array)
Changed items (object): > Simplified Group Serializer for user's groups
New optional properties:
- `users_obj`
- `users_obj`
* Deleted property `users` (array)
* Deleted property `users` (array)
* Deleted property `users_obj` (array)
* Deleted property `users_obj` (array)
##### `GET` /oauth2/refresh_tokens/
@ -748,24 +748,24 @@ Changed response : **200 OK**
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed content type : `application/json`
- Changed property `results` (array)
- Changed property `results` (array)
Changed items (object): > Serializer for BaseGrantModel and RefreshToken
- Changed property `user` (object)
- Changed property `user` (object)
> User Serializer
- Changed property `groups_obj` (array)
- Changed property `groups_obj` (array)
Changed items (object): > Simplified Group Serializer for user's groups
New optional properties:
- `users_obj`
- `users_obj`
* Deleted property `users` (array)
* Deleted property `users` (array)
* Deleted property `users_obj` (array)
* Deleted property `users_obj` (array)

View File

@ -5,17 +5,17 @@ slug: "/releases/2022.12"
## Breaking changes
- Blueprints fetched via OCI require oci:// schema
- Blueprints fetched via OCI require oci:// schema
To better detect if a blueprint should be fetched locally or via OCI, all OCI sourced blueprints require an `oci://` protocol.
## New features
- Bundled GeoIP City database
- Bundled GeoIP City database
authentik now comes with a bundled MaxMind GeoLite2 City database. This allows everyone to take advantage of the extra data provided by GeoIP. The default docker-compose file removes the GeoIP update container as it is no longer needed. See more [here](../../sys-mgmt/ops/geoip.mdx).
- Improved UX for user & group management and stage/policy binding
- Improved UX for user & group management and stage/policy binding
Users can now more easily be added to and removed from groups, both when viewing a single user and viewing a group.
@ -23,11 +23,11 @@ slug: "/releases/2022.12"
Select inputs were previously limited to showing a single page of items (default size of 100 items). These inputs have been replaced by dynamically loading inputs which support searching and better show the properties of the item.
- Preview for OAuth2 and SAML providers
- Preview for OAuth2 and SAML providers
OAuth2 and SAML providers can now preview what the currently selected property/scope mappings's outcome will look like. This helps with seeing what data is sent to the client and implementing and testing custom mappings.
- Customisable Captcha stage
- Customisable Captcha stage
The captcha stage now supports alternate compatible providers, like [hCaptcha](https://docs.hcaptcha.com/switch/) and [Turnstile](https://developers.cloudflare.com/turnstile/get-started/migrating-from-recaptcha/).
@ -51,124 +51,124 @@ image:
## Minor changes/fixes
- blueprints: add !Env tag
- blueprints: add `!If` tag (#4264)
- blueprints: add conditions to blueprint schema
- blueprints: Added conditional entry application (#4167)
- blueprints: better OCI support in UI (#4263)
- blueprints: fixed bug causing filtering with an empty query (#4106)
- blueprints: Support nested custom tags in `!Find` and `!Format` tags (#4127)
- core: add endpoints to add/remove users from group atomically
- core: bundle geoip (#4250)
- events: fix incorrect EventAction being used
- events: improve handling creation of events with non-pickleable objects
- events: remove legacy logger declaration
- events: save login event in session after login
- flows: fix redirect from plan context "redirect" not being wrapped in flow response
- flows: set stage name and verbose_name for in_memory stages
- internal: dont error if environment config isn't found
- internal: remove sentry proxy
- internal: reuse http transport to prevent leaking connections (#3996)
- lib: enable sentry profiles_sample_rate
- lib: fix uploaded files not being saved correctly, add tests
- lifecycle: don't set user/group in gunicorn
- lifecycle: improve explanation for user: root and docket socket mount
- policies: don't log context when policy returns None
- policies: log correct cache state
- policies: make name required
- policies/password: Always add generic message to failing zxcvbn check (#4100)
- providers: add preview for mappings (#4254)
- providers/ldap: improve mapping of LDAP filters to authentik queries
- providers/oauth2: optimise and cache signing key, prevent key being loaded multiple times
- providers/oauth2: set amr values based on login event
- providers/proxy: correctly set id_token_hint if possible
- providers/saml: set AuthnContextClassRef based on login event
- root: allow custom settings via python module
- root: migrate to hosted sentry with rate-limited DSN
- security: fix CVE 2022 23555 (#4274)
- security: fix CVE 2022 46145 (#4140)
- security: fix CVE 2022 46172 (#4275)
- stages/authenticator_duo: fix imported duo devices not being confirmed
- stages/authenticator_validate: fix validation to ensure configuration stage is set
- stages/authenticator_validate: improve validation for not_configured_action
- stages/authenticator_validate: log duo error
- stages/authenticator_validate: save used mfa devices in login event
- stages/captcha: customisable URLs (#3832)
- stages/invitation: fix incorrect pk check for invitation's flow
- stages/user_login: prevent double success message when logging in via source
- stages/user_write: always ignore `component` field and prevent warning
- web: fix authentication with Plex on iOS (#4095)
- web: ignore d3 circular deps warning, treat unresolved import as error
- web: use version family subdomain for in-app doc links
- web/admin: better show metadata download for saml provider
- web/admin: break all in code blocks in event info
- web/admin: clarify phrasing that user ID is required
- web/admin: fix action button order for blueprints
- web/admin: fix alignment in tables with multiple elements in cell
- web/admin: fix empty request being sent due to multiple forms in duo import modal
- web/admin: improve i18n for documentation link in outpost form
- web/admin: improve UI for removing users from groups and groups from users
- web/admin: improve user/group UX for adding/removing users to and from groups
- web/admin: more consistent label usage, use compact labels
- web/admin: rework markdown, correctly render Admonitions, fix links
- web/admin: show bound policies order first to match stages
- web/admin: show policy binding form when creating policy in bound list
- web/admin: show stage binding form when creating stage in bound list
- web/elements: fix alignment for checkboxes in table
- web/elements: fix alignment with checkbox in table
- web/elements: fix log level for diagram
- web/elements: fix table select-all checkbox being checked with no elements
- web/elements: fix wizard form page changing state before being active
- web/elements: unselect top checkbox in table when not all elements are selected
- web/flows: fix display for long redirect URLs
- web/flows: improve error messages for failed duo push
- web/flows: update flow background
- web/user: fix styling for clear all button in notification drawer
- blueprints: add !Env tag
- blueprints: add `!If` tag (#4264)
- blueprints: add conditions to blueprint schema
- blueprints: Added conditional entry application (#4167)
- blueprints: better OCI support in UI (#4263)
- blueprints: fixed bug causing filtering with an empty query (#4106)
- blueprints: Support nested custom tags in `!Find` and `!Format` tags (#4127)
- core: add endpoints to add/remove users from group atomically
- core: bundle geoip (#4250)
- events: fix incorrect EventAction being used
- events: improve handling creation of events with non-pickleable objects
- events: remove legacy logger declaration
- events: save login event in session after login
- flows: fix redirect from plan context "redirect" not being wrapped in flow response
- flows: set stage name and verbose_name for in_memory stages
- internal: dont error if environment config isn't found
- internal: remove sentry proxy
- internal: reuse http transport to prevent leaking connections (#3996)
- lib: enable sentry profiles_sample_rate
- lib: fix uploaded files not being saved correctly, add tests
- lifecycle: don't set user/group in gunicorn
- lifecycle: improve explanation for user: root and docket socket mount
- policies: don't log context when policy returns None
- policies: log correct cache state
- policies: make name required
- policies/password: Always add generic message to failing zxcvbn check (#4100)
- providers: add preview for mappings (#4254)
- providers/ldap: improve mapping of LDAP filters to authentik queries
- providers/oauth2: optimise and cache signing key, prevent key being loaded multiple times
- providers/oauth2: set amr values based on login event
- providers/proxy: correctly set id_token_hint if possible
- providers/saml: set AuthnContextClassRef based on login event
- root: allow custom settings via python module
- root: migrate to hosted sentry with rate-limited DSN
- security: fix CVE 2022 23555 (#4274)
- security: fix CVE 2022 46145 (#4140)
- security: fix CVE 2022 46172 (#4275)
- stages/authenticator_duo: fix imported duo devices not being confirmed
- stages/authenticator_validate: fix validation to ensure configuration stage is set
- stages/authenticator_validate: improve validation for not_configured_action
- stages/authenticator_validate: log duo error
- stages/authenticator_validate: save used mfa devices in login event
- stages/captcha: customisable URLs (#3832)
- stages/invitation: fix incorrect pk check for invitation's flow
- stages/user_login: prevent double success message when logging in via source
- stages/user_write: always ignore `component` field and prevent warning
- web: fix authentication with Plex on iOS (#4095)
- web: ignore d3 circular deps warning, treat unresolved import as error
- web: use version family subdomain for in-app doc links
- web/admin: better show metadata download for saml provider
- web/admin: break all in code blocks in event info
- web/admin: clarify phrasing that user ID is required
- web/admin: fix action button order for blueprints
- web/admin: fix alignment in tables with multiple elements in cell
- web/admin: fix empty request being sent due to multiple forms in duo import modal
- web/admin: improve i18n for documentation link in outpost form
- web/admin: improve UI for removing users from groups and groups from users
- web/admin: improve user/group UX for adding/removing users to and from groups
- web/admin: more consistent label usage, use compact labels
- web/admin: rework markdown, correctly render Admonitions, fix links
- web/admin: show bound policies order first to match stages
- web/admin: show policy binding form when creating policy in bound list
- web/admin: show stage binding form when creating stage in bound list
- web/elements: fix alignment for checkboxes in table
- web/elements: fix alignment with checkbox in table
- web/elements: fix log level for diagram
- web/elements: fix table select-all checkbox being checked with no elements
- web/elements: fix wizard form page changing state before being active
- web/elements: unselect top checkbox in table when not all elements are selected
- web/flows: fix display for long redirect URLs
- web/flows: improve error messages for failed duo push
- web/flows: update flow background
- web/user: fix styling for clear all button in notification drawer
## Fixed in 2022.12.1
- api: add filter backend for secret key to allow access to tenants and certificates
- blueprints: fix error when entry with state absent doesn't exist
- blueprints: Resolve yamltags in state and model attributes (#4299)
- outposts: include hostname in outpost heartbeat
- outposts/ldap: only use common cert if cert is configured
- outposts/ldap: use configured certificate for LDAPS when all providers' certificates are identical
- web/admin: migrate selection to ak-search-select
- web/admin: rework outpost health
- web/elements: add grouping and descriptions to search select
- web/elements: make ak-search-select limited in height and scroll
- web/elements: render ak-seach-select dropdown correctly in modals
- web/user: fix user settings stuck loading
- api: add filter backend for secret key to allow access to tenants and certificates
- blueprints: fix error when entry with state absent doesn't exist
- blueprints: Resolve yamltags in state and model attributes (#4299)
- outposts: include hostname in outpost heartbeat
- outposts/ldap: only use common cert if cert is configured
- outposts/ldap: use configured certificate for LDAPS when all providers' certificates are identical
- web/admin: migrate selection to ak-search-select
- web/admin: rework outpost health
- web/elements: add grouping and descriptions to search select
- web/elements: make ak-search-select limited in height and scroll
- web/elements: render ak-seach-select dropdown correctly in modals
- web/user: fix user settings stuck loading
## Fixed in 2022.12.2
- admin: use matching environment for system API
- crypto: fix type for has_key
- providers/oauth2: fix null amr value not being removed from id_token
- providers/saml: don't error if no request in API serializer context
- stages/captcha: fix captcha not loading correctly, add tests
- stages/dummy: add toggle to throw error for debugging
- stages/email: make template tests less flaky
- stages/email: use pending user correctly
- stages/prompt: use stage.get_pending_user() to fallback to the correct user
- web: add check compile test to prevent compile errors/warnings
- web: ensure locales are built for tsc check
- web: update tsconfig strictness
- web/admin: add Radio control, search-select fixes (#4333)
- web/admin: fix error in outpost form dropdown
- web/admin: fix error when creating SAML Provider from metadata
- web/elements: correctly display selected empty option when blankable is enabled
- web/elements: fix dropdown menu closing before selecting item sometimes
- web/elements: fix selection of blank elements in search-select, fix issue when re-opening dropdown
- web/elements: tabs: only find pages for directly related slots
- web/elements: trigger search select data update on connected callback
- web/flows: add close button to flow inspector
- web/flows: fix alternate captchas not loading
- web/flows: rework error display, always use ak-stage-flow-error instead of shell
- admin: use matching environment for system API
- crypto: fix type for has_key
- providers/oauth2: fix null amr value not being removed from id_token
- providers/saml: don't error if no request in API serializer context
- stages/captcha: fix captcha not loading correctly, add tests
- stages/dummy: add toggle to throw error for debugging
- stages/email: make template tests less flaky
- stages/email: use pending user correctly
- stages/prompt: use stage.get_pending_user() to fallback to the correct user
- web: add check compile test to prevent compile errors/warnings
- web: ensure locales are built for tsc check
- web: update tsconfig strictness
- web/admin: add Radio control, search-select fixes (#4333)
- web/admin: fix error in outpost form dropdown
- web/admin: fix error when creating SAML Provider from metadata
- web/elements: correctly display selected empty option when blankable is enabled
- web/elements: fix dropdown menu closing before selecting item sometimes
- web/elements: fix selection of blank elements in search-select, fix issue when re-opening dropdown
- web/elements: tabs: only find pages for directly related slots
- web/elements: trigger search select data update on connected callback
- web/flows: add close button to flow inspector
- web/flows: fix alternate captchas not loading
- web/flows: rework error display, always use ak-stage-flow-error instead of shell
## Fixed in 2022.12.3
- \*: fix [CVE-2023-26481](../../security/cves/CVE-2023-26481.md), Reported by [@fuomag9](https://github.com/fuomag9)
- \*: fix [CVE-2023-26481](../../security/cves/CVE-2023-26481.md), Reported by [@fuomag9](https://github.com/fuomag9)
## API Changes
@ -182,13 +182,13 @@ image:
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed content type : `application/json`
- Added property `js_url` (string)
- Added property `js_url` (string)
- Added property `api_url` (string)
- Added property `api_url` (string)
- Changed property `public_key` (string)
- Changed property `public_key` (string)
> Public key, acquired your captcha Provider.
##### `PUT` /stages/captcha/&#123;stage_uuid&#125;/
@ -197,28 +197,28 @@ Changed response : **200 OK**
Changed content type : `application/json`
- Added property `js_url` (string)
- Added property `js_url` (string)
- Added property `api_url` (string)
- Added property `api_url` (string)
- Changed property `public_key` (string)
- Changed property `public_key` (string)
> Public key, acquired your captcha Provider.
- Changed property `private_key` (string)
- Changed property `private_key` (string)
> Private key, acquired your captcha Provider.
###### Return Type:
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed content type : `application/json`
- Added property `js_url` (string)
- Added property `js_url` (string)
- Added property `api_url` (string)
- Added property `api_url` (string)
- Changed property `public_key` (string)
- Changed property `public_key` (string)
> Public key, acquired your captcha Provider.
##### `PATCH` /stages/captcha/&#123;stage_uuid&#125;/
@ -227,28 +227,28 @@ Changed response : **200 OK**
Changed content type : `application/json`
- Added property `js_url` (string)
- Added property `js_url` (string)
- Added property `api_url` (string)
- Added property `api_url` (string)
- Changed property `public_key` (string)
- Changed property `public_key` (string)
> Public key, acquired your captcha Provider.
- Changed property `private_key` (string)
- Changed property `private_key` (string)
> Private key, acquired your captcha Provider.
###### Return Type:
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed content type : `application/json`
- Added property `js_url` (string)
- Added property `js_url` (string)
- Added property `api_url` (string)
- Added property `api_url` (string)
- Changed property `public_key` (string)
- Changed property `public_key` (string)
> Public key, acquired your captcha Provider.
##### `GET` /flows/executor/&#123;flow_slug&#125;/
@ -257,14 +257,14 @@ Changed response : **200 OK**
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed content type : `application/json`
Updated `ak-stage-captcha` component:
New required properties:
- `js_url`
- `js_url`
* Added property `js_url` (string)
* Added property `js_url` (string)
##### `POST` /flows/executor/&#123;flow_slug&#125;/
@ -272,14 +272,14 @@ Changed response : **200 OK**
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed content type : `application/json`
Updated `ak-stage-captcha` component:
New required properties:
- `js_url`
- `js_url`
* Added property `js_url` (string)
* Added property `js_url` (string)
##### `POST` /stages/captcha/
@ -287,28 +287,28 @@ Changed response : **200 OK**
Changed content type : `application/json`
- Added property `js_url` (string)
- Added property `js_url` (string)
- Added property `api_url` (string)
- Added property `api_url` (string)
- Changed property `public_key` (string)
- Changed property `public_key` (string)
> Public key, acquired your captcha Provider.
- Changed property `private_key` (string)
- Changed property `private_key` (string)
> Private key, acquired your captcha Provider.
###### Return Type:
Changed response : **201 Created**
- Changed content type : `application/json`
- Changed content type : `application/json`
- Added property `js_url` (string)
- Added property `js_url` (string)
- Added property `api_url` (string)
- Added property `api_url` (string)
- Changed property `public_key` (string)
- Changed property `public_key` (string)
> Public key, acquired your captcha Provider.
##### `GET` /stages/captcha/
@ -317,15 +317,15 @@ Changed response : **201 Created**
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed content type : `application/json`
- Changed property `results` (array)
- Changed property `results` (array)
Changed items (object): > CaptchaStage Serializer
- Added property `js_url` (string)
- Added property `js_url` (string)
- Added property `api_url` (string)
- Added property `api_url` (string)
- Changed property `public_key` (string)
- Changed property `public_key` (string)
> Public key, acquired your captcha Provider.

View File

@ -9,14 +9,14 @@ slug: "/releases/2022.2"
The integrated backup functionality has been removed due to the following reasons:
- It caused a lot of issues during restore, with things breaking and difficult to restore backups
- Limited compatibility (only supported local and S3 backups)
- Most environments already have a solution for backups, so we feel that investing more time into making this feature better should be spent on more important things.
- It caused a lot of issues during restore, with things breaking and difficult to restore backups
- Limited compatibility (only supported local and S3 backups)
- Most environments already have a solution for backups, so we feel that investing more time into making this feature better should be spent on more important things.
If you don't already have a standard backup solution for other applications, you can consider these replacements:
- https://github.com/kartoza/docker-pg-backup for docker-compose and
- https://devtron.ai/blog/creating-a-kubernetes-cron-job-to-backup-postgres-db/ or https://cwienczek.com/2020/06/simple-backup-of-postgres-database-in-kubernetes/ for Kubernetes
- https://github.com/kartoza/docker-pg-backup for docker-compose and
- https://devtron.ai/blog/creating-a-kubernetes-cron-job-to-backup-postgres-db/ or https://cwienczek.com/2020/06/simple-backup-of-postgres-database-in-kubernetes/ for Kubernetes
### Changed URLs for forward auth
@ -30,38 +30,38 @@ In an authenticator validation stage you can now configure multiple configuratio
## Minor changes/fixes
- \*: add placeholder custom.css to easily allow user customisation
- \*: rename akprox to outpost.goauthentik.io (#2266)
- internal: don't attempt to lookup SNI Certificate if no SNI is sent
- internal: improve error handling for internal reverse proxy
- internal: increase logging for no hostname found
- internal: remove uvicorn server header
- outposts: ensure keypair is set for SSH connections
- 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: make local discovery configurable
- outposts: remove node_port on V1ServicePort checks to prevent service creation loops
- outposts/proxy: correctly check host in forward domain redirect
- outposts/proxy: correctly handle ?rd= param
- providers/oauth2: add support for explicit response_mode
- providers/oauth2: fix redirect_uri being lowercased on successful validation
- providers/proxy: enable TLS in ingress via traefik annotation
- providers/proxy: improve error handling for invalid backend_override
- providers/proxy: remove leading slash to allow subdirectories in proxy
- sources/ldap: log entire exception
- sources/ldap: use merger that only appends unique items to list
- sources/saml: fix incorrect ProtocolBinding being sent
- stages/authenticator_validate: add ability to select multiple configuration stages which the user can choose
- stages/authenticator_validate: fix handling when single configuration stage is selected
- stages/authenticator_validate: handle non-existent device_challenges
- Translate /web/src/locales/en.po in de (#2291)
- Translate /web/src/locales/en.po in pl (#2274)
- Translate /web/src/locales/en.po in zh_TW (#2263)
- Translate /web/src/locales/en.po in zh-Hans (#2262)
- Translate /web/src/locales/en.po in zh-Hant (#2261)
- web/admin: fix invalid URLs in example proxy config
- web/admin: fix mismatched icons in overview and lists
- \*: add placeholder custom.css to easily allow user customisation
- \*: rename akprox to outpost.goauthentik.io (#2266)
- internal: don't attempt to lookup SNI Certificate if no SNI is sent
- internal: improve error handling for internal reverse proxy
- internal: increase logging for no hostname found
- internal: remove uvicorn server header
- outposts: ensure keypair is set for SSH connections
- 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: make local discovery configurable
- outposts: remove node_port on V1ServicePort checks to prevent service creation loops
- outposts/proxy: correctly check host in forward domain redirect
- outposts/proxy: correctly handle ?rd= param
- providers/oauth2: add support for explicit response_mode
- providers/oauth2: fix redirect_uri being lowercased on successful validation
- providers/proxy: enable TLS in ingress via traefik annotation
- providers/proxy: improve error handling for invalid backend_override
- providers/proxy: remove leading slash to allow subdirectories in proxy
- sources/ldap: log entire exception
- sources/ldap: use merger that only appends unique items to list
- sources/saml: fix incorrect ProtocolBinding being sent
- stages/authenticator_validate: add ability to select multiple configuration stages which the user can choose
- stages/authenticator_validate: fix handling when single configuration stage is selected
- stages/authenticator_validate: handle non-existent device_challenges
- Translate /web/src/locales/en.po in de (#2291)
- Translate /web/src/locales/en.po in pl (#2274)
- Translate /web/src/locales/en.po in zh_TW (#2263)
- Translate /web/src/locales/en.po in zh-Hans (#2262)
- Translate /web/src/locales/en.po in zh-Hant (#2261)
- web/admin: fix invalid URLs in example proxy config
- web/admin: fix mismatched icons in overview and lists
## Upgrading

View File

@ -21,43 +21,43 @@ To simplify the release process we don't publish explicitly tagged release-candi
## Minor changes/fixes
- core: add initial app launch url (#2367)
- core: customisable user settings (#2397)
- core/api: allow filtering users by uid, add uid to search
- internal/ldap: fix panic when parsing lists with mixed types
- lib: fix default geoip path
- providers/oauth2: fix invalid launch URL being generated
- providers/oauth2: initial client_credentials grant support (#2437)
- providers/proxy: always set rd param in addition to session to prevent wrong url in session
- web: cleanup default footer links
- web: prioritise ?locale parameter over saved locale
- web/admin: improve user and group management by showing related objects
- web/admin: use searchable select field for users and groups in policy binding form
- web/flows: fix rendering of help text on prompt stages
- core: add initial app launch url (#2367)
- core: customisable user settings (#2397)
- core/api: allow filtering users by uid, add uid to search
- internal/ldap: fix panic when parsing lists with mixed types
- lib: fix default geoip path
- providers/oauth2: fix invalid launch URL being generated
- providers/oauth2: initial client_credentials grant support (#2437)
- providers/proxy: always set rd param in addition to session to prevent wrong url in session
- web: cleanup default footer links
- web: prioritise ?locale parameter over saved locale
- web/admin: improve user and group management by showing related objects
- web/admin: use searchable select field for users and groups in policy binding form
- web/flows: fix rendering of help text on prompt stages
## Fixed in 2022.3.2
- core: replace uid with uuid search
- flows: revert default flow user change
- lib: lower default sample rate
- sources/ldap: fix parent_group not being applied
- stages/authenticator_validate: fix passwordless flows not working
- web/elements: fix error with blank SearchSelect elements in forms
- web/elements: fix search select background in dark mode
- web/elements: fix search-select hover background
- web/user: filter applications by launch URL lto show empty state
- web/user: fix duplicate help text in prompts
- core: replace uid with uuid search
- flows: revert default flow user change
- lib: lower default sample rate
- sources/ldap: fix parent_group not being applied
- stages/authenticator_validate: fix passwordless flows not working
- web/elements: fix error with blank SearchSelect elements in forms
- web/elements: fix search select background in dark mode
- web/elements: fix search-select hover background
- web/user: filter applications by launch URL lto show empty state
- web/user: fix duplicate help text in prompts
## Fixed in 2022.3.3
- core: fix provider launch URL being prioritised over manually configured launch URL
- crypto: open files in read-only mode for importing (#2536)
- outposts/ldap: prevent operations error from nil dereference (#2447)
- outposts/proxy: use Prefix in ingress for k8s
- web: fix style for selected item in select in dark mode
- web/admin: default to not include current session in flow play, add option to start with current session
- web/admin: fix user defaulting to 0 when not set in PolicyBindingForm
- web/elements: make SearchSelect optionally blankable
- core: fix provider launch URL being prioritised over manually configured launch URL
- crypto: open files in read-only mode for importing (#2536)
- outposts/ldap: prevent operations error from nil dereference (#2447)
- outposts/proxy: use Prefix in ingress for k8s
- web: fix style for selected item in select in dark mode
- web/admin: default to not include current session in flow play, add option to start with current session
- web/admin: fix user defaulting to 0 when not set in PolicyBindingForm
- web/elements: make SearchSelect optionally blankable
## Upgrading

View File

@ -5,50 +5,50 @@ slug: "/releases/2022.4"
## Breaking changes
- Removal of HTTP Basic authentication for API requests
- Removal of HTTP Basic authentication for API requests
For legacy reasons, authentik used to support HTTP-Basic authenticated requests, using the token as a password. This has been removed.
- Removal of deprecated context in Expression policies used in prompt stages
- Removal of deprecated context in Expression policies used in prompt stages
Before this version, you could use both `context['*field_name*']` and `context['prompt_data']['*field_name*']`. The former one has been removed as it could overwrite other data in the context if the field name is the same as another context value.
- Added name field for invitations
- Added name field for invitations
Invitations now require a name, used to better identify their purpose.
## New features
- Application Grouping
- Application Grouping
Applications can now be grouped together to better organise connected applications in the user dashboard.
- JWT authentication for `client_credentials` grants
- JWT authentication for `client_credentials` grants
Providers can now be configured to accept JWTs signed by configured certificates, which makes it a lot easier to services access to authentik, when an existing machine/service identity is provided (for example, this can be used to let Kubernetes Pods authenticate themselves to authentik via their service account)
## Minor changes/fixes
- core: add method to set key of token
- core: add num_pk to group for applications that need a numerical group id
- internal: disable HTML encoding in go-generated log messages
- lifecycle: fix password and hostname in redis URI not properly quoted
- outposts: check if docker ports should be mapped before comparing ports
- policies: add policy log messages to test endpoints
- providers/oauth2: map internal groups to GitHub teams in GHE OAuth emulation (#2497)
- providers/oauth2: pass scope and other parameters to access policy request context
- stages/email: allow overriding of destination email in plan context
- stages/invitation: add invitation name
- stages/prompt: filter rest_framework.fields.empty when field is not required
- stages/prompt: fix non-required fields not allowing blank values
- stages/prompt: set field default based on placeholder
- tenants: add tenant-level attributes, applied to users based on request
- web: live-convert to slug in fields where only slugs are allowed
- web: migrate dropdowns to wizards (#2633)
- web/admin: allow editing of invitations
- web/admin: fix missing protocols on generated nginx config
- web/admin: trigger update when provider wizard finishes
- web/user: add column layouts
- core: add method to set key of token
- core: add num_pk to group for applications that need a numerical group id
- internal: disable HTML encoding in go-generated log messages
- lifecycle: fix password and hostname in redis URI not properly quoted
- outposts: check if docker ports should be mapped before comparing ports
- policies: add policy log messages to test endpoints
- providers/oauth2: map internal groups to GitHub teams in GHE OAuth emulation (#2497)
- providers/oauth2: pass scope and other parameters to access policy request context
- stages/email: allow overriding of destination email in plan context
- stages/invitation: add invitation name
- stages/prompt: filter rest_framework.fields.empty when field is not required
- stages/prompt: fix non-required fields not allowing blank values
- stages/prompt: set field default based on placeholder
- tenants: add tenant-level attributes, applied to users based on request
- web: live-convert to slug in fields where only slugs are allowed
- web: migrate dropdowns to wizards (#2633)
- web/admin: allow editing of invitations
- web/admin: fix missing protocols on generated nginx config
- web/admin: trigger update when provider wizard finishes
- web/user: add column layouts
## Upgrading

View File

@ -5,28 +5,28 @@ slug: "/releases/2022.5"
## Breaking changes
- Twitter Source has been migrated to OAuth2
- Twitter Source has been migrated to OAuth2
This requires some reconfiguration on both Twitter's and authentik's side. Check out the new Twitter integration docs [here](../../users-sources/sources/social-logins/twitter/index.md).
- OAuth Provider: Redirect URIs are now checked using regular expressions
- OAuth Provider: Redirect URIs are now checked using regular expressions
Allowed Redirect URIs now accepts regular expressions to check redirect URIs to support wildcards. In most cases this will not change anything, however casing is also important now. Meaning if your redirect URI is "https://Foo.bar" and allowed is "https://foo.bar", authorization will not be allowed. Additionally, the special handling when _Redirect URIs/Origins_ is set to `*` has been removed. To get the same behaviour, set _Redirect URIs/Origins_ to `.+`.
## New features
- LDAP Outpost cached binding
- LDAP Outpost cached binding
Instead of always executing the configured flow when a new Bind request is received, the provider can now be configured to cache the session from the initial flow execution, and directly validate credentials in the outpost. This drastically improves the bind performance.
See [LDAP provider](../../add-secure-apps/providers/ldap/index.md#cached-bind)
- OAuth2: Add support for `form_post` response mode
- Don't prompt users for MFA when they've authenticated themselves within a time period
- OAuth2: Add support for `form_post` response mode
- Don't prompt users for MFA when they've authenticated themselves within a time period
You can now configure any [Authenticator Validation Stage](../../add-secure-apps/flows-stages/stages/authenticator_validate/index.md) stage to not ask for MFA validation if the user has previously authenticated themselves with an MFA device (of any of the selected classes) in the `Last validation threshold`.
- Optimise bundling of web assets
- Optimise bundling of web assets
Previous versions had the entire frontend bundled in a single file (per interface). This has been revamped to produce smaller bundle sizes for each interface to improve the loading times.
@ -36,69 +36,69 @@ slug: "/releases/2022.5"
## Minor changes/fixes
- \*: decrease frequency of background tasks, smear tasks based on name and fqdn
- api: fix OwnerFilter filtering out objects for superusers
- core: add custom shell command which imports all models and creates events for model events
- core: add flag to globally disable impersonation
- events: fix created events only being logged as debug level
- flows: handle flow title formatting error better, add user to flow title context
- internal: add signal handler for SIGTERM
- outposts/ldap: cached bind (#2824)
- policies: fix current user not being set in server-side policy deny
- providers/oauth2: add support for form_post response mode (#2818)
- providers/oauth2: allow regex matches for allowed redirect_uri
- providers/oauth2: don't create events before client_id can be verified to prevent spam
- providers/saml: make SAML metadata generation consistent
- root: export poetry deps to requirements.txt so we don't need poetry … (#2823)
- root: handle JSON error in metrics
- root: set SESSION_SAVE_EVERY_REQUEST to enable sliding sessions
- sources/oauth: Fix wording for OAuth source names (#2732)
- stages/authenticator_validate: remember (#2828)
- stages/identification: redirect with QS to keep next parameters (#2909)
- stages/user_delete: fix delete stage failing when pending user is not explicitly set
- web: fix dateTimeLocal() dropping local timezone
- web: lazy load parts of interfaces (#2864)
- web/user: add missing checkbox element in user settings (#2762)
- \*: decrease frequency of background tasks, smear tasks based on name and fqdn
- api: fix OwnerFilter filtering out objects for superusers
- core: add custom shell command which imports all models and creates events for model events
- core: add flag to globally disable impersonation
- events: fix created events only being logged as debug level
- flows: handle flow title formatting error better, add user to flow title context
- internal: add signal handler for SIGTERM
- outposts/ldap: cached bind (#2824)
- policies: fix current user not being set in server-side policy deny
- providers/oauth2: add support for form_post response mode (#2818)
- providers/oauth2: allow regex matches for allowed redirect_uri
- providers/oauth2: don't create events before client_id can be verified to prevent spam
- providers/saml: make SAML metadata generation consistent
- root: export poetry deps to requirements.txt so we don't need poetry … (#2823)
- root: handle JSON error in metrics
- root: set SESSION_SAVE_EVERY_REQUEST to enable sliding sessions
- sources/oauth: Fix wording for OAuth source names (#2732)
- stages/authenticator_validate: remember (#2828)
- stages/identification: redirect with QS to keep next parameters (#2909)
- stages/user_delete: fix delete stage failing when pending user is not explicitly set
- web: fix dateTimeLocal() dropping local timezone
- web: lazy load parts of interfaces (#2864)
- web/user: add missing checkbox element in user settings (#2762)
## Fixed in 2022.5.2
- internal: fix nil pointer dereference in ldap outpost
- internal: revert cookie path on proxy causing redirect loops
- outposts: allow externally managed SSH Config for outposts (#2917)
- outposts: ensure the user and token are created on initial outpost save
- root: fix missing curl in dockerfile
- web/admin: improve error handling in TokenCopyButton
- web/admin: make external host clickable
- web/user: fix use sub-pages not redirecting back to the subpage
- internal: fix nil pointer dereference in ldap outpost
- internal: revert cookie path on proxy causing redirect loops
- outposts: allow externally managed SSH Config for outposts (#2917)
- outposts: ensure the user and token are created on initial outpost save
- root: fix missing curl in dockerfile
- web/admin: improve error handling in TokenCopyButton
- web/admin: make external host clickable
- web/user: fix use sub-pages not redirecting back to the subpage
## Fixed in 2022.5.3
- api: migrate to openapi generator v6 (#2968)
- api: update API browser to match admin UI and auto-switch theme
- core: fix username validator not allowing changes that can be done via flows
- crypto: set SAN in default generated Certificate to semi-random domain
- ensure all viewsets have filter and search and add tests (#2946)
- events: fix transport not allowing blank values
- flows: fix re-imports of entries with identical PK re-creating objects (#2941)
- providers/oauth2: handle attribute errors when validation JWK contains private key
- providers/oauth2: improve error handling for invalid regular expressions
- providers/oauth2: only set expiry on user when it was freshly created
- providers/oauth2: regex-escape URLs when set to blank
- providers/oauth2: set related_name for many-to-many connections so used by detects the connection
- providers/saml: handle parse error
- root: Add docker-compose postgresql and redis healthchecks (#2958)
- stages/user_write: fix typo in request context variable
- web: decrease elements that refresh on global refresh signal
- web/admin: add note that regex is used for redirect URIs
- web/admin: add set password button to user view page
- web/admin: fix broken flow execute link (#2940)
- web/admin: fix display of LDAP bind mode
- web/admin: fix flow diagram not updating on flow changes
- web/admin: fix phrasing on LDAP provider form for bind mode
- web/admin: refactor table refresh to preserve selected/expanded elements correctly
- web/elements: fix missing click handler on wizard close button
- web/elements: fix used_by refreshing for all elements when using DeleteBulkForm
- website/docs: Fix misconfiguration causing POST requests behind Nginx to timeout (#2967)
- api: migrate to openapi generator v6 (#2968)
- api: update API browser to match admin UI and auto-switch theme
- core: fix username validator not allowing changes that can be done via flows
- crypto: set SAN in default generated Certificate to semi-random domain
- ensure all viewsets have filter and search and add tests (#2946)
- events: fix transport not allowing blank values
- flows: fix re-imports of entries with identical PK re-creating objects (#2941)
- providers/oauth2: handle attribute errors when validation JWK contains private key
- providers/oauth2: improve error handling for invalid regular expressions
- providers/oauth2: only set expiry on user when it was freshly created
- providers/oauth2: regex-escape URLs when set to blank
- providers/oauth2: set related_name for many-to-many connections so used by detects the connection
- providers/saml: handle parse error
- root: Add docker-compose postgresql and redis healthchecks (#2958)
- stages/user_write: fix typo in request context variable
- web: decrease elements that refresh on global refresh signal
- web/admin: add note that regex is used for redirect URIs
- web/admin: add set password button to user view page
- web/admin: fix broken flow execute link (#2940)
- web/admin: fix display of LDAP bind mode
- web/admin: fix flow diagram not updating on flow changes
- web/admin: fix phrasing on LDAP provider form for bind mode
- web/admin: refactor table refresh to preserve selected/expanded elements correctly
- web/elements: fix missing click handler on wizard close button
- web/elements: fix used_by refreshing for all elements when using DeleteBulkForm
- website/docs: Fix misconfiguration causing POST requests behind Nginx to timeout (#2967)
## Upgrading

View File

@ -5,80 +5,80 @@ slug: "/releases/2022.6"
## New features
- Added OIDC well-known and JWKS URL in OAuth Source
- Added OIDC well-known and JWKS URL in OAuth Source
These fields can be used to automatically configure OAuth Sources based on the [OpenID Connect Discovery Spec](https://openid.net/specs/openid-connect-discovery-1_0.html). Additionally, you can manually define a JWKS URL or raw JWKS data, and this can be used for Machine-to-machine authentication for OAuth2 Providers.
- Notifications are no longer created by default
- Notifications are no longer created by default
Instead of creating a Notification with each transport, there is now a new Transport mode called "Local", which locally creates the Notifications. This also adds the ability to customize the notification using a mapping.
- MFA Validation threshold has been migrated to signed cookies
- MFA Validation threshold has been migrated to signed cookies
Last MFA validation is now saved in a signed cookie, which changes the behavior so that only the current browser is affected by MFA validation, and an attacker cannot exploit the fact that a user has recently authenticated with MFA.
- Verification-only SMS Devices
- Verification-only SMS Devices
SMS authenticator stages can now be configured to hash the phone number. This is useful if you want to require your users to configure and confirm their phone numbers, without saving them in a readable-format.
- The LDAP outpost would incorrectly return `groupOfUniqueNames` as a group class when the members where returned in a manner like `groupOfNames` requires. `groupOfNames` has been added as an objectClass for LDAP Groups, and `groupOfUniqueNames` will be removed in the next version.
- The LDAP outpost would incorrectly return `groupOfUniqueNames` as a group class when the members where returned in a manner like `groupOfNames` requires. `groupOfNames` has been added as an objectClass for LDAP Groups, and `groupOfUniqueNames` will be removed in the next version.
- Preview support for forward auth when using Envoy
- Preview support for forward auth when using Envoy
## Minor changes/fixes
- api: migrate to openapi generator v6 (#2968)
- api: update API browser to match admin UI and auto-switch theme
- core: improve loading speed of flow background
- ensure all viewsets have filter and search and add tests (#2946)
- flows: fix re-imports of entries with identical PK re-creating objects
- lifecycle: cleanup prometheus metrics, remove PII (#2972)
- policies: fix incorrect bound_to count
- providers/oauth2: add configuration error event when wrong redirect uri is used in token request
- providers/oauth2: handle attribute errors when validation JWK contains private key
- providers/oauth2: only set expiry on user when it was freshly created
- providers/oauth2: regex-escape URLs when set to blank
- root: Add docker-compose postgresql and redis healthchecks (#2958)
- root: disable session_save_every_request as it causes race conditions
- web/elements: fix top-right dialog close button not resetting form
- web/elements: fix used_by refreshing for all elements when using DeleteBulkForm
- web/user: fix static prompt fields being rendered with label
- web/user: improve ux for restarting user settings flow
- api: migrate to openapi generator v6 (#2968)
- api: update API browser to match admin UI and auto-switch theme
- core: improve loading speed of flow background
- ensure all viewsets have filter and search and add tests (#2946)
- flows: fix re-imports of entries with identical PK re-creating objects
- lifecycle: cleanup prometheus metrics, remove PII (#2972)
- policies: fix incorrect bound_to count
- providers/oauth2: add configuration error event when wrong redirect uri is used in token request
- providers/oauth2: handle attribute errors when validation JWK contains private key
- providers/oauth2: only set expiry on user when it was freshly created
- providers/oauth2: regex-escape URLs when set to blank
- root: Add docker-compose postgresql and redis healthchecks (#2958)
- root: disable session_save_every_request as it causes race conditions
- web/elements: fix top-right dialog close button not resetting form
- web/elements: fix used_by refreshing for all elements when using DeleteBulkForm
- web/user: fix static prompt fields being rendered with label
- web/user: improve ux for restarting user settings flow
## Fixed in 2022.6.2
- \*: make user logging more consistent
- core: add additional filters to source viewset
- core: add setting to open application launch URL in a new browser tab (#3037)
- core: add slug to built-in source
- events: fix error when attempting to create event with GeoIP City in context
- providers/ldap: fix existing binder not being carried forward correctly
- providers/oauth2: add JWKS URL to OAuth2ProviderSetupURLs
- providers/proxy: use same redirect-save code for all modes
- sources/oauth: fix twitter client missing basic auth
- stages/authenticator_validate: fix error in passwordless webauthn
- web/elements: add error handler when table fails to fetch objects
- \*: make user logging more consistent
- core: add additional filters to source viewset
- core: add setting to open application launch URL in a new browser tab (#3037)
- core: add slug to built-in source
- events: fix error when attempting to create event with GeoIP City in context
- providers/ldap: fix existing binder not being carried forward correctly
- providers/oauth2: add JWKS URL to OAuth2ProviderSetupURLs
- providers/proxy: use same redirect-save code for all modes
- sources/oauth: fix twitter client missing basic auth
- stages/authenticator_validate: fix error in passwordless webauthn
- web/elements: add error handler when table fails to fetch objects
## Fixed in 2022.6.3
- core: fix migrations when creating bootstrap token
- internal: dont sample gunicorn proxied requests
- internal: fix routing to embedded outpost
- internal: skip tracing for go healthcheck and metrics endpoints
- lifecycle: run bootstrap tasks inline when using automated install
- policies: consolidate log user and application
- providers/oauth2: add test to ensure capitalised redirect_uri isn't changed
- providers/oauth2: dont lowercase URL for token requests (#3114)
- providers/oauth2: if a redirect_uri cannot be parsed as regex, compare strict (#3070)
- providers/proxy: only send misconfiguration event once
- root: ignore healthcheck routes in sentry tracing
- stages/authenticator_validate: add webauthn tests (#3069)
- web/admin: lint bound group under policies
- web/admin: remove invalid requirement for usernames
- web/elements: add spinner when loading dynamic routes
- web/flows: add divider to identification stage for security key
- web/flows: fix error when webauthn operations failed and user retries
- web/flows: remove autofocus from password field of identifications stage
- core: fix migrations when creating bootstrap token
- internal: dont sample gunicorn proxied requests
- internal: fix routing to embedded outpost
- internal: skip tracing for go healthcheck and metrics endpoints
- lifecycle: run bootstrap tasks inline when using automated install
- policies: consolidate log user and application
- providers/oauth2: add test to ensure capitalised redirect_uri isn't changed
- providers/oauth2: dont lowercase URL for token requests (#3114)
- providers/oauth2: if a redirect_uri cannot be parsed as regex, compare strict (#3070)
- providers/proxy: only send misconfiguration event once
- root: ignore healthcheck routes in sentry tracing
- stages/authenticator_validate: add webauthn tests (#3069)
- web/admin: lint bound group under policies
- web/admin: remove invalid requirement for usernames
- web/elements: add spinner when loading dynamic routes
- web/flows: add divider to identification stage for security key
- web/flows: fix error when webauthn operations failed and user retries
- web/flows: remove autofocus from password field of identifications stage
## Upgrading

View File

@ -5,97 +5,97 @@ slug: "/releases/2022.7"
## Breaking changes
- Removal of verification certificates for Machine-to-Machine authentication in OAuth 2 Provider
- Removal of verification certificates for Machine-to-Machine authentication in OAuth 2 Provider
Instead, create an OAuth Source with the certificate configured as JWKS Data, and enable the source in the provider.
- Maximum Limit of group recursion
- Maximum Limit of group recursion
In earlier versions, cyclic group relations can lead to a deadlock when one of groups in the relationship are bound to an application/flow/etc.
This is now limited to 20 levels of recursion.
- Change in context behaviour for policies executed within flows
- Change in context behaviour for policies executed within flows
In previous versions, the policy context would be set to a reference to the currently active flow plan context. This makes it so any changes to `context` wre directly reflected in the flow context. The context has been changed to only include the values, and as such updates like this won't be reflected in the flow. Instead, `context['flow_plan']` is now set, which contains a full reference to the flow Plan, allowing for more customisability than previously. Context changes can be mad by modifying `context['flow_plan'].context`.
## New features
- User paths
- User paths
To better organize users, they can now be assigned a path. This allows for organization of users based on sources they enrolled with/got imported from, organizational structure or any other structure.
Sources now have a path template to specify which path users created by it should be assigned. Additionally, you can set the path in the user_write stage in any flow, and it can be dynamically overwritten within a flow's context.
- API Authentication using JWT
- API Authentication using JWT
OAuth Refresh tokens that have been issued with the scope `goauthentik.io/api` can now be used to authenticate to the API on behalf of the user the token belongs to.
- Version-family tagged Container images
- Version-family tagged Container images
Instead of having to choose between using the `:latest` tag and explicit versions like `:2022.7.1`, there are now also version-family tags (:2022.7). This allows for sticking with a single version but still getting bugfix updates.
- OAuth2 Provider default Scopes
- OAuth2 Provider default Scopes
Starting with authentik 2022.7, when an OAuth client doesn't specify any scopes, authentik will treat the request as if all the configured scopes of that provider had been requested. Normal consent is still required depending on the configured flow. No special scopes will be added, as those can't be selected in the configuration.
## Minor changes/fixes
- \*: define prometheus metrics in apps to prevent re-import
- api: add basic jwt auth support with required scope (#2624)
- ci: add version family (#3059)
- core: add limit of 20 to group recursion
- core: create FlowToken instead of regular token for generated recovery links (#3193)
- core: mark session as modified instead of saving it directly to bump expiry
- core: re-create anonymous user when repairing permissions
- core: user paths (#3085)
- flows: add shortcut to redirect current flow (#3192)
- flows: denied action (#3194)
- flows: show messages from ak_message when flow is denied
- internal: failback with self-signed cert if cert for tenant fails to load
- internal: fix nil pointer reference
- internal: skip tracing for go healthcheck and metrics endpoints
- lifecycle: fix confusing success messages in startup healthiness check
- lifecycle: run bootstrap tasks inline when using automated install
- lifecycle: Update postgres healthcheck for compose with user information (#3143)
- policies: consolidate log user and application
- providers/oauth2: dont lowercase URL for token requests (#3114)
- providers/oauth2: ensure refresh tokens are URL safe
- providers/oauth2: fix OAuth form_post response mode for code response_type
- providers/oauth2: if a redirect_uri cannot be parsed as regex, compare strict (#3070)
- providers/oauth2: if no scopes are sent in authorize request, select all configured scopes
- providers/oauth2: remove deprecated verification_keys (#3071)
- providers/oauth2: token revoke (#3077)
- providers/proxy: only send misconfiguration event once
- root: ignore healthcheck routes in sentry tracing
- sources/ldap: add configuration for LDAP Source ciphers
- web: fix redirect when accessing authentik URLs authenticated
- web: improve detection for locales
- web/admin: default to users path in sidebar link
- web/admin: link bound group under policies
- web/admin: only pre-select oauth2 provider key if creating a new instance
- web/admin: remove invalid requirement for usernames
- web/elements: add spinner when loading dynamic routes
- web/elements: auto-switch themes for codemirror
- web/flows: add divider to identification stage for security key
- web/flows: fix error when webauthn operations failed and user retries
- web/flows: remove autofocus from password field of identifications stage
- web/flows: statically import webauthn-related stages for safari issues
- \*: define prometheus metrics in apps to prevent re-import
- api: add basic jwt auth support with required scope (#2624)
- ci: add version family (#3059)
- core: add limit of 20 to group recursion
- core: create FlowToken instead of regular token for generated recovery links (#3193)
- core: mark session as modified instead of saving it directly to bump expiry
- core: re-create anonymous user when repairing permissions
- core: user paths (#3085)
- flows: add shortcut to redirect current flow (#3192)
- flows: denied action (#3194)
- flows: show messages from ak_message when flow is denied
- internal: failback with self-signed cert if cert for tenant fails to load
- internal: fix nil pointer reference
- internal: skip tracing for go healthcheck and metrics endpoints
- lifecycle: fix confusing success messages in startup healthiness check
- lifecycle: run bootstrap tasks inline when using automated install
- lifecycle: Update postgres healthcheck for compose with user information (#3143)
- policies: consolidate log user and application
- providers/oauth2: dont lowercase URL for token requests (#3114)
- providers/oauth2: ensure refresh tokens are URL safe
- providers/oauth2: fix OAuth form_post response mode for code response_type
- providers/oauth2: if a redirect_uri cannot be parsed as regex, compare strict (#3070)
- providers/oauth2: if no scopes are sent in authorize request, select all configured scopes
- providers/oauth2: remove deprecated verification_keys (#3071)
- providers/oauth2: token revoke (#3077)
- providers/proxy: only send misconfiguration event once
- root: ignore healthcheck routes in sentry tracing
- sources/ldap: add configuration for LDAP Source ciphers
- web: fix redirect when accessing authentik URLs authenticated
- web: improve detection for locales
- web/admin: default to users path in sidebar link
- web/admin: link bound group under policies
- web/admin: only pre-select oauth2 provider key if creating a new instance
- web/admin: remove invalid requirement for usernames
- web/elements: add spinner when loading dynamic routes
- web/elements: auto-switch themes for codemirror
- web/flows: add divider to identification stage for security key
- web/flows: fix error when webauthn operations failed and user retries
- web/flows: remove autofocus from password field of identifications stage
- web/flows: statically import webauthn-related stages for safari issues
## Fixed in 2022.7.2
- flows: fix OOB flow incorrectly setting pending user
- stages/prompt: add basic file field (#3156)
- tenants: add default_locale read only field, pre-hydrate in flows and read in autodetect as first choice
- flows: fix OOB flow incorrectly setting pending user
- stages/prompt: add basic file field (#3156)
- tenants: add default_locale read only field, pre-hydrate in flows and read in autodetect as first choice
## Fixed in 2022.7.3
- core: delete expired models when filtering instead of excluding them
- providers/oauth2: correctly log authenticated user for OAuth views using protected_resource_view
- sources/oauth: use oidc preferred_username if set, otherwise nickname
- stages/consent: fix permissions for consent API (allow owner to delete)
- stages/prompt: force required to false when using readonlyfield
- stages/prompt: try to base64 decode file, fallback to keeping value as-is
- web/elements: improve contrast for codemirror backgrounds
- core: delete expired models when filtering instead of excluding them
- providers/oauth2: correctly log authenticated user for OAuth views using protected_resource_view
- sources/oauth: use oidc preferred_username if set, otherwise nickname
- stages/consent: fix permissions for consent API (allow owner to delete)
- stages/prompt: force required to false when using readonlyfield
- stages/prompt: try to base64 decode file, fallback to keeping value as-is
- web/elements: improve contrast for codemirror backgrounds
## Upgrading

View File

@ -5,71 +5,71 @@ slug: "/releases/2022.8"
## Breaking changes
- Prompt fields with file type are now a full Base64 Data-URI
- Prompt fields with file type are now a full Base64 Data-URI
Previously the data was parsed into a string when possible, and when decoding failed, the raw base64 would be saved. Now, the entire URI is parsed, validated and kept in one piece, to make it possible to validate/save the MIME type.
## New features
- Blueprints
- Blueprints
Blueprints allow for the configuration, automation and templating of authentik objects and configurations. They can be used to bootstrap new instances, configure them automatically without external tools, and to template configurations for sharing. See more [here](../../customize/blueprints/index.md).
For installations upgrading to 2022.8, if a single flow exists, then the default blueprints will not be activated, to not overwrite user modifications.
- Simplified forward auth
- Simplified forward auth
In previous releases, to use forward auth, the reverse proxy would have to be configured to both send auth requests to the outpost, but also allow access to URLs starting with `/outpost.goauthentik.io`. The second part is now no longer required, with the exception of nginx. Existing setups should continue to function as previously.
- Support for Caddy forward auth
- Support for Caddy forward auth
Based on the traefik support, there is now dedicated support for Caddy with configuration examples, see [here](../../add-secure-apps/providers/proxy/forward_auth.mdx).
## Minor changes/fixes
- \*: improve error handling for startup tasks
- core: add API Endpoint to get all MFA devices, add web ui to delete MFA devices of any user
- core: add attributes. avatar method to allow custom uploaded avatars
- core: pre-hydrate config into templates to directly load correct assets
- flows: migrate flows to be yaml (#3335)
- internal: centralise config for listeners to use same config system everywhere (#3367)
- internal: fix outposts not reacting to signals while starting
- internal: fix race conditions when accessing settings before bootstrap
- internal: walk config in go, check, parse and load from scheme like in python
- lifecycle: optimise container lifecycle and process signals (#3332)
- providers/oauth2: don't separate scopes by comma-space in created events
- providers/oauth2: fix scopes without descriptions not being saved in consent
- providers/proxy: add caddy endpoint (#3330)
- providers/proxy: add is_superuser to ak_proxy object, only show full error when superuser
- providers/proxy: no exposed urls (#3151)
- root: fix dockerfile for blueprints
- sources/oauth: correctly concatenate URLs to allow custom parameters to be passed to authorization server
- sources/oauth: only send header authentication for OIDC source
- sources/oauth: use mailcow full_name as username for mailcow source (#3299)
- stages/\*: use stage-bound logger when possible
- stages/authenticator_validate: improve error handling for duo
- stages/authenticator_duo: fix imported Duo Device not having a name
- stages/authenticator_sms: use twilio SDK, improve docs
- stages/authenticator_totp: remove single device per user limit
- stages/consent: fix error when requests with identical empty permissions
- stages/consent: fix for post requests (#3339)
- stages/prompt: fix tests for file field
- \*: improve error handling for startup tasks
- core: add API Endpoint to get all MFA devices, add web ui to delete MFA devices of any user
- core: add attributes. avatar method to allow custom uploaded avatars
- core: pre-hydrate config into templates to directly load correct assets
- flows: migrate flows to be yaml (#3335)
- internal: centralise config for listeners to use same config system everywhere (#3367)
- internal: fix outposts not reacting to signals while starting
- internal: fix race conditions when accessing settings before bootstrap
- internal: walk config in go, check, parse and load from scheme like in python
- lifecycle: optimise container lifecycle and process signals (#3332)
- providers/oauth2: don't separate scopes by comma-space in created events
- providers/oauth2: fix scopes without descriptions not being saved in consent
- providers/proxy: add caddy endpoint (#3330)
- providers/proxy: add is_superuser to ak_proxy object, only show full error when superuser
- providers/proxy: no exposed urls (#3151)
- root: fix dockerfile for blueprints
- sources/oauth: correctly concatenate URLs to allow custom parameters to be passed to authorization server
- sources/oauth: only send header authentication for OIDC source
- sources/oauth: use mailcow full_name as username for mailcow source (#3299)
- stages/\*: use stage-bound logger when possible
- stages/authenticator_validate: improve error handling for duo
- stages/authenticator_duo: fix imported Duo Device not having a name
- stages/authenticator_sms: use twilio SDK, improve docs
- stages/authenticator_totp: remove single device per user limit
- stages/consent: fix error when requests with identical empty permissions
- stages/consent: fix for post requests (#3339)
- stages/prompt: fix tests for file field
## Fixed in 2022.8.2
- blueprints: add generic export next to flow exporter (#3439)
- blueprints: allow for adding remote blueprints (#3435)
- blueprints: fix exporter not ignoring non-SerializerModel objects
- blueprints: fix issue in prod setups with encoding dataclasses via json
- blueprints: remove \_state from exporter blueprints
- core: fix pre-hydrated config not being escaped properly
- events: correctly handle lists for cleaning/sanitization
- internal: fix routing for requests with querystring signature to embedded outpost
- lifecycle: add worker-status command to debug worker cpu usage issues
- providers/oauth2: fix oauth2 requests being logged as unauthenticated
- sources/oauth: fix missing doseq param for updating URL query string
- web/elements: fix automatic slug not working on newly opened forms
- web/flows: simplify consent's permission handling
- blueprints: add generic export next to flow exporter (#3439)
- blueprints: allow for adding remote blueprints (#3435)
- blueprints: fix exporter not ignoring non-SerializerModel objects
- blueprints: fix issue in prod setups with encoding dataclasses via json
- blueprints: remove \_state from exporter blueprints
- core: fix pre-hydrated config not being escaped properly
- events: correctly handle lists for cleaning/sanitization
- internal: fix routing for requests with querystring signature to embedded outpost
- lifecycle: add worker-status command to debug worker cpu usage issues
- providers/oauth2: fix oauth2 requests being logged as unauthenticated
- sources/oauth: fix missing doseq param for updating URL query string
- web/elements: fix automatic slug not working on newly opened forms
- web/flows: simplify consent's permission handling
## Upgrading

View File

@ -5,15 +5,15 @@ slug: "/releases/2022.9"
## Breaking changes
- `WORKERS` environment variable has been renamed to match other config options, see [Configuration](../../install-config/configuration/configuration.mdx#authentik_web__workers-authentik-20229)
- `WORKERS` environment variable has been renamed to match other config options, see [Configuration](../../install-config/configuration/configuration.mdx#authentik_web__workers-authentik-20229)
## New features
- UI for Duo device Import
- UI for Duo device Import
Instead of manually having to call an API endpoint, there's now a UI for importing Duo devices.
- Duo Admin API integration
- Duo Admin API integration
When using a Duo MFA, Duo Access or Duo Beyond plan, authentik can now automatically import devices from Duo into authentik. More info [here](../../add-secure-apps/flows-stages/stages/authenticator_duo/index.md).
@ -43,9 +43,9 @@ slug: "/releases/2022.9"
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed content type : `application/json`
- Added property `admin_integration_key` (string)
- Added property `admin_integration_key` (string)
##### `PUT` /stages/authenticator/duo/&#123;stage_uuid&#125;/
@ -53,17 +53,17 @@ Changed response : **200 OK**
Changed content type : `application/json`
- Added property `admin_integration_key` (string)
- Added property `admin_integration_key` (string)
- Added property `admin_secret_key` (string)
- Added property `admin_secret_key` (string)
###### Return Type:
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed content type : `application/json`
- Added property `admin_integration_key` (string)
- Added property `admin_integration_key` (string)
##### `PATCH` /stages/authenticator/duo/&#123;stage_uuid&#125;/
@ -71,17 +71,17 @@ Changed response : **200 OK**
Changed content type : `application/json`
- Added property `admin_integration_key` (string)
- Added property `admin_integration_key` (string)
- Added property `admin_secret_key` (string)
- Added property `admin_secret_key` (string)
###### Return Type:
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed content type : `application/json`
- Added property `admin_integration_key` (string)
- Added property `admin_integration_key` (string)
##### `GET` /flows/executor/&#123;flow_slug&#125;/
@ -89,51 +89,51 @@ Changed response : **200 OK**
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed content type : `application/json`
Added 'xak-flow-error' component:
- Property `type` (string)
- Property `type` (string)
Enum values:
- `native`
- `shell`
- `redirect`
- `native`
- `shell`
- `redirect`
- Property `flow_info` (object)
- Property `flow_info` (object)
> Contextual flow information for a challenge
- Property `title` (string)
- Property `title` (string)
- Property `background` (string)
- Property `background` (string)
- Property `cancel_url` (string)
- Property `cancel_url` (string)
- Property `layout` (string)
- Property `layout` (string)
Enum values:
- `stacked`
- `content_left`
- `content_right`
- `sidebar_left`
- `sidebar_right`
- `stacked`
- `content_left`
- `content_right`
- `sidebar_left`
- `sidebar_right`
- Property `component` (string)
- Property `component` (string)
- Property `response_errors` (object)
- Property `response_errors` (object)
- Property `pending_user` (string)
- Property `pending_user` (string)
- Property `pending_user_avatar` (string)
- Property `pending_user_avatar` (string)
- Property `request_id` (string)
- Property `request_id` (string)
- Property `error` (string)
- Property `error` (string)
- Property `traceback` (string)
- Property `traceback` (string)
##### `POST` /flows/executor/&#123;flow_slug&#125;/
@ -141,51 +141,51 @@ Changed response : **200 OK**
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed content type : `application/json`
Added 'xak-flow-error' component:
- Property `type` (string)
- Property `type` (string)
Enum values:
- `native`
- `shell`
- `redirect`
- `native`
- `shell`
- `redirect`
- Property `flow_info` (object)
- Property `flow_info` (object)
> Contextual flow information for a challenge
- Property `title` (string)
- Property `title` (string)
- Property `background` (string)
- Property `background` (string)
- Property `cancel_url` (string)
- Property `cancel_url` (string)
- Property `layout` (string)
- Property `layout` (string)
Enum values:
- `stacked`
- `content_left`
- `content_right`
- `sidebar_left`
- `sidebar_right`
- `stacked`
- `content_left`
- `content_right`
- `sidebar_left`
- `sidebar_right`
- Property `component` (string)
- Property `component` (string)
- Property `response_errors` (object)
- Property `response_errors` (object)
- Property `pending_user` (string)
- Property `pending_user` (string)
- Property `pending_user_avatar` (string)
- Property `pending_user_avatar` (string)
- Property `request_id` (string)
- Property `request_id` (string)
- Property `error` (string)
- Property `error` (string)
- Property `traceback` (string)
- Property `traceback` (string)
##### `POST` /stages/authenticator/duo/
@ -193,17 +193,17 @@ Changed response : **200 OK**
Changed content type : `application/json`
- Added property `admin_integration_key` (string)
- Added property `admin_integration_key` (string)
- Added property `admin_secret_key` (string)
- Added property `admin_secret_key` (string)
###### Return Type:
Changed response : **201 Created**
- Changed content type : `application/json`
- Changed content type : `application/json`
- Added property `admin_integration_key` (string)
- Added property `admin_integration_key` (string)
##### `GET` /stages/authenticator/duo/
@ -211,55 +211,55 @@ Changed response : **201 Created**
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed content type : `application/json`
- Changed property `results` (array)
- Changed property `results` (array)
Changed items (object): > AuthenticatorDuoStage Serializer
- Added property `admin_integration_key` (string)
- Added property `admin_integration_key` (string)
## Minor changes/fixes
- \*: cleanup stray print calls
- \*: remove remaining default creation code in squashed migrations
- blueprint: fix EntryInvalidError not being handled in tasks
- blueprints: add meta model to apply blueprint within blueprint for dependencies (#3486)
- blueprints: don't export events by default and exclude anonymous user
- blueprints: OCI registry support (#3500)
- blueprints: use correct log level when re-logging import validation logs
- core: fix custom favicon not being set correctly on load
- core: improve error template (#3521)
- crypto: add command to import certificates
- events: fix MonitoredTasks' save_on_success not behaving as expected
- events: reset task info when not saving on success
- events: save event to test notification transport
- flows: fix incorrect diagram for policies bound to flows
- flows: migrate FlowExecutor error handler to native challenge instead of shell
- internal: fix outposts not logging flow execution errors correctly
- internal: optimise outpost's flow executor to use less requests
- internal: use config system for workers/threads, document the settings (#3626)
- outposts: fix oauth state when using signature routing (#3616)
- outposts/proxy: fix redirect path when external host is a subdirectory (#3628)
- providers/oauth2: add x5c (#3556)
- providers/proxy: fix routing based on signature in traefik and caddy
- root: make redis persistent in docker-compose
- root: reuse custom log helper from config and cleanup duplicate functions
- root: shorten outpost docker healthcheck intervals
- sources/ldap: start_tls before binding but without reading server info
- sources/oauth: use GitHub's dedicated email API when no public email address is configured
- sources/oauth: use UPN for username with azure AD source
- stages/authenticator_duo: fix 404 when current user does not have permissions to view stage
- stages/authenticator_duo: improved import (#3601)
- stages/consent: default to expiring consent instead of always_require
- tenants: handle all errors in default_locale
- web: fix checkbox styling on applications form
- web: fix scrolling in modals in low-height views (#3596)
- web: use mermaidjs (#3623)
- web/admin: enable blueprint instances by default
- web/flows: fix ak-locale prompt being rendered without name attribute
- web/flows: update flow background
- web/user: justify content on user settings page on desktop
- \*: cleanup stray print calls
- \*: remove remaining default creation code in squashed migrations
- blueprint: fix EntryInvalidError not being handled in tasks
- blueprints: add meta model to apply blueprint within blueprint for dependencies (#3486)
- blueprints: don't export events by default and exclude anonymous user
- blueprints: OCI registry support (#3500)
- blueprints: use correct log level when re-logging import validation logs
- core: fix custom favicon not being set correctly on load
- core: improve error template (#3521)
- crypto: add command to import certificates
- events: fix MonitoredTasks' save_on_success not behaving as expected
- events: reset task info when not saving on success
- events: save event to test notification transport
- flows: fix incorrect diagram for policies bound to flows
- flows: migrate FlowExecutor error handler to native challenge instead of shell
- internal: fix outposts not logging flow execution errors correctly
- internal: optimise outpost's flow executor to use less requests
- internal: use config system for workers/threads, document the settings (#3626)
- outposts: fix oauth state when using signature routing (#3616)
- outposts/proxy: fix redirect path when external host is a subdirectory (#3628)
- providers/oauth2: add x5c (#3556)
- providers/proxy: fix routing based on signature in traefik and caddy
- root: make redis persistent in docker-compose
- root: reuse custom log helper from config and cleanup duplicate functions
- root: shorten outpost docker healthcheck intervals
- sources/ldap: start_tls before binding but without reading server info
- sources/oauth: use GitHub's dedicated email API when no public email address is configured
- sources/oauth: use UPN for username with azure AD source
- stages/authenticator_duo: fix 404 when current user does not have permissions to view stage
- stages/authenticator_duo: improved import (#3601)
- stages/consent: default to expiring consent instead of always_require
- tenants: handle all errors in default_locale
- web: fix checkbox styling on applications form
- web: fix scrolling in modals in low-height views (#3596)
- web: use mermaidjs (#3623)
- web/admin: enable blueprint instances by default
- web/flows: fix ak-locale prompt being rendered without name attribute
- web/flows: update flow background
- web/user: justify content on user settings page on desktop
## Upgrading

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -5,21 +5,21 @@ slug: "/releases/2023.2"
## New features
- Proxy provider logout improvements
- Proxy provider logout improvements
In previous versions, logging out of a single proxied application would only invalidate that application's session. Starting with this release, when logging out of a proxied application (via the _/outpost.goauthentik.io/sign_out_ URL), all the users session within the outpost are terminated. Sessions in other outposts and with other protocols are unaffected.
Additionally, different providers now have different cookies, instead of all using the same "authentik_proxy" token.
- UX Improvements
- UX Improvements
As with the previous improvements, we've made a lot of minor improvements to the general authentik UX to make your life easier.
- OAuth2 Provider improvements
- OAuth2 Provider improvements
The OAuth2 provider has been reworked to be closer to OAuth specifications and better support refresh tokens and offline access. Additionally the expiry for access tokens and refresh tokens can be adjusted separately now.
- Generated avatars, multiple avatar modes
- Generated avatars, multiple avatar modes
authentik now supports multiple avatar modes, and will use the next configured mode when a mode doesn't have an avatar. For example, the new default configuration attempts to use gravatar, but if the user's email does not have a gravatar setup, it will instead use the new generated avatars. See [Configuration](../../sys-mgmt/settings.md#avatars)
@ -43,73 +43,73 @@ image:
## Minor changes/fixes
- \*/saml: disable pretty_print, add signature tests
- blueprints: don't update default tenant
- blueprints: handle error when blueprint entry identifier field does not exist
- core: Add support for auto generating unique avatars based on the user's initials (#4663)
- core: delete session when user is set to inactive
- core: fix inconsistent branding in end_session view
- core: fix missing uniqueness validator on user api
- core: fix token's set_key accessing data incorrectly
- events: dont log oauth temporary model creation
- events: improve sanitising for tuples and sets
- events: prevent error when request fails without response
- internal: better error message when outpost API controller couldn't fetch outposts
- internal: fix cache-control header
- policies/event_matcher: fix empty app label not being allowed, require at least 1 criteria
- providers/ldap: add unbind flow execution (#4484)
- providers/ldap: fix error not being checked correctly when fetching users
- providers/oauth2: add user id as "sub" mode
- providers/oauth2: don't use policy cache for token requests
- providers/oauth2: only set auth_time in ID token when a login event is stored in the session
- providers/oauth2: optimise client credentials JWT database lookup (#4606)
- providers/oauth2: rework OAuth2 Provider (#4652)
- providers/proxy: add token support for basic auth
- providers/proxy: different cookie name based on hashed client id (#4666)
- providers/proxy: outpost wide logout implementation (#4605)
- providers/saml: fix invalid SAML provider metadata, add schema tests
- providers/saml: fix mismatched SAML SLO Urls (#4655)
- stages/authenticator_validate: fix error with passwordless webauthn login
- stages/prompt: field name (#4497)
- stages/user_write: fix migration setting wrong value, fix form
- web: fix token delete form not showing token identifiers
- web/admin: add notice for user_login stage session cookie behaviour
- web/admin: clarify access code expiration
- web/admin: default to disable policy execution logging
- web/admin: fix certificate filtering for SAML verification certificate
- web/admin: rework event info page to show all event infos
- web/elements: add dropdown css to DOM directly instead of including
- web/elements: fix ak-expand not using correct font
- web/elements: fix clashing page url param
- web/elements: improve codemirror contrast in dark theme
- web/elements: make table rows clickable to select items
- web/elements: persist table page in URL parameters
- web/flows: fix flow background overlay on firefox
- web/user: filter tokens by username
- web/user: refactor loading of data in userinterface
- \*/saml: disable pretty_print, add signature tests
- blueprints: don't update default tenant
- blueprints: handle error when blueprint entry identifier field does not exist
- core: Add support for auto generating unique avatars based on the user's initials (#4663)
- core: delete session when user is set to inactive
- core: fix inconsistent branding in end_session view
- core: fix missing uniqueness validator on user api
- core: fix token's set_key accessing data incorrectly
- events: dont log oauth temporary model creation
- events: improve sanitising for tuples and sets
- events: prevent error when request fails without response
- internal: better error message when outpost API controller couldn't fetch outposts
- internal: fix cache-control header
- policies/event_matcher: fix empty app label not being allowed, require at least 1 criteria
- providers/ldap: add unbind flow execution (#4484)
- providers/ldap: fix error not being checked correctly when fetching users
- providers/oauth2: add user id as "sub" mode
- providers/oauth2: don't use policy cache for token requests
- providers/oauth2: only set auth_time in ID token when a login event is stored in the session
- providers/oauth2: optimise client credentials JWT database lookup (#4606)
- providers/oauth2: rework OAuth2 Provider (#4652)
- providers/proxy: add token support for basic auth
- providers/proxy: different cookie name based on hashed client id (#4666)
- providers/proxy: outpost wide logout implementation (#4605)
- providers/saml: fix invalid SAML provider metadata, add schema tests
- providers/saml: fix mismatched SAML SLO Urls (#4655)
- stages/authenticator_validate: fix error with passwordless webauthn login
- stages/prompt: field name (#4497)
- stages/user_write: fix migration setting wrong value, fix form
- web: fix token delete form not showing token identifiers
- web/admin: add notice for user_login stage session cookie behaviour
- web/admin: clarify access code expiration
- web/admin: default to disable policy execution logging
- web/admin: fix certificate filtering for SAML verification certificate
- web/admin: rework event info page to show all event infos
- web/elements: add dropdown css to DOM directly instead of including
- web/elements: fix ak-expand not using correct font
- web/elements: fix clashing page url param
- web/elements: improve codemirror contrast in dark theme
- web/elements: make table rows clickable to select items
- web/elements: persist table page in URL parameters
- web/flows: fix flow background overlay on firefox
- web/user: filter tokens by username
- web/user: refactor loading of data in userinterface
## Fixed in 2023.2.1
- internal: fix scheme not being forwarded correctly for host intercepted requests
- sources/ldap: add LDAP Debug endpoint
- web/admin: improve action button spinner on ldap source page
- web/admin: remove groups and users from users and group form to prevent accidental removal when updating
- web/admin: use full page size for modals
- internal: fix scheme not being forwarded correctly for host intercepted requests
- sources/ldap: add LDAP Debug endpoint
- web/admin: improve action button spinner on ldap source page
- web/admin: remove groups and users from users and group form to prevent accidental removal when updating
- web/admin: use full page size for modals
## Fixed in 2023.2.2
- flows: include flow authentication requirement in diagram
- lib: don't try to cache generated avatar with full user, only cache with name
- providers/ldap: check MFA password on password stage
- providers/proxy: fix client credential flows not using http interceptor
- providers/proxy: fix value is too long with filesystem sessions
- root: use channel send workaround for sync sending of websocket messages
- web/admin: fix error when creating new users
- web/user: revert truncate behaviour for application description
- flows: include flow authentication requirement in diagram
- lib: don't try to cache generated avatar with full user, only cache with name
- providers/ldap: check MFA password on password stage
- providers/proxy: fix client credential flows not using http interceptor
- providers/proxy: fix value is too long with filesystem sessions
- root: use channel send workaround for sync sending of websocket messages
- web/admin: fix error when creating new users
- web/user: revert truncate behaviour for application description
## Fixed in 2023.2.3
- \*: fix [CVE-2023-26481.md](../../security/cves/CVE-2023-26481.md), Reported by [@fuomag9](https://github.com/fuomag9)
- \*: fix [CVE-2023-26481.md](../../security/cves/CVE-2023-26481.md), Reported by [@fuomag9](https://github.com/fuomag9)
## API Changes
@ -131,15 +131,15 @@ image:
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed content type : `application/json`
- Changed property `sub_mode` (string)
- Changed property `sub_mode` (string)
> Configure what data should be used as unique User Identifier. For most cases, the default should be fine.
Added enum value:
- `user_id`
- `user_id`
##### `PUT` /providers/oauth2/&#123;id&#125;/
@ -147,27 +147,27 @@ Changed response : **200 OK**
Changed content type : `application/json`
- Changed property `sub_mode` (string)
- Changed property `sub_mode` (string)
> Configure what data should be used as unique User Identifier. For most cases, the default should be fine.
Added enum value:
- `user_id`
- `user_id`
###### Return Type:
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed content type : `application/json`
- Changed property `sub_mode` (string)
- Changed property `sub_mode` (string)
> Configure what data should be used as unique User Identifier. For most cases, the default should be fine.
Added enum value:
- `user_id`
- `user_id`
##### `PATCH` /providers/oauth2/&#123;id&#125;/
@ -175,27 +175,27 @@ Changed response : **200 OK**
Changed content type : `application/json`
- Changed property `sub_mode` (string)
- Changed property `sub_mode` (string)
> Configure what data should be used as unique User Identifier. For most cases, the default should be fine.
Added enum value:
- `user_id`
- `user_id`
###### Return Type:
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed content type : `application/json`
- Changed property `sub_mode` (string)
- Changed property `sub_mode` (string)
> Configure what data should be used as unique User Identifier. For most cases, the default should be fine.
Added enum value:
- `user_id`
- `user_id`
##### `POST` /providers/oauth2/
@ -203,27 +203,27 @@ Changed response : **200 OK**
Changed content type : `application/json`
- Changed property `sub_mode` (string)
- Changed property `sub_mode` (string)
> Configure what data should be used as unique User Identifier. For most cases, the default should be fine.
Added enum value:
- `user_id`
- `user_id`
###### Return Type:
Changed response : **201 Created**
- Changed content type : `application/json`
- Changed content type : `application/json`
- Changed property `sub_mode` (string)
- Changed property `sub_mode` (string)
> Configure what data should be used as unique User Identifier. For most cases, the default should be fine.
Added enum value:
- `user_id`
- `user_id`
##### `GET` /providers/oauth2/
@ -237,19 +237,19 @@ Changed: `sub_mode` in `query`
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed content type : `application/json`
- Changed property `results` (array)
- Changed property `results` (array)
Changed items (object): > OAuth2Provider Serializer
- Changed property `sub_mode` (string)
- Changed property `sub_mode` (string)
> Configure what data should be used as unique User Identifier. For most cases, the default should be fine.
Added enum value:
- `user_id`
- `user_id`
##### `GET` /oauth2/authorization_codes/&#123;id&#125;/
@ -257,19 +257,19 @@ Changed response : **200 OK**
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed content type : `application/json`
- Changed property `provider` (object)
- Changed property `provider` (object)
> OAuth2Provider Serializer
- Changed property `sub_mode` (string)
- Changed property `sub_mode` (string)
> Configure what data should be used as unique User Identifier. For most cases, the default should be fine.
Added enum value:
- `user_id`
- `user_id`
##### `GET` /oauth2/refresh_tokens/&#123;id&#125;/
@ -277,19 +277,19 @@ Changed response : **200 OK**
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed content type : `application/json`
- Changed property `provider` (object)
- Changed property `provider` (object)
> OAuth2Provider Serializer
- Changed property `sub_mode` (string)
- Changed property `sub_mode` (string)
> Configure what data should be used as unique User Identifier. For most cases, the default should be fine.
Added enum value:
- `user_id`
- `user_id`
##### `GET` /oauth2/authorization_codes/
@ -297,23 +297,23 @@ Changed response : **200 OK**
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed content type : `application/json`
- Changed property `results` (array)
- Changed property `results` (array)
Changed items (object): > Serializer for BaseGrantModel and ExpiringBaseGrant
- Changed property `provider` (object)
- Changed property `provider` (object)
> OAuth2Provider Serializer
- Changed property `sub_mode` (string)
- Changed property `sub_mode` (string)
> Configure what data should be used as unique User Identifier. For most cases, the default should be fine.
Added enum value:
- `user_id`
- `user_id`
##### `GET` /oauth2/refresh_tokens/
@ -321,23 +321,23 @@ Changed response : **200 OK**
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed content type : `application/json`
- Changed property `results` (array)
- Changed property `results` (array)
Changed items (object): > Serializer for BaseGrantModel and RefreshToken
- Changed property `provider` (object)
- Changed property `provider` (object)
> OAuth2Provider Serializer
- Changed property `sub_mode` (string)
- Changed property `sub_mode` (string)
> Configure what data should be used as unique User Identifier. For most cases, the default should be fine.
Added enum value:
- `user_id`
- `user_id`
##### `GET` /stages/prompt/prompts/&#123;prompt_uuid&#125;/
@ -345,13 +345,13 @@ Changed response : **200 OK**
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed content type : `application/json`
New required properties:
- `name`
- `name`
* Added property `name` (string)
* Added property `name` (string)
##### `PUT` /stages/prompt/prompts/&#123;prompt_uuid&#125;/
@ -361,21 +361,21 @@ Changed content type : `application/json`
New required properties:
- `name`
- `name`
* Added property `name` (string)
* Added property `name` (string)
###### Return Type:
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed content type : `application/json`
New required properties:
- `name`
- `name`
* Added property `name` (string)
* Added property `name` (string)
##### `PATCH` /stages/prompt/prompts/&#123;prompt_uuid&#125;/
@ -383,19 +383,19 @@ Changed response : **200 OK**
Changed content type : `application/json`
- Added property `name` (string)
- Added property `name` (string)
###### Return Type:
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed content type : `application/json`
New required properties:
- `name`
- `name`
* Added property `name` (string)
* Added property `name` (string)
##### `POST` /stages/prompt/prompts/
@ -405,21 +405,21 @@ Changed content type : `application/json`
New required properties:
- `name`
- `name`
* Added property `name` (string)
* Added property `name` (string)
###### Return Type:
Changed response : **201 Created**
- Changed content type : `application/json`
- Changed content type : `application/json`
New required properties:
- `name`
- `name`
* Added property `name` (string)
* Added property `name` (string)
##### `GET` /stages/prompt/prompts/
@ -431,14 +431,14 @@ Added: `name` in `query`
Changed response : **200 OK**
- Changed content type : `application/json`
- Changed content type : `application/json`
- Changed property `results` (array)
- Changed property `results` (array)
Changed items (object): > Prompt Serializer
New required properties:
- `name`
- `name`
* Added property `name` (string)
* Added property `name` (string)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -5,33 +5,33 @@ slug: "/releases/0.10"
This update brings a lot of big features, such as:
- New OAuth2/OpenID Provider
- New OAuth2/OpenID Provider
This new provider merges both OAuth2 and OpenID. It is based on the codebase of the old provider, which has been simplified and cleaned from the ground up. Support for Property Mappings has also been added. Because of this change, OpenID and OAuth2 Providers will have to be re-created.
- Proxy Provider
- Proxy Provider
Due to this new OAuth2 Provider, the Application Gateway Provider, now simply called "Proxy Provider" has been revamped as well. The new authentik Proxy integrates more tightly with authentik via the new Outposts system. The new proxy also supports multiple applications per proxy instance, can configure TLS based on authentik Keypairs, and more.
See [Proxy](../../add-secure-apps/providers/proxy/index.md)
- Outpost System
- Outpost System
This is a new Object type, currently used only by the Proxy Provider. It manages the creation and permissions of service accounts, which are used by the outposts to communicate with authentik.
See [Outposts](../../add-secure-apps/outposts/index.mdx)
- Flow Import/Export
- Flow Import/Export
Flows can now be imported and exported. This feature can be used as a backup system, or to share complex flows with other people. Example flows have also been added to the documentation to help you get going with authentik.
## Under the hood
- authentik now runs on Django 3.1 and Channels with complete ASGI enabled
- uwsgi has been replaced with Gunicorn and uvicorn
- Elastic APM has been replaced with Sentry Performance metrics
- Flow title is now configurable separately from the name
- All logging output is now json
- authentik now runs on Django 3.1 and Channels with complete ASGI enabled
- uwsgi has been replaced with Gunicorn and uvicorn
- Elastic APM has been replaced with Sentry Performance metrics
- Flow title is now configurable separately from the name
- All logging output is now json
## Upgrading
@ -55,7 +55,7 @@ docker-compose up -d
A few options have changed:
- `error_reporting` was changed from a simple boolean to a dictionary:
- `error_reporting` was changed from a simple boolean to a dictionary:
```yaml
error_reporting:
@ -64,8 +64,8 @@ error_reporting:
send_pii: false
```
- The `apm` and `monitoring` blocks have been removed.
- `serverReplicas` and `workerReplicas` have been added
- The `apm` and `monitoring` blocks have been removed.
- `serverReplicas` and `workerReplicas` have been added
### Upgrading

View File

@ -5,18 +5,18 @@ slug: "/releases/0.11"
This update brings these headline features:
- Add Backup and Restore, currently only externally schedulable, documented [here](https://github.com/goauthentik/authentik/blob/version-2022.1/website/docs/maintenance/backups/index.md)
- New Admin Dashboard with more metrics and Charts
- Add Backup and Restore, currently only externally schedulable, documented [here](https://github.com/goauthentik/authentik/blob/version-2022.1/website/docs/maintenance/backups/index.md)
- New Admin Dashboard with more metrics and Charts
Shows successful and failed logins from the last 24 hours, as well as the most used applications
- Add search to all table views
- Outpost now supports a Docker Controller, which installs the Outpost on the same host as authentik, updates and manages it
- Add Token Identifier
- Add search to all table views
- Outpost now supports a Docker Controller, which installs the Outpost on the same host as authentik, updates and manages it
- Add Token Identifier
Tokens now have an identifier which is used to reference to them, so the Primary key is not shown in URLs
- `core/applications/list` API now shows applications the user has access to via policies
- `core/applications/list` API now shows applications the user has access to via policies
## Upgrading

View File

@ -5,17 +5,17 @@ slug: "/releases/0.12"
This update brings these headline features:
- Rewrite Outpost state Logic, which now supports multiple concurrent Outpost instances.
- Add Kubernetes Integration for Outposts, which deploys and maintains Outposts with High Availability in a Kubernetes Cluster
- Add System Task Overview to see all background tasks, their status, the log output, and retry them
- Alerts now disappear automatically
- Audit Logs are now searchable
- Users can now create their own Tokens to access the API
- docker-compose deployment now uses traefik 2.3
- Rewrite Outpost state Logic, which now supports multiple concurrent Outpost instances.
- Add Kubernetes Integration for Outposts, which deploys and maintains Outposts with High Availability in a Kubernetes Cluster
- Add System Task Overview to see all background tasks, their status, the log output, and retry them
- Alerts now disappear automatically
- Audit Logs are now searchable
- Users can now create their own Tokens to access the API
- docker-compose deployment now uses traefik 2.3
Fixes:
- Fix high CPU Usage of the proxy when Websocket connections fail
- Fix high CPU Usage of the proxy when Websocket connections fail
## Upgrading

View File

@ -7,19 +7,19 @@ After a long back and forth, we've finally switched to a more permanent name. Wh
# Headline changes
- New name (https://github.com/goauthentik/authentik/pull/361)
- The web interface is now a semi-SPA Experience. This means that most operations are done through Asynchronous requests
- New name (https://github.com/goauthentik/authentik/pull/361)
- The web interface is now a semi-SPA Experience. This means that most operations are done through Asynchronous requests
In this initial release, this brings features such as a refresh button, a generally better User experience due to shorter loading times
and fewer visual context changes.
- The web interface now has a darkmode, which is enabled automatically based on your Operating system darkmode.
- Application Icons can now be uploaded directly to authentik, rather than just being loaded from a URL
- The web interface now has a darkmode, which is enabled automatically based on your Operating system darkmode.
- Application Icons can now be uploaded directly to authentik, rather than just being loaded from a URL
## Smaller changes
- Add better support for Docker Service Connections with Certificates
- Fix application API not returning the same format as other APIs
- Add better support for Docker Service Connections with Certificates
- Fix application API not returning the same format as other APIs
## Upgrading
@ -30,10 +30,10 @@ Docker-compose users should download the latest docker-compose file from [here](
:::caution
If you decided to rename the folder you're running the docker-compose file from, be aware that this will also change the name, that docker-compose will give the database volume. To mitigate this, either
- Keep the original directory name
- Move the directory and set `COMPOSE_PROJECT_NAME` to the name of the old directory (see [here](https://docs.docker.com/compose/reference/envvars/#compose_project_name))
- Create a backup, rename the directory and restore from backup.
:::
- Keep the original directory name
- Move the directory and set `COMPOSE_PROJECT_NAME` to the name of the old directory (see [here](https://docs.docker.com/compose/reference/envvars/#compose_project_name))
- Create a backup, rename the directory and restore from backup.
:::
The only manual change you have to do is replace the `PASSBOOK_` prefix in your `.env` file, so `PASSBOOK_SECRET_KEY` gets changed to `AUTHENTIK_SECRET_KEY`.
@ -74,10 +74,10 @@ helm upgrade authentik authentik/authentik --devel -f values.yaml
## Post-upgrade notes
- Some default values change, for example the SAML Provider's default issuer.
- Some default values change, for example the SAML Provider's default issuer.
This only makes a difference for newly created providers.
- Expression Policies variables change
- Expression Policies variables change
Anything prefixed with `pb_` changes to `ak_`, this change is done **automatically**

View File

@ -5,45 +5,45 @@ slug: "/releases/0.14"
## Headline features
- Flows are now graphically shown as diagrams, to visualise which stages and policies are bound.
- Flows are now graphically shown as diagrams, to visualise which stages and policies are bound.
This diagram makes it significantly easier to understand how a flow works, as well as helping you design a flow that does exactly what you need.
- Events now have a more general purpose, rather than just logging audit actions.
- Events now have a more general purpose, rather than just logging audit actions.
The following new events are now logged:
- Policy Execution (Has to be enabled on a per-policy basis)
- Policy Exceptions
- Property Mapping Exceptions
- Configuration Errors (currently these events are created by incorrectly configured providers, but will be used further in the future.)
- Update availability
- Policy Execution (Has to be enabled on a per-policy basis)
- Policy Exceptions
- Property Mapping Exceptions
- Configuration Errors (currently these events are created by incorrectly configured providers, but will be used further in the future.)
- Update availability
- The OAuth2 Provider has been updated to closer match the OpenID Connect Specifications
- The OAuth2 Provider has been updated to closer match the OpenID Connect Specifications
Response type no longer has to be configured manually. The issuer field can be configured now (the default behaviour is the same as pre-0.14)
Authorization Codes are now generated as a JWT Token, which is not specified as spec, but seems to be a quasi-standard.
- SAML Providers can now be created from SAML Metadata
- The authentik proxy is now using the currently latest version of oauth2_proxy (6.1.1)
- The license has been changed to GNU/GPL 3.0
- SAML Providers can now be created from SAML Metadata
- The authentik proxy is now using the currently latest version of oauth2_proxy (6.1.1)
- The license has been changed to GNU/GPL 3.0
## Fixes
- admin: fix policy test button in dark theme
- core: fix anonymous user being included in User API
- core: fix token update/delete not working
- core: fix User's token creation not working
- core: make application's provider not required
- core: show multi-select notice for SelectMultiple Widgets
- outposts: allow blank kubeconfig
- outposts: validate kubeconfig before saving
- proxy: update to latest stable oauth2_proxy version
- root: update license
- web: fix sidebar being overlaid over modal backdrop
- web: fix table styling on mobile
- web: use displyname in sidebar for user
- admin: fix policy test button in dark theme
- core: fix anonymous user being included in User API
- core: fix token update/delete not working
- core: fix User's token creation not working
- core: make application's provider not required
- core: show multi-select notice for SelectMultiple Widgets
- outposts: allow blank kubeconfig
- outposts: validate kubeconfig before saving
- proxy: update to latest stable oauth2_proxy version
- root: update license
- web: fix sidebar being overlaid over modal backdrop
- web: fix table styling on mobile
- web: use displyname in sidebar for user
## Upgrading

View File

@ -7,14 +7,14 @@ Due to some database changes that had to be rather sooner than later, there is n
To export data from your old instance, run this command:
- docker-compose
- docker-compose
```shell
docker-compose exec server ./manage.py dumpdata -o /tmp/authentik_dump.json authentik_core.User authentik_core.Group authentik_crypto.CertificateKeyPair authentik_audit.Event otp_totp.totpdevice otp_static.staticdevice otp_static.statictoken
docker cp authentik_server_1:/tmp/authentik_dump.json authentik_dump.json
```
- kubernetes
- kubernetes
```shell
kubectl exec -it authentik-web-... -- ./manage.py dumpdata -o /tmp/authentik_dump.json authentik_core.User authentik_core.Group authentik_crypto.CertificateKeyPair authentik_audit.Event otp_totp.totpdevice otp_static.staticdevice otp_static.statictoken
@ -23,14 +23,14 @@ kubectl cp authentik-web-...:/tmp/authentik_dump.json authentik_dump.json
After that, create a new authentik instance in a different namespace (kubernetes) or in a different folder (docker-compose). Once this instance is running, you can use the following commands to restore the data. On docker-compose, you still have to run the `migrate` command, to create all database structures.
- docker-compose
- docker-compose
```shell
docker cp authentik_dump.json new_authentik_server_1:/tmp/authentik_dump.json
docker-compose exec server ./manage.py loaddata /tmp/authentik_dump.json
```
- kubernetes
- kubernetes
```shell
kubectl cp authentik_dump.json authentik-web-...:/tmp/authentik_dump.json