Two-Factor Authentication (2FA) — Authentification à deux facteurs pour le back-office

Two-Factor Authentication (2FA) ajoute une seconde étape à la connexion au back-office PrestaShop : après son mot de passe, chaque employé saisit le code à 6 chiffres d’une application d’authentification installée sur son téléphone (TOTP). Avec un mot de passe volé, aucune page, aucun formulaire et aucun appel AJAX du back-office ne s’exécute sans ce code.

Le module cherche l’équilibre entre sécurité et confort : un appareil de confiance mémorisé 30 jours, une session vérifiée de 12 heures, des profils obligatoires avec délai de grâce, un tableau de bord et un journal pour les super-administrateurs, et plusieurs voies de retour si un téléphone est perdu.

Points forts :

  • Codes TOTP compatibles avec Google Authenticator, Microsoft Authenticator, Authy, 1Password et Bitwarden
  • Un code par mois et par navigateur : appareil de confiance de 30 jours, indépendant de l’adresse IP (réglable)
  • Session vérifiée de 12 heures (réglable), terminée à la déconnexion
  • 2FA obligatoire par profil, avec délai de grâce et bandeau d’avertissement
  • « Mon authentification à deux facteurs » pour chaque employé ; tableau de bord, journal, réinitialisation et déblocage pour les super-administrateurs
  • 10 codes de secours par employé, réinitialisation par un administrateur, fichier DISABLE_2FA et commande console de retour d’urgence
  • Blocage après des codes erronés, enregistré en base
  • La licence ne désactive jamais la protection
  • Interface en français, anglais, espagnol, italien et polonais, sans override ni bibliothèque PHP tierce

Voir le module et les offres


Présentation

Un mot de passe seul ne suffit plus à protéger une administration e-commerce : phishing, fuite de données, mot de passe réutilisé ou partagé. Or le back-office donne accès aux prix, aux commandes, aux fichiers clients et à la création de comptes administrateur.

Avec Two-Factor Authentication (2FA) :

  1. L’employé saisit son identifiant et son mot de passe comme d’habitude.
  2. Une page de code autonome, sans menu ni lien du back-office, lui demande le code à 6 chiffres de son application.
  3. Le code est vérifié avant toute action du back-office. Si la case Se souvenir de cet appareil est cochée, ce navigateur ne redemande pas de code pendant 30 jours ; sinon, la vérification reste valable 12 heures.

Le contrôle s’applique aux pages, aux formulaires (POST) et aux appels AJAX ou JSON : avec le seul mot de passe, une page est redirigée vers la page de code et un appel AJAX reçoit une réponse 401 sans donnée. Limite connue sur PrestaShop 1.7 : trois anciens scripts autonomes de PrestaShop échappent au contrôle (voir « Dépannage »).


Fonctionnalités

Code à usage unique (TOTP)

  • Norme TOTP (RFC 6238) : code à 6 chiffres renouvelé toutes les 30 secondes, généré hors ligne par l’application
  • Compatible avec Google Authenticator, Microsoft Authenticator, Authy, 1Password, Bitwarden et toute application TOTP
  • Un code n’est accepté qu’une seule fois ; l’horloge du téléphone peut être décalée d’une période de 30 secondes
  • Le code part dès le sixième chiffre saisi
  • Secrets enregistrés dans un format chiffré et authentifié ; codes de secours conservés sous forme de hash

Une connexion qui ne gêne pas l’équipe

  • Appareil de confiance : un cookie par employé et par navigateur (HttpOnly, SameSite=Lax), valable 30 jours par défaut, quelle que soit l’adresse IP ; liaison à l’adresse IP en option
  • Session vérifiée : le code saisi reste valable 12 heures par défaut (1 à 168 heures) ; la déconnexion l’annule
  • La case « Se souvenir de cet appareil » est cochée par défaut (réglable)
  • Chaque employé voit ses appareils (navigateur, système, dernière utilisation, validité) et retire ceux qu’il n’utilise plus ; 20 appareils au plus par employé

