2FA Google Authenticator voor PrestaShop — Documentatie
Tweefactorauthenticatie (TOTP) installeren en configureren op de backoffice van PrestaShop 8 en 9: koppeling, herstelcodes, verplichte modus, bruteforcebeveiliging.
Deze handleiding behandelt de installatie, configuratie en het dagelijks gebruik van de module 2FA Google Authenticator voor PrestaShop 8 en 9. De module voegt na het invoeren van het wachtwoord een verificatie met een 6-cijferige code (TOTP-standaard, RFC 6238) toe aan de backoffice.
Vereisten
- PrestaShop 8.0 tot 8.2 of PrestaShop 9.x
- Minimaal PHP 7.4 (PHP 8.1+ vereist door PrestaShop 9)
- Een TOTP-app op de telefoon van elke medewerker: Google Authenticator, Microsoft Authenticator, Authy, 1Password, Bitwarden, FreeOTP of elke RFC 6238-compatibele app
- Serverklok gesynchroniseerd via NTP (standaard bij alle moderne hostingproviders)
Installatie
- Open in de backoffice Modules → Modulebeheer.
- Klik op Een module uploaden en selecteer het bestand
df2fa.zipdat u via uw DataFirefly-account hebt gedownload. - Klik op Installeren. De module maakt automatisch haar databasetabel aan en registreert haar controllers.
De installatie activeert 2FA voor niemand: elke medewerker moet zelf de koppeling uitvoeren (of ertoe verplicht worden via de verplichte modus, zie hieronder). U loopt geen risico om buitengesloten te raken uit de backoffice door de module te installeren.
Configuratie van de module
Open Modules → Modulebeheer → 2FA Google Authenticator → Configureren. De pagina bestaat uit drie blokken:
Mijn 2FA-account
Een statuspaneel bovenaan de pagina toont of uw eigen 2FA actief is, met een directe knop naar de koppeling of het beheer.
2FA-configuratie
- 2FA verplicht: in de verplichte modus wordt elke medewerker zonder geconfigureerde 2FA bij het inloggen automatisch doorgestuurd naar de koppelingspagina. In de opt-in-modus (standaard) verschijnt een herinneringsbanner in de backoffice en activeert elke medewerker zijn 2FA wanneer hij dat wil.
- Naam van de uitgever (Issuer): de naam die in de TOTP-app van uw medewerkers wordt getoond (standaard de naam van de winkel).
2FA-status van medewerkers
Een tabel toont alle medewerkers met hun 2FA-status (actief/inactief), de configuratiedatum en een knop Resetten voor elke medewerker met actieve 2FA.
Aanbevolen geleidelijke uitrol: begin in de opt-in-modus, laat de herinneringsbanner enkele dagen zijn werk doen, controleer de adoptie in de tabel en schakel daarna over naar de verplichte modus.
Koppeling aan de kant van de medewerker
- De medewerker opent de koppelingspagina: via de link Mijn 2FA configureren in het gebruikersmenu (rechtsboven in de backoffice), via de herinneringsbanner, of automatisch bij het inloggen als de verplichte modus actief is.
- Hij scant de getoonde QR-code met zijn TOTP-app. De QR-code wordt lokaal in de browser gegenereerd, er worden geen gegevens naar een externe dienst verstuurd. Als scannen niet mogelijk is, kan het geheim handmatig in de app worden ingevoerd (knop Kopiëren).
- Hij voert de 6-cijferige code uit de app in om de koppeling te bevestigen.
- De 8 herstelcodes voor eenmalig gebruik worden dan getoond: dit is de enige keer dat ze zichtbaar zijn. De medewerker kopieert of print ze en bewaart ze op een veilige plek.
De herstelcodes worden gehasht opgeslagen (SHA-256): ze kunnen later niet opnieuw worden getoond. Als ze verloren gaan, moet de 2FA worden uitgeschakeld en opnieuw geactiveerd, of moet een Super Admin een reset uitvoeren.
Inloggen met 2FA
Na het invoeren van het wachtwoord wordt de medewerker doorgestuurd naar het 2FA-verificatiescherm en voert hij de actuele 6-cijferige code uit zijn app in. De verificatie blijft 12 uur geldig voor de sessie: het is niet nodig om bij elke pagina een code in te voeren.
Er geldt een tolerantie van ±30 seconden om kleine klokverschillen tussen de server en de telefoon op te vangen.
Herstelcodes
Als de medewerker geen toegang meer heeft tot zijn TOTP-app (telefoon verloren, gestolen of gereset):
- Klik op het verificatiescherm op Een herstelcode gebruiken.
- Voer een van de 8 herstelcodes in (10 tekens).
- Elke code werkt slechts één keer. Schakel na het inloggen de 2FA uit en weer in om een nieuwe koppeling en een nieuwe reeks codes te genereren.
Bruteforcebeveiliging
Na 5 opeenvolgende ongeldige codes wordt de 2FA-verificatie van het account gedurende 15 minuten vergrendeld. Het verificatiescherm toont de resterende tijd. De teller wordt bij elke geslaagde verificatie op nul gezet.
Reset door een Super Admin
Als een medewerker zowel zijn telefoon als zijn herstelcodes is kwijtgeraakt:
- Een Super Admin opent de configuratiepagina van de module.
- In de tabel 2FA-status van medewerkers klikt hij op Resetten op de regel van de betreffende medewerker.
- De 2FA van de medewerker wordt verwijderd: hij kan inloggen met alleen zijn wachtwoord en moet de koppeling opnieuw uitvoeren (direct als de verplichte modus actief is).
Uw eigen 2FA uitschakelen
Klik vanuit Mijn 2FA beheren (gebruikersmenu of modulepaneel) op 2FA uitschakelen en bevestig met een geldige TOTP-code. Het invoeren van een code is vereist om te voorkomen dat een open gelaten sessie de 2FA kan uitschakelen.
Updaten vanaf versie 1.0.x
De update naar 1.1.0 verloopt automatisch en transparant:
- De tabelstructuur wordt gemigreerd (vergrendelingskolommen, verbreed geheimveld).
- Bestaande TOTP-geheimen blijven geldig en worden bij de eerstvolgende opslag automatisch versleuteld met AES-256. Geen nieuwe koppeling nodig.
- Bestaande herstelcodes blijven bruikbaar: ze worden bij het eerste gebruik omgezet naar een SHA-256-hash.
Migratie PS8 → PS9: de module is identiek op beide versies. U kunt uw winkel migreren zonder de module bij te werken of de medewerkers opnieuw te koppelen.
Probleemoplossing
“Ongeldige code” terwijl de code correct lijkt
In 95% van de gevallen gaat het om een klokverschil. Controleer of de serverklok via NTP is gesynchroniseerd (timedatectl onder Linux) en of de tijd op de telefoon op automatisch staat. De tolerantie van de module is ±30 seconden.
Account vergrendeld na mislukte pogingen
Wacht tot de vergrendeling van 15 minuten afloopt, of vraag een Super Admin om de 2FA van het account te resetten via de configuratiepagina.
Alle Super Admin-toegangen zijn geblokkeerd
Schakel als laatste redmiddel de module uit in de database: zet in de tabel ps_module de kolom active op 0 voor de regel df2fa, of hernoem tijdelijk de map modules/df2fa. Log opnieuw in, activeer de module weer en voer de nodige koppelingen opnieuw uit.
De herinneringsbanner wordt niet getoond
De banner verschijnt alleen voor medewerkers zonder actieve 2FA. In de opt-in-modus kan hij voor de huidige sessie worden verborgen via het sluitkruisje; hij verschijnt weer bij de volgende sessie.
Versiegeschiedenis
1.1.0 — 2 juli 2026
- Compatibiliteit met PrestaShop 9 (controllers, nieuwe Symfony-inlogpagina, Symfony 6.4)
- AES-256-versleuteling van het TOTP-geheim in de database, met automatische migratie
- Herstelcodes gehasht met SHA-256 (10 tekens)
- Vergrendeling van 15 minuten na 5 ongeldige codes
- QR-code 100% lokaal gegenereerd (CDN-afhankelijkheid verwijderd)
1.0.0 — 12 maart 2025
- Eerste stabiele versie: TOTP RFC 6238, verplichte of opt-in-modus, 8 herstelcodes, Super Admin-reset, multistore