goauthentik / goauthentik/authentik

Code-based Authenticators are ignored completely by LDAP Outpost when a DUO device is enrolled

Open
#22,816 0 comments 0 reactions 0 assignees View on GitHub
bug bug/confirmed
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.