Profils obligatoires et délai de grâce

  • Choix des profils pour lesquels la 2FA est obligatoire (par exemple SuperAdmin) ; les autres employés l’activent librement
  • Délai de grâce de 7 jours par défaut, compté à partir du jour où le profil devient obligatoire : pendant ce délai, un bandeau indique les jours restants et l’employé peut choisir « Pas maintenant »
  • Passé le délai, l’employé est envoyé vers la page de configuration et ne peut plus ouvrir le back-office tant qu’il ne l’a pas terminée

Mon authentification à deux facteurs et tableau de bord

  • Chaque employé gère sa 2FA depuis « Mon authentification à deux facteurs » : activer, changer de téléphone, créer de nouveaux codes de secours, gérer ses appareils de confiance et, hors profil obligatoire, désactiver
  • Les super-administrateurs disposent d’un tableau de bord : nombre d’employés, employés protégés, configurations obligatoires en attente, comptes bloqués, et un tableau avec le profil, le statut, les codes de secours restants, les appareils et le dernier code saisi de chacun
  • Réinitialiser (téléphone perdu) ou débloquer un collègue se fait depuis le tableau, en confirmant avec son propre code
Tableau de bord d’un super-administrateur : 4 employés dont 3 protégés, une configuration obligatoire en attente, un employé bloqué, avec les boutons Réinitialiser et DébloquerTableau de bord des employés

Journal de sécurité

  • Codes acceptés ou erronés, codes de secours utilisés, blocages et déblocages, changements de téléphone, nouveaux codes de secours, appareils ajoutés ou retirés, réinitialisations, désactivations
  • Filtre par employé, pagination, adresse IP et détail de chaque ligne ; aucun code ni secret n’est enregistré
  • Purge automatique une fois par jour (90 jours par défaut)

Retour d’urgence

  • 10 codes de secours à usage unique par employé
  • Réinitialisation par un super-administrateur depuis le tableau de bord
  • Commande console wepresta:2fa:disable (un employé ou toute la boutique, avec simulation)
  • Fichier DISABLE_2FA dans le dossier du module : suspend la demande de code pour tout le monde tant qu’il existe, avec un bandeau rouge pour les super-administrateurs

Licence et technique

  • La licence ne désactive jamais la protection : seuls les réglages et le tableau de bord sont verrouillés à l’expiration
  • Aucun override du cœur de PrestaShop, aucune bibliothèque PHP tierce, archive de moins de 250 Ko
  • Interface disponible en français, anglais, espagnol, italien et polonais

Prérequis

  • PrestaShop : 1.7.8, 8.2+ ou 9.1+. PrestaShop 1.7.7, 8.0, 8.1 et 9.0 ne sont pas pris en charge.
  • PHP : 7.4 minimum, dans une version prise en charge par votre PrestaShop, avec les extensions json, openssl et mbstring.
  • Application d’authentification sur le téléphone de chaque employé concerné (Google Authenticator, Microsoft Authenticator, Authy, 1Password, Bitwarden ou équivalent) et une heure de téléphone réglée automatiquement.
  • HTTPS recommandé pour le back-office.

Installation

Méthode 1 — via le back-office (recommandé)

  1. Téléchargez l’archive depuis votre espace client WePresta
  2. Allez dans Modules > Gestionnaire de modules
  3. Cliquez sur Téléverser un module
  4. Sélectionnez l’archive ZIP téléchargée
  5. Attendez la fin de l’installation, puis cliquez sur Configurer et activez votre licence

Méthode 2 — via FTP

  1. Décompressez l’archive ZIP
  2. Uploadez le dossier wepresta_admin_2fa/ dans /modules/
  3. Dans le back-office : Modules > Gestionnaire de modules
  4. Recherchez le module et cliquez sur Installer
  5. Cliquez sur Configurer et activez votre licence

