FEAT: Codes de récupération 2FA (10 codes à l'enrôlement) #12

Closed
opened 2026-08-10 21:02:19 +02:00 by nonobis · 0 comments
Owner

🎯 Contexte

La spec classe les codes de récupération 2FA en P0 (mesure de sécurité). Ils ne sont pas implémentés : grep RecoveryCode → 0 occurrence.

📚 Référence spec (MASTER_SPECIFICATION.md v2.0)

4.3 Mesures de Sécurité : « 2FA TOTP — Récupération : 10 codes de secours à l'enrôlement » (P0)
Phase 5 : « 2FA TOTP + 10 codes de récupération »
Phase 9 : « 10 codes de récupération générés à l'enrôlement 2FA »

🔍 État actuel (vérifié dans le code)

2FA TOTP fonctionnel (Enable2fa/Verify2fa/Disable2fa via Identity). Aucun code de récupération généré, stocké, affiché ou vérifié.

🧩 À faire

  • Générer 10 codes de secours à l'enrôlement (Enable2fa)
  • Stockage hashé (ex. SHA-256) + affichage unique à l'enrôlement
  • Vérification d'un code de secours au login (usage unique)
  • UI : affichage des codes + confirmation de sauvegarde
  • Tests

🧪 Critères d'acceptation

  • À l'enrôlement : 10 codes affichés 1 seule fois
  • Un code de secours permet le login sans TOTP et est invalidé après usage
  • make test vert

📁 Fichiers concernés

src/Heimdall.Application/Auth/Commands/Enable2fa/, src/Heimdall.Web/Controllers/AuthController.cs, src/Heimdall.Web/Components/Pages/Profile.razor

## 🎯 Contexte La spec classe les codes de récupération 2FA en **P0** (mesure de sécurité). Ils ne sont pas implémentés : `grep RecoveryCode` → 0 occurrence. ## 📚 Référence spec (MASTER_SPECIFICATION.md v2.0) **4.3 Mesures de Sécurité** : « 2FA TOTP — Récupération : 10 codes de secours à l'enrôlement » (P0) **Phase 5** : « 2FA TOTP + 10 codes de récupération » **Phase 9** : « 10 codes de récupération générés à l'enrôlement 2FA » ## 🔍 État actuel (vérifié dans le code) 2FA TOTP fonctionnel (Enable2fa/Verify2fa/Disable2fa via Identity). Aucun code de récupération généré, stocké, affiché ou vérifié. ## 🧩 À faire - [ ] Générer 10 codes de secours à l'enrôlement (Enable2fa) - [ ] Stockage hashé (ex. SHA-256) + affichage unique à l'enrôlement - [ ] Vérification d'un code de secours au login (usage unique) - [ ] UI : affichage des codes + confirmation de sauvegarde - [ ] Tests ## 🧪 Critères d'acceptation - [ ] À l'enrôlement : 10 codes affichés 1 seule fois - [ ] Un code de secours permet le login sans TOTP et est invalidé après usage - [ ] `make test` vert ## 📁 Fichiers concernés src/Heimdall.Application/Auth/Commands/Enable2fa/, src/Heimdall.Web/Controllers/AuthController.cs, src/Heimdall.Web/Components/Pages/Profile.razor
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
nonobis/Heimdall#12
No description provided.