core: store passwords as authenticator devices - #24325
Conversation
✅ Deploy Preview for authentik-integrations ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
✅ Deploy Preview for authentik-docs ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #24325 +/- ##
==========================================
- Coverage 91.37% 90.73% -0.65%
==========================================
Files 1137 1137
Lines 71591 71664 +73
Branches 3875 3875
==========================================
- Hits 65416 65024 -392
- Misses 6140 6605 +465
Partials 35 35
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. |
23fdf85 to
75e3a87
Compare
| def __str__(self): | ||
| return self.username | ||
|
|
||
| def save(self, *args, **kwargs): |
75e3a87 to
f4aa26e
Compare
|
authentik PR Installation instructions Instructions for docker-composeAdd the following block to your AUTHENTIK_IMAGE=ghcr.io/goauthentik/dev-server
AUTHENTIK_TAG=gh-f4aa26e442e0b349ae73e29e174e49e544a422f2
AUTHENTIK_OUTPOSTS__CONTAINER_IMAGE_BASE=ghcr.io/goauthentik/dev-%(type)s:gh-%(build_hash)sAfterwards, run the upgrade commands from the latest release notes. Instructions for KubernetesAdd the following block to your authentik:
outposts:
container_image_base: ghcr.io/goauthentik/dev-%(type)s:gh-%(build_hash)s
global:
image:
repository: ghcr.io/goauthentik/dev-server
tag: gh-f4aa26e442e0b349ae73e29e174e49e544a422f2Afterwards, run the upgrade commands from the latest release notes. |
f4aa26e to
b168406
Compare
Passwords currently live as fields on the User model, which prevents password-specific authenticator state and policy from sharing the device model used by other authenticators. This moves local password hashes and change timestamps into a PasswordDevice owned by the password stage, while keeping Django's password APIs as integration adapters and excluding password devices from MFA discovery.