Ce que fait l’installation

  • Crée les tables du module (inscriptions, appareils de confiance, journal)
  • Enregistre les hooks nécessaires et ouvre la page de code et « Mon authentification à deux facteurs » à tous les profils, y compris ceux créés plus tard ; le tableau de bord reste réservé aux super-administrateurs
  • Initialise les réglages : 2FA activée, aucun profil obligatoire

Note : tant que vous n’avez pas choisi de profil obligatoire, personne n’est forcé de configurer la 2FA. Chaque employé peut l’activer lui-même ; la page de configuration et le tableau de bord vous avertissent si votre propre compte n’est pas encore protégé.


Mise à jour depuis la version 1.0.0

  1. Sauvegardez votre boutique (fichiers et base de données).
  2. Téléversez l’archive 2.0.0 dans Modules > Gestionnaire de modules : PrestaShop lance la mise à jour.
  3. Les inscriptions, les codes de secours, le journal et vos réglages sont conservés. Les fichiers inutiles de la version 1.0.0 sont supprimés.
  4. Les appareils de confiance de la version 1.0.0 ne sont plus reconnus : chaque employé saisit son code une fois par navigateur.
  5. Le délai de grâce des profils déjà obligatoires repart au jour de la mise à jour.
  6. Si la vérification de licence de la version 1.0.0 avait désactivé le module, la mise à jour le réactive.
  7. Ouvrez la configuration, vérifiez les profils obligatoires et les durées, puis contrôlez votre propre connexion.

Configuration

Accès : Modules > Gestionnaire de modules > Configurer. Les boutons Mon authentification à deux facteurs et Ouvrir le tableau de bord figurent dans le même panneau.

Réglages

  • Activer l’authentification à deux facteurs : désactivée, personne n’a de code à saisir ; les inscriptions sont conservées
  • Obligatoire pour ces profils : profils pour lesquels la 2FA est obligatoire
  • Délai de grâce : 0 à 365 jours (7 par défaut), compté à partir du jour où le profil devient obligatoire
  • Se souvenir d’un appareil pendant : 0 à 365 jours (30 par défaut) ; 0 désactive les appareils de confiance
  • Cocher « se souvenir de cet appareil » par défaut : présélectionne la case sur la page du code
  • Lier un appareil de confiance à son adresse IP : contrôle plus strict, le code est redemandé à chaque changement d’adresse
  • Redemander le code après : 1 à 168 heures (12 par défaut), durée de la session vérifiée
  • Codes erronés avant blocage : 1 à 20 (5 par défaut)
  • Durée du blocage : 1 à 1440 minutes (15 par défaut)
  • Nom affiché dans l’application d’authentification : le nom de la boutique par défaut
  • Conserver le journal pendant : 7 à 3650 jours (90 par défaut) ; les événements plus anciens sont supprimés automatiquement

Licence

Activez votre licence dans la configuration du module. Sans licence active, la 2FA reste appliquée, mais les réglages et le tableau de bord sont verrouillés derrière le formulaire de licence ; une bannière invite à renouveler la licence. Activer ou renouveler la licence rouvre les réglages.


Activer sa 2FA (employé)

  1. Ouvrez Mon authentification à deux facteurs dans le menu de votre profil (en haut à droite du back-office), puis cliquez sur Configurer.
  2. Installez une application d’authentification sur votre téléphone si ce n’est pas déjà fait.
  3. Scannez le QR code avec l’application. Sur le téléphone lui-même, utilisez Ouvrir dans l’application sur ce téléphone ; sinon, saisissez la clé affichée sous le QR code.
  4. Saisissez le code affiché par l’application pour confirmer, puis cliquez sur Activer l’authentification à deux facteurs.
  5. Conservez vos 10 codes de secours (copier, télécharger ou imprimer), puis cliquez sur J’ai enregistré mes codes de secours. Ils ne seront plus affichés.

