Skip to content

✨(web) add 2FA authentication on Django admin#699

Open
AntoineAugusti wants to merge 1 commit into
mainfrom
feat/django-admin-otp
Open

✨(web) add 2FA authentication on Django admin#699
AntoineAugusti wants to merge 1 commit into
mainfrom
feat/django-admin-otp

Conversation

@AntoineAugusti
Copy link
Copy Markdown
Member

📝 Description

L'accès à l'interface d'administration Django n'était protégé que par un mot de passe. Cette PR ajoute une authentification à deux facteurs (TOTP) pour renforcer la sécurité.

Changements

  • Ajout de django-otp et qrcode aux dépendances
  • Activation des apps django_otp, otp_totp et otp_static dans INSTALLED_APPS
  • Ajout du middleware OTPMiddleware après AuthenticationMiddleware
  • Remplacement du site d'administration par OTPAdminSite, qui bloque l'accès sans token OTP vérifié

Migrations

Les tables otp_totp_totpdevice et otp_static_staticdevice sont créées via bin/manage migrate.

Premier accès

Pour se connecter sans appareil OTP configuré, générer un token de secours :

bin/manage addstatictoken <username>

Puis configurer un appareil TOTP depuis l'interface d'administration.

Tests

  • Vérifie que l'admin redirige vers le formulaire OTP pour un utilisateur sans appareil configuré
  • Vérifie qu'un token TOTP valide permet de s'authentifier (user.is_verified())

🏷️ Type de changement

  • 🐛 Correction de bug
  • 🎢 Nouvelle fonctionnalité (changement non bloquant qui ajoute une fonctionnalité)
  • 🥁 Changement breaking (modification ou fonctionnalité qui pourrait casser le fonctionnement existant) nécessitant une mise à jour de la documentation
  • 📚 Mise à jour de la documentation
  • ♻️ Refactorisation
  • 🔧 Changement technique

🔧 Modifications

Lister les changements principaux

🛸 Dépendances requises pour ce changement (si applicable)

🏝️ Comment tester (si applicable)

Étapes pour reproduire ou tester

📸 Captures d’écran (si applicable)

✅ Liste de contrôle

  • 💅 J’ai ajouté ou mis à jour les tests appropriés.
  • 📝 J’ai mis à jour ou ajouté la documentation nécessaire.
  • 🚀 J’ai pris en compte l’impact sur les performances, la sécurité et l’expérience utilisateur.
  • 👀 J’ai demandé une revue à une personne de l’équipe.

@AntoineAugusti AntoineAugusti linked an issue Jun 6, 2026 that may be closed by this pull request
@AntoineAugusti AntoineAugusti added the added PR: backward compatible addition label Jun 6, 2026
@AntoineAugusti AntoineAugusti force-pushed the feat/django-admin-otp branch from 0ec8ac8 to fc4e976 Compare June 6, 2026 20:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

added PR: backward compatible addition

Projects

None yet

Development

Successfully merging this pull request may close these issues.

add TOTP on superusers' login

1 participant