2FA Google Authentificator pour PrestaShop — Documentation
Installer et configurer la double authentification TOTP sur le back-office PrestaShop 8 & 9 : appairage, codes de récupération, mode obligatoire, anti brute force.
Ce guide couvre l’installation, la configuration et l’utilisation quotidienne du module 2FA Google Authentificator pour PrestaShop 8 et 9. Le module ajoute une vérification par code à 6 chiffres (standard TOTP, RFC 6238) après la saisie du mot de passe sur le back-office.
Prérequis
- PrestaShop 8.0 à 8.2 ou PrestaShop 9.x
- PHP 7.4 minimum (PHP 8.1+ requis par PrestaShop 9)
- Une application TOTP sur le téléphone de chaque employé : Google Authenticator, Microsoft Authenticator, Authy, 1Password, Bitwarden, FreeOTP ou toute app compatible RFC 6238
- Horloge serveur synchronisée via NTP (le cas sur tous les hébergements modernes)
Installation
- Dans le back-office, ouvrez Modules → Gestionnaire de modules.
- Cliquez sur Installer un module et sélectionnez le fichier
df2fa.ziptéléchargé depuis votre compte DataFirefly. - Cliquez sur Installer. Le module crée sa table en base et enregistre ses contrôleurs automatiquement.
L’installation n’active la 2FA pour personne : chaque employé doit effectuer son appairage (ou y être forcé via le mode obligatoire, voir ci-dessous). Vous ne risquez pas de vous retrouver bloqué hors du back-office en installant le module.
Configuration du module
Ouvrez Modules → Gestionnaire de modules → 2FA Google Authentificator → Configurer. La page présente trois blocs :
Mon compte 2FA
Un panneau d’état en haut de page indique si votre propre 2FA est active, avec un bouton direct vers l’appairage ou la gestion.
Configuration 2FA
- 2FA obligatoire — en mode forcé, tout employé sans 2FA configurée est automatiquement redirigé vers la page d’appairage dès sa connexion. En mode opt-in (par défaut), une bannière de rappel s’affiche dans le back-office et chaque employé active sa 2FA quand il le souhaite.
- Nom de l’émetteur (Issuer) — le nom affiché dans l’application TOTP de vos employés (par défaut, le nom de la boutique).
Statut 2FA des employés
Un tableau liste tous les employés avec leur statut 2FA (actif/inactif), la date de configuration et un bouton Réinitialiser pour chaque employé ayant la 2FA active.
Déploiement progressif recommandé : commencez en mode opt-in, laissez la bannière de rappel faire son travail quelques jours, vérifiez l’adoption dans le tableau, puis basculez en mode obligatoire.
Appairage côté employé
- L’employé ouvre la page d’appairage : via le lien Configurer ma 2FA du menu utilisateur (en haut à droite du back-office), via la bannière de rappel, ou automatiquement à la connexion si le mode obligatoire est actif.
- Il scanne le QR code affiché avec son application TOTP. Le QR code est généré localement dans le navigateur — aucune donnée n’est envoyée à un service externe. En cas d’impossibilité de scanner, le secret peut être saisi manuellement dans l’app (bouton Copier).
- Il saisit le code à 6 chiffres affiché par l’application pour valider l’appairage.
- Les 8 codes de récupération à usage unique s’affichent alors — c’est la seule fois où ils sont visibles. L’employé les copie ou les imprime et les conserve en lieu sûr.
Les codes de récupération sont stockés hashés (SHA-256) : ils ne peuvent pas être réaffichés ultérieurement. S’ils sont perdus, il faudra désactiver puis réactiver la 2FA, ou passer par une réinitialisation Super Admin.
Connexion avec 2FA
Après la saisie du mot de passe, l’employé est redirigé vers l’écran de vérification 2FA et saisit le code à 6 chiffres courant de son application. La vérification reste valable 12 heures pour la session : il n’est pas nécessaire de ressaisir un code à chaque page.
Une tolérance de dérive de ±30 secondes est appliquée pour absorber les petits écarts d’horloge entre le serveur et le téléphone.
Codes de récupération
Si l’employé n’a plus accès à son application TOTP (téléphone perdu, volé, réinitialisé) :
- Sur l’écran de vérification, cliquez sur Utiliser un code de récupération.
- Saisissez l’un des 8 codes de récupération (10 caractères).
- Chaque code ne fonctionne qu’une seule fois. Une fois connecté, désactivez puis réactivez la 2FA pour générer un nouvel appairage et une nouvelle série de codes.
Protection anti force brute
Après 5 codes invalides consécutifs, la vérification 2FA du compte est verrouillée pendant 15 minutes. L’écran de vérification affiche le temps restant. Le compteur est remis à zéro à chaque vérification réussie.
Réinitialisation par un Super Admin
Si un employé a perdu à la fois son téléphone et ses codes de récupération :
- Un Super Admin ouvre la page de configuration du module.
- Dans le tableau Statut 2FA des employés, il clique sur Réinitialiser sur la ligne de l’employé concerné.
- La 2FA de l’employé est supprimée : il peut se connecter avec son seul mot de passe et devra refaire l’appairage (immédiatement si le mode obligatoire est actif).
Désactiver sa propre 2FA
Depuis Gérer ma 2FA (menu utilisateur ou panneau du module), cliquez sur Désactiver la 2FA et confirmez avec un code TOTP valide. La saisie d’un code est exigée pour empêcher une désactivation par une session laissée ouverte.
Mise à jour depuis la version 1.0.x
La mise à jour vers la 1.1.0 est automatique et transparente :
- La structure de la table est migrée (colonnes de verrouillage, champ secret élargi).
- Les secrets TOTP existants restent valides et sont chiffrés en AES-256 automatiquement lors de leur prochaine sauvegarde. Aucun ré-appairage nécessaire.
- Les codes de récupération existants restent utilisables : ils sont convertis en hash SHA-256 à leur première utilisation.
Migration PS8 → PS9 : le module est identique sur les deux versions. Vous pouvez migrer votre boutique sans mettre à jour le module ni ré-appairer les employés.
Dépannage
« Code invalide » alors que le code semble correct
Dans 95 % des cas il s’agit d’un écart d’horloge. Vérifiez que l’horloge du serveur est synchronisée par NTP (timedatectl sous Linux) et que l’heure du téléphone est en mode automatique. La tolérance du module est de ±30 secondes.
Compte verrouillé après des essais infructueux
Attendez la fin du verrouillage de 15 minutes, ou demandez à un Super Admin de réinitialiser la 2FA du compte depuis la page de configuration.
Tous les accès Super Admin sont bloqués
En dernier recours, désactivez le module en base de données : dans la table ps_module, passez la colonne active à 0 pour la ligne df2fa, ou renommez temporairement le dossier modules/df2fa. Reconnectez-vous, puis réactivez le module et refaites les appairages nécessaires.
La bannière de rappel ne s’affiche pas
La bannière n’apparaît que pour les employés sans 2FA active. En mode opt-in, elle peut être masquée pour la session en cours via sa croix de fermeture ; elle réapparaît à la session suivante.
Notes de version
1.1.0 — 2 juillet 2026
- Compatibilité PrestaShop 9 (contrôleurs, nouvelle page de connexion Symfony, Symfony 6.4)
- Chiffrement AES-256 du secret TOTP en base, avec migration automatique
- Codes de récupération hashés en SHA-256 (10 caractères)
- Verrouillage 15 minutes après 5 codes invalides
- QR code généré 100 % localement (dépendance CDN supprimée)
1.0.0 — 12 mars 2025
- Première version stable : TOTP RFC 6238, mode obligatoire ou opt-in, 8 codes de récupération, réinitialisation Super Admin, multi-boutique