Pendant le délai de grâce d’un profil obligatoire, un bandeau propose de configurer la 2FA ; ensuite, la page de configuration s’ouvre d’office. Une erreur de saisie ne change pas le QR code.

Page de configuration : installer une application d’authentification, scanner le QR code (ou saisir la clé), puis saisir le code affiché par l’applicationConfiguration en trois étapes

À chaque connexion

Après le mot de passe, saisissez le code à 6 chiffres ; il est envoyé dès le sixième chiffre. Cochez Se souvenir de cet appareil pour ne plus le saisir sur ce navigateur pendant 30 jours. Avec un code de secours, cliquez sur Utiliser un code de secours.

Page « Vérifiez votre identité » : champ du code à 6 chiffres, case « Se souvenir de cet appareil pendant 30 jours » cochée et lien vers les codes de secoursPage de code après le mot de passe

Gérer sa 2FA

La page Mon authentification à deux facteurs permet de :

  • Changer de téléphone : un code de l’application actuelle (ou un code de secours) est demandé, puis la configuration recommence
  • Créer de nouveaux codes de secours : un code est demandé et les anciens codes sont annulés ; une alerte apparaît quand il en reste peu
  • Retirer un appareil de confiance ou tous les appareils
  • Désactiver l’authentification à deux facteurs, sauf si votre profil est obligatoire
Page « Mon authentification à deux facteurs » : statut activé, 10 codes de secours non utilisés et liste des appareils de confiance (Chrome / macOS, Safari / iOS) avec leur date de validitéMa 2FA : codes de secours et appareils de confiance

Gérer l’équipe (tableau de bord)

Accès : Modules > Gestionnaire de modules > Configurer, bouton Ouvrir le tableau de bord (super-administrateurs uniquement).

  • Les quatre compteurs donnent le nombre d’employés, d’employés protégés, de configurations obligatoires non faites et de comptes bloqués.
  • L’onglet Employés indique pour chacun : profil, statut (Protégé, Obligatoire avant le …, Obligatoire, à configurer maintenant ou Désactivée), codes de secours restants, appareils et dernier code saisi.
  • Réinitialiser supprime la 2FA d’un employé qui a perdu son téléphone ; il la configurera de nouveau à sa prochaine connexion. Débloquer lui permet de réessayer tout de suite.
  • Chaque action demande votre code actuel (ou un code de secours) dans un panneau de confirmation, et s’inscrit au journal.
  • L’onglet Journal liste les événements, avec un filtre par employé.

Retour d’urgence

Du plus simple au plus radical :

  1. Code de secours : l’employé saisit l’un de ses 10 codes sur la page de code.
  2. Réinitialisation par un autre super-administrateur depuis le tableau de bord.
  3. Commande console, depuis le dossier de la boutique :
    • php bin/console wepresta:2fa:disable --employee=ID_OU_EMAIL supprime la 2FA d’un employé
    • php bin/console wepresta:2fa:disable --all désactive la protection pour toute la boutique
    • l’option --dry-run simule sans rien modifier
  4. Fichier DISABLE_2FA : créez un fichier vide de ce nom dans modules/wepresta_admin_2fa/. Personne n’a de code à saisir tant qu’il existe ; un bandeau rouge le rappelle aux super-administrateurs. Supprimez-le pour rétablir la protection.

Pour lancer la purge du journal et des appareils expirés à la demande : php bin/console wepresta:2fa:purge.


Cas d’usage courants

Protéger les comptes critiques en une semaine

Choisissez le profil SuperAdmin (et ceux qui accèdent aux paiements ou aux exports) dans Obligatoire pour ces profils, laissez le délai de grâce de 7 jours, puis suivez l’adoption dans le tableau de bord.

Un poste de travail fixe

L’appareil de confiance de 30 jours limite la saisie à un code par mois et par navigateur, sans lien avec l’adresse IP.

Un poste partagé ou une connexion sensible

