Ce Must-Use Plugin ajoute une couche de sécurité supplémentaire à l'authentification WordPress en proposant un second facteur (MFA) via une application d'authentification (TOTP) ou par Email.
- Hybride : Supporte Google Authenticator, Authy (TOTP) et l'envoi de codes par Email.
- Enrôlement Forcé : Option permettant de bloquer l'accès au tableau de bord tant qu'une méthode MFA n'est pas configurée.
- Architecture Modulaire : Séparation nette entre la logique d'authentification, l'interface utilisateur et les helpers.
- Sécurité robuste : Utilise la librairie standardisée
spomky-labs/otphp.
mfa/
├── src/
│ ├── Admin/
│ │ ├── Profile.php # Gestion des champs dans "Mon Profil"
│ │ └── Settings.php # Page de réglages globaux (Réglages > MFA Security)
│ ├── Core/
│ │ └── Auth.php # Hook d'interception du login et vérification
│ └── Helpers/
│ └── Otp.php # Interface avec la librairie OTPHP
├── custom-mfa.php # Loader principal (Point d'entrée)
└── README.md
-
Dépendances : Assurez-vous d'avoir installé la librairie via Composer à la racine de votre projet (Bedrock) : Bash
composer require spomky-labs/otphp -
Déploiement : Placez le dossier
mfaet le fichiercustom-mfa.phpdans votre dossierweb/app/mu-plugins/. -
Activation : Étant un MU-Plugin, il s'active automatiquement sans intervention dans l'admin.
Rendez-vous dans Réglages > MFA Security pour activer l'option "Forcer l'activation" . Si cochée, tout utilisateur sans MFA sera redirigé vers sa page profil dès sa connexion.
Chaque utilisateur peut choisir sa méthode dans Utilisateurs > Votre profil :
- App : Scanner le QR Code avec une application type Google Authenticator.
- Email : Un code à 6 chiffres sera envoyé à l'adresse de l'utilisateur à chaque tentative de connexion.
- Mode Secours : Si un utilisateur est bloqué (perte de téléphone), un administrateur peut réinitialiser sa méthode en base de données ou via WP-CLI :
wp usermeta update [ID_USER] _mfa_method none - Désactivation d'urgence : Renommez le dossier
mu-plugins/mfaenmfa_offpour désactiver instantanément toute la logique de vérification. - Synchronisation horaire : Le mode "App" repose sur le temps (TOTP). Assurez-vous que votre serveur est synchronisé via NTP (Network Time Protocol).
- OTPHP : Librairie PHP pour la génération/vérification des secrets.
- QRServer API : Utilisé pour la génération dynamique des QR Codes (URL sécurisée HTTPS).
Readme fait avec gemini par manque de temps.
Enjoy