📍 Article principal du cluster : Authentik 2026 : guide complet.
Sans 2FA obligatoire, votre Authentik est aussi sûr qu’un seul mot de passe. Ce tutoriel détaille la configuration complète des trois mécanismes MFA : TOTP (Aegis, Authy), WebAuthn (YubiKey, Solokey), et Passkeys (Apple, Google, Windows Hello). Politique organisationnelle, recovery codes, déploiement à une équipe de 30 personnes en 30 minutes.
Prérequis
- Authentik en production avec premier admin créé (voir tutoriel installation).
- Compréhension des protocoles MFA (TOTP, WebAuthn).
- Niveau attendu : intermédiaire/avancé.
- Temps estimé : 1-2 heures.
Étape 1 — Comprendre les trois mécanismes
TOTP (Time-based One-Time Password) : code 6 chiffres généré toutes les 30 secondes par une app (Aegis, Authy, Google Authenticator). Universel, fonctionne hors ligne, mais peut être phishé via fake login pages.
WebAuthn / FIDO2 : clés cryptographiques sur appareil (YubiKey, Solokey, Titan). Résistant au phishing par conception. Nécessite l’achat de clés matérielles (~50 USD/clé).
Passkeys : évolution moderne de WebAuthn, stockée dans iCloud Keychain, Google Password Manager, ou Microsoft Authenticator. Synchronisée entre appareils du même écosystème.
Étape 2 — Activer TOTP dans Authentik
Authentik admin → Stages → Create → Authenticator TOTP Setup Stage :
Name: setup-totp
Friendly Name: Configuration TOTP
Digits: 6
Configure flow: default-authentication-flow
Puis Stages → Create → Authenticator Validation Stage :
Name: validate-totp
Device classes: TOTP
Configuration stage: setup-totp
Étape 3 — Activer WebAuthn / Passkeys
Stages → Create → Authenticator WebAuthn Setup Stage
Name: setup-webauthn
User verification: preferred (allows Passkeys)
Authenticator attachment: cross-platform OR platform
Resident key requirement: preferred
« cross-platform » accepte YubiKey USB. « platform » accepte Apple/Google/Windows Hello (Passkey). « preferred » des deux accepte tout.
Étape 4 — Modifier le Flow d’authentification
Flows → default-authentication-flow → Stage Bindings → Add :
- Stage 1 : Identification (email).
- Stage 2 : Password.
- Stage 3 : Authenticator Validation (existing user).
- Stage 4 : Login.
Order important : Identification → Password → MFA → Login.
Étape 5 — Politique : MFA obligatoire
Policies → Create → Expression Policy :
Name: require-mfa
Expression:
return ak_user_has_authenticator(request.user, ['totp', 'webauthn'])
Lier à Flow Authentication. Tout utilisateur sans MFA configuré sera forcé de le faire avant de poursuivre le login.
Étape 6 — Onboarding utilisateur
Quand un nouvel employé est créé, Authentik envoie un email d’invitation. Au premier login :
- Saisit email + mot de passe initial (force le changement).
- Configure MFA : choix entre TOTP et WebAuthn/Passkey.
- Reçoit recovery codes (6 codes uniques) à imprimer/stocker.
- Confirme MFA via challenge.
- Atterrit sur le dashboard.
Étape 7 — Recovery codes
Stages → Create → Authenticator Static Setup Stage :
Name: setup-static
Token count: 6
Token length: 12
L’utilisateur reçoit 6 codes à usage unique pour secours en cas de perte d’appareil. Imprimer ou Vaultwarden.
Étape 8 — Politique YubiKey pour admins
Pour le groupe admins, exiger spécifiquement WebAuthn (YubiKey ou Passkey) :
Policies → Expression Policy
Name: admins-require-webauthn
Expression:
if "admins" in [g.name for g in request.user.ak_groups.all()]:
return ak_user_has_authenticator(request.user, ['webauthn'])
return True
Étape 9 — Déploiement à 30 personnes
Procédure recommandée :
- Annoncer 7 jours à l’avance.
- Tester sur 3 personnes pilote (admin + 2 devs) pendant 1 semaine.
- Webinar 30 minutes pour expliquer.
- Activer politique MFA obligatoire un mardi (pas vendredi).
- Hotline pendant 48 heures pour les blocages.
Erreurs fréquentes
| Erreur | Cause | Solution |
|---|---|---|
| QR code TOTP rejette code | Heure serveur décalée | NTP : chrony ou systemd-timesyncd |
| WebAuthn ne marche pas Safari | Safari < 17 | Update Safari ou utiliser Chrome |
| Passkey impossible à enregistrer | HTTPS pas valide | Vérifier certificat Let’s Encrypt |
| Utilisateur perdu MFA | Pas de recovery codes | Admin : Reset MFA via panel + email new flow |
| YubiKey USB non détectée | Permission browser | Authoriser USB dans browser settings |
| Loop validation | Stage MFA mal lié | Vérifier Flow Stage Bindings |
Adaptation au contexte ouest-africain
Trois précisions. Coût YubiKey : YubiKey 5C NFC à 50 USD via revendeur officiel ou 35 EUR via Amazon Allemagne (livraison Maroc/Tunisie possible). Pour économiser, Solokey (40 EUR) ou TrustKey (30 USD) sont équivalents en sécurité. Téléphones partagés : éviter installation TOTP sur téléphone partagé famille. Privilégier Aegis (open source) avec mot de passe app + sauvegarde chiffrée. Passkeys et iCloud : utilisateurs Apple synchronisent automatiquement entre Mac/iPhone/iPad. Utilisateurs Android : Google Password Manager.
Tutoriels frères
FAQ
SMS comme MFA ? Non. SMS vulnérable au SIM-swapping, pas conforme NIST 800-63 niveau AAL2. Authentik supporte SMS mais nous le déconseillons fortement.
Coût pour 30 collaborateurs en YubiKey ? 30 × 35 € = 1050 €. Ne déployer que pour admins (5 × 35 = 175 €). Reste de l’équipe : TOTP gratuit.
Passkeys vs YubiKey ? Passkeys plus pratiques (sync entre appareils du même écosystème). YubiKey plus universelles (cross-platform, pas vendor lock-in).
Que faire si admin perd YubiKey + recovery codes ? Procédure « break-glass » : second admin dédié dont les credentials sont en coffre physique. Sans cela, full reinstall de l’instance.
MFA fatigue (push spam) ? Authentik n’utilise pas push notifications par défaut, donc pas de risque de fatigue. TOTP/WebAuthn nécessitent action utilisateur explicite.
Pour aller plus loin
- 🔝 Retour au pilier : Guide complet Authentik 2026
- Documentation MFA Authentik : goauthentik.io/docs/flow/stages/authenticator