Réglez la durée des appareils de confiance à 0 : la case « Se souvenir de cet appareil » disparaît et le code est redemandé après la durée de la session vérifiée (12 heures par défaut, réductible). Vous pouvez aussi lier les appareils à l’adresse IP pour un contrôle plus strict.

Un téléphone perdu

L’employé utilise un code de secours, ou un super-administrateur clique sur Réinitialiser dans le tableau de bord.


FAQ

À quoi sert l’authentification à deux facteurs (2FA) dans le back-office ?

La 2FA ajoute une seconde vérification à la connexion à l’administration. Même si un mot de passe est volé (phishing, fuite de données, mot de passe réutilisé), le back-office reste fermé sans le code temporaire généré sur le téléphone de l’employé. C’est une protection directe contre la prise de contrôle d’une boutique : modification des prix, détournement de commandes, création de comptes administrateur ou export des données clients.

Quel type de 2FA est utilisé (SMS, e-mail, application) ?

Le module utilise la norme TOTP (Time-based One-Time Password, RFC 6238) : un code à 6 chiffres qui change toutes les 30 secondes, généré par une application d’authentification. Aucun SMS (coûts, délivrabilité) ni e-mail (boîte compromise) n’est nécessaire, et le code se génère sans connexion réseau. Un téléphone dont l’horloge est décalée d’une période de 30 secondes reste accepté ; un même code ne fonctionne qu’une seule fois.

Quelles applications sont compatibles (Google Authenticator, Authy, Microsoft…) ?

Toutes les applications TOTP : Google Authenticator, Microsoft Authenticator, Authy, 1Password, Bitwarden et leurs équivalents. Chaque employé utilise l’application de son choix, sans outil propriétaire imposé. Le QR code se scanne avec l’application ; sur un téléphone, le bouton « Ouvrir dans l’application » ou la saisie de la clé de configuration évitent le scan.

Peut-on forcer la 2FA uniquement pour certains profils (ex. SuperAdmin) ?

Oui. Dans la configuration, vous choisissez les profils pour lesquels la 2FA est obligatoire, par exemple SuperAdmin et les profils qui accèdent aux paiements, aux modules ou aux exports. Les autres employés peuvent l’activer eux-mêmes depuis « Mon authentification à deux facteurs ». Un délai de grâce (7 jours par défaut) laisse le temps de s’équiper : il court à partir du jour où le profil devient obligatoire, et un bandeau indique les jours restants.

Comment éviter de ralentir l’équipe avec un code à chaque connexion ?

Deux mécanismes se cumulent. L’appareil de confiance mémorise un navigateur pendant 30 jours (réglable), quelle que soit l’adresse IP : l’employé saisit un code par mois et par navigateur, avec la case « Se souvenir de cet appareil » cochée par défaut. Sur un navigateur non mémorisé, la vérification reste valable 12 heures (réglable de 1 à 168 heures) : un seul code par journée de travail. La déconnexion ou le retrait de l’appareil depuis « Mon authentification à deux facteurs » redemande le code. Vous pouvez aussi lier un appareil à son adresse IP pour un contrôle plus strict.

Que se passe-t-il si un collaborateur perd son téléphone ?

Il se connecte avec l’un de ses 10 codes de secours (à usage unique), puis configure sa nouvelle application avec « Changer de téléphone ». S’il n’a plus de code, un super-administrateur ouvre le tableau de bord, clique sur « Réinitialiser » sur sa ligne et confirme avec son propre code : la 2FA de l’employé est supprimée et il la configure de nouveau à sa prochaine connexion. Chaque réinitialisation est inscrite au journal.

Quelles méthodes de récupération d’urgence sont disponibles ?

Quatre voies, de la plus simple à la plus radicale : le code de secours de l’employé ; la réinitialisation par un autre super-administrateur ; la commande console wepresta:2fa:disable (option --employee avec l’identifiant ou l’e-mail de l’employé, ou --all pour toute la boutique, et --dry-run pour simuler) ; le fichier vide DISABLE_2FA déposé dans le dossier du module, qui suspend la demande de code pour tout le monde tant qu’il existe. Un bandeau rouge rappelle sa présence aux super-administrateurs.

