goauthentik / goauthentik/authentik
Code-based Authenticators are ignored completely by LDAP Outpost when a DUO device is enrolled
- Dominant language
- Python
- Stars
- 25.6k
- Forks
- 2k
- Avg merge
- 1d 2h
- Merged PRs (30d)
- 659
Description
### Describe the bug
When binding to the LDAP outpost, the user's configured DUO device is always used, even if they have provided a code-based authenticator.
### How to reproduce
1. Configure a DUO authenticator
2. Configure a TOTP or Static Autenthicator
3. Deploy an LDAP outpost w/ Code-based MFA enabled
4. Bind to the outpost using a code-based authenticator code in the passsword
5. Observe DUO is still notified
### Expected behavior
If the user provides a code in their password, DUO should be bypassed entirely.
### Screenshots
_No response_
### Additional context
I noticed https://github.com/goauthentik/authentik/blob/d639c0372eed15f5357ca1862b8dc2a3f9325f2b/internal/outpost/flow/solvers.go#L32 has device class DUO being checked before the Static/TOTP branch. I'm wondering if these conditional blocks can just be re-ordered to achieve the desired result.
### Deployment Method
Docker
### Version
2026.5.2
### Relevant log output
```shell
```
Contributor guide
Assessment
This issue has not been assessed yet.