Le module protège-t-il contre les attaques par force brute ?

Il verrouille la seconde étape : après 5 codes erronés (réglable de 1 à 20), l’employé est bloqué 15 minutes (réglable de 1 à 1440 minutes). Le blocage est enregistré en base : se reconnecter avec le mot de passe ne remet pas le compteur à zéro. Un code n’est accepté qu’une seule fois. Le module ne limite pas les essais de mot de passe.

Y a-t-il un historique des connexions et des événements de sécurité ?

Oui. Le journal du tableau de bord, réservé aux super-administrateurs, liste avec la date, l’employé, l’adresse IP et le détail : les codes acceptés ou erronés, les codes de secours utilisés, les blocages et déblocages, les changements de téléphone, les nouveaux codes de secours, les appareils ajoutés ou retirés, les réinitialisations et les désactivations. Il se filtre par employé et ne contient jamais de code ni de secret. Les lignes de plus de 90 jours (réglable de 7 à 3650 jours) sont supprimées automatiquement.

Le contrôle protège-t-il aussi les formulaires et les appels AJAX du back-office ?

Oui. Le code est vérifié avant que le back-office n’exécute quoi que ce soit : pages, formulaires (POST), appels AJAX et JSON, pages sans menu. Avec le seul mot de passe, une page est redirigée vers la page de code et un appel AJAX reçoit une réponse 401 sans donnée. Limite connue sur PrestaShop 1.7 : les anciens scripts autonomes backup.php, pdf.php et get-file-admin.php répondent à un employé connecté sans passer par le cœur de PrestaShop ; la page de configuration le signale et invite à les supprimer.

Que devient la 2FA si la licence expire ?

Elle reste appliquée. La licence ne désactive jamais la protection : à l’expiration (fin d’essai, échéance, licence suspendue ou erreur du serveur de licence), seuls les réglages et le tableau de bord sont verrouillés derrière le formulaire de licence, avec un bandeau. Les employés continuent de se connecter avec leur code. Activer ou renouveler la licence rouvre les réglages.

Quelles versions de PrestaShop et de PHP sont prises en charge, et comment mettre à jour depuis la version 1.0.0 ?

Le module fonctionne avec PrestaShop 1.7.8, 8.2+ et 9.1+, et PHP 7.4 minimum, avec une seule archive ; PrestaShop 1.7.7, 8.0, 8.1 et 9.0 ne sont pas pris en charge. Pour mettre à jour, téléversez l’archive 2.0.0 dans le gestionnaire de modules : les inscriptions, les codes de secours et le journal sont conservés. Les appareils de confiance de la version 1.0.0 ne sont plus reconnus : chaque employé saisit son code une fois par navigateur.

La désinstallation supprime-t-elle les données ?

Oui. Désinstaller le module arrête la protection et supprime les inscriptions, les appareils de confiance, le journal et les réglages du module ; PrestaShop demande une confirmation avant de le faire. Une fois le module désinstallé, le back-office redevient protégé par le seul mot de passe.

Peut-on désactiver la 2FA pour toute la boutique ?

Oui, temporairement. L’interrupteur « Activer l’authentification à deux facteurs » de la configuration suspend la demande de code pour tout le monde sans supprimer les inscriptions ; réactivez-le pour rétablir la protection. Pour un seul employé, utilisez « Réinitialiser » dans le tableau de bord ou, si son profil n’est pas obligatoire, « Désactiver l’authentification à deux facteurs » depuis sa page.

Le module modifie-t-il le thème ou l’affichage de la boutique ?

Non. Le module n’agit que dans le back-office : il n’ajoute rien à ce que voient vos clients, ne remplace aucun fichier de PrestaShop (aucun override) et fonctionne donc avec tous les thèmes.

Les données de la 2FA sont-elles protégées ?

Oui. Les secrets TOTP sont enregistrés dans un format chiffré et authentifié, les codes de secours et les jetons des appareils de confiance sous forme d’empreintes, et le journal ne contient jamais de code ni de secret. Les clés dérivent de la clé de chiffrement de PrestaShop, qui n’est pas dans la base de données : un export de la base seul ne permet donc pas de générer un code valide.

Un appareil de confiance est-il sûr ?

Il repose sur un cookie propre à l’employé et au navigateur (HttpOnly, SameSite=Lax) dont la base ne garde qu’une empreinte. Il expire à la date choisie (30 jours par défaut), l’employé peut le retirer à tout moment depuis « Mon authentification à deux facteurs », et vous pouvez le lier à l’adresse IP pour un contrôle plus strict. Sur un poste partagé, désactivez les appareils de confiance (durée 0).


Dépannage

Le code n’est jamais accepté

  • Vérifiez que l’heure du téléphone est réglée automatiquement : un décalage de plus de 30 secondes fait échouer le code
  • Attendez le code suivant si le code affiché vient d’être utilisé : un code n’est accepté qu’une seule fois
  • Après 5 codes erronés, le compte est bloqué 15 minutes par défaut : le message indique le temps restant, ou un super-administrateur clique sur Débloquer

Je n’arrive plus à ouvrir le back-office

  • Utilisez un code de secours, ou demandez une réinitialisation à un super-administrateur
  • Sinon, appliquez le retour d’urgence : commande wepresta:2fa:disable ou fichier DISABLE_2FA

Le code est redemandé trop souvent

  • Les appareils de confiance sont-ils actifs (durée supérieure à 0) et la case « Se souvenir de cet appareil » cochée ?
  • Le navigateur supprime-t-il ses cookies à la fermeture, ou l’employé utilise-t-il la navigation privée ?
  • La liaison à l’adresse IP est-elle activée ? Le code est alors redemandé à chaque changement d’adresse
  • L’appareil a-t-il été retiré depuis « Mon authentification à deux facteurs » ?

Le lien « Mon authentification à deux facteurs » n’apparaît pas

  • Videz le cache : Paramètres avancés > Performances > Vider le cache
  • Le lien se trouve dans le menu du profil, en haut à droite, près de « Déconnexion »
  • Vérifiez que le module est installé et activé

Après une installation en ligne de commande, le contrôle ne semble pas appliqué

  • Videz le cache de PrestaShop : le module le reconstruit aussi de lui-même dès qu’il constate le problème (au plus une fois toutes les 10 minutes)

La page de configuration signale des scripts à supprimer

  • Sur PrestaShop 1.7, les anciens scripts backup.php, pdf.php et get-file-admin.php répondent à un employé connecté sans passer par le cœur de PrestaShop, donc sans le contrôle du module. Supprimez-les s’ils existent à la racine de votre boutique.

Un employé ne peut plus valider son code après une migration de boutique

  • Si la clé de chiffrement de PrestaShop (_COOKIE_KEY_) a changé, les secrets enregistrés ne sont plus lisibles : le journal indique « Secret illisible ». Réinitialisez l’employé depuis le tableau de bord ou avec la commande console, puis il configure de nouveau sa 2FA.

Changelog

Version 2.0.0

Nouveautés

  • Le module fonctionne sur PrestaShop 1.7.8, 8.2+ et 9.1+, avec PHP 7.4 minimum, dans une seule archive.
  • Chaque employé dispose de la page « Mon authentification à deux facteurs » : activer la 2FA, changer de téléphone, créer de nouveaux codes de secours, gérer ses appareils de confiance et, hors profil obligatoire, la désactiver.
  • Le tableau de bord des super-administrateurs liste les employés (statut, échéance, codes de secours restants, appareils, dernier code saisi) et affiche le journal de sécurité, filtrable par employé.
  • Un super-administrateur réinitialise ou débloque un collègue depuis le tableau de bord, en confirmant avec son propre code.
  • Un appareil de confiance est mémorisé 30 jours par navigateur, quelle que soit l’adresse IP ; la liaison à l’adresse IP devient une option.
  • La vérification reste valable 12 heures (réglable de 1 à 168 heures) et prend fin à la déconnexion.
  • Le délai de grâce d’un profil obligatoire court à partir du jour où il le devient, avec un bandeau qui indique le nombre de jours restants.
  • La configuration se fait en deux minutes : le QR code est conservé après une erreur, la clé de configuration est lisible et un bouton ouvre l’application sur téléphone.
  • Le journal et les appareils expirés sont purgés automatiquement une fois par jour ; la commande console wepresta:2fa:purge lance la purge à la demande.

Améliorations

  • Le code est exigé avant toute action du back-office : pages, formulaires, appels AJAX et JSON.
  • Changer de téléphone ou créer de nouveaux codes de secours demande un code valide.
  • Un code n’est accepté qu’une seule fois et l’horloge du téléphone peut être décalée d’une période de 30 secondes.
  • Les secrets sont enregistrés dans un format chiffré et authentifié ; ceux de la version 1.0.0 restent lisibles.
  • La page de code est autonome, sans menu ni lien du back-office, et se valide dès le sixième chiffre.
  • La licence ne désactive plus jamais la 2FA : à l’expiration, seuls les réglages et le tableau de bord sont verrouillés, avec un bandeau.
  • Les appareils de confiance affichent le navigateur et le système, par exemple « Chrome / macOS ».
  • Le nombre de codes de secours restants est indiqué, avec une alerte quand il en reste peu.
  • Tous les profils, y compris ceux créés plus tard, accèdent à la page de code et à « Mon authentification à deux facteurs ».
  • L’interface est complète en français, anglais, espagnol, italien et polonais, y compris le formulaire de licence.
  • Le module n’utilise aucune bibliothèque PHP tierce ; l’archive pèse moins de 250 Ko.

Corrections

  • Avec le seul mot de passe, il n’est plus possible de remplacer le téléphone d’un employé ni d’afficher de nouveaux codes de secours.
  • Les formulaires, les appels AJAX et les pages sans menu ne s’exécutent plus sans code.
  • Une licence expirée, un essai terminé ou une erreur du serveur de licence ne coupent plus la protection.
  • Le blocage après des codes erronés n’est plus remis à zéro par une nouvelle connexion.
  • La tolérance d’horloge est d’une période de 30 secondes au lieu d’une seconde.
  • La commande console de secours wepresta:2fa:disable fonctionne, et la console de PrestaShop 9 ne s’arrête plus quand le module est actif.
  • Le tableau de bord est réservé aux super-administrateurs sur toutes les versions.
  • Le délai de grâce ne dépend plus de l’ancienneté du compte.
  • La purge automatique du journal et des appareils expirés s’exécute sur PrestaShop 9.

Après la mise à jour : vos inscriptions, vos codes de secours et le journal sont conservés. Les appareils de confiance de la version 1.0.0 ne sont plus reconnus : chaque employé saisit son code une fois par navigateur. Le délai de grâce des profils déjà obligatoires repart au jour de la mise à jour. Si la vérification de licence de la version 1.0.0 avait désactivé le module, la mise à jour le réactive.

Version 1.0.0

  • Version initiale
  • Authentification TOTP
  • Codes de secours
  • Appareils de confiance
  • Tableau de bord administrateur
  • Journal d’audit
  • Méthodes de récupération d’urgence

Support

Pour toute assistance, contactez-nous via votre espace client WePresta ou par email à mail@wepresta.shop, selon l’option de support de votre offre.

Avant contact, préparez :

  • version PrestaShop
  • version PHP
  • l’événement concerné dans le journal du tableau de bord
  • captures d’écran
  • logs PrestaShop si disponibles

Voir le module et les offres

Chargement...