2FA Auth Pilot
2FA Auth Pilot lægger et ekstra sikkerhedslag oven på dit WordPress-login ved at kræve endnu et verifikationstrin efter brugernavn og adgangskode. Pluginet implementerer den brancheaccepterede Time-based One-Time Password (TOTP)-algoritme (RFC 6238) og virker med enhver kompatibel authenticator-app, heriblandt Google Authenticator, Microsoft Authenticator, Authy, 1Password og Duo.
Selv hvis en adgangskode bliver stjålet, phishet eller genbrugt, kan en angriber ikke gennemføre et login uden engangskoden, der genereres på brugerens enhed. Administratorer kan kræve 2FA pr. rolle, fastsætte en frist, hvor brugere skal nå at tilmelde sig, og whiteliste betroede IP-intervaller, der skal være fritaget for det andet trin.

Højdepunkter
- TOTP-godkendelse kompatibel med enhver RFC 6238-authenticator-app (Google Authenticator, Microsoft Authenticator, Authy, 1Password, Duo, FreeOTP, …).
- OTP-fallback via mail, der sender en 6-cifret verifikationskode pr. mail, når authenticator-appen ikke er tilgængelig.
- Gendannelseskoder: 5 til 20 engangs-backupkoder genereret ved tilmelding til nødsituationer.
- Håndhævelse pr. rolle: hver WordPress-rolle kan sættes til Påkrævet, Valgfrit eller Deaktiveret.
- Frist på op til 90 dage for påkrævede roller, så eksisterende brugere ikke låses ude i samme øjeblik, 2FA aktiveres.
- IP-whitelisting med IPv4 og CIDR-notation, så 2FA kan springes over fra betroede netværk (kontor, VPN, monitorering).
- Hukommelse for betroede enheder: Husk denne enhed-valget kan undertrykke 2FA-prompts i op til 365 dage på en bestemt browser.
- API-beskyttelse: XML-RPC og WordPress REST API kan lægges bag 2FA-bevidste kontroller.
- QR-kodetilmelding med en manuel hemmelighed som fallback til miljøer, hvor QR-koden ikke kan scannes.
- Justerbart tidsvindue (1–4 intervaller) til at kompensere for ur-afvigelser mellem server og brugerens enhed.
- Ren afinstallation, der fjerner alle plugindata, når pluginet slettes.
Krav
- WordPress 6.0 eller nyere.
- PHP 7.4 eller nyere (PHP 8.x anbefales).
- Et præcist ur på serveren. TOTP afhænger af tidssynkronisering; ur-afvigelser på mere end 90 sekunder får gyldige koder til at blive afvist.
- En authenticator-app installeret på hver brugers smartphone, tablet eller password manager.
- Til OTP-fallback via mail kræves en fungerende mailudsendelse (det medfølgende Mail Pilot-plugin eller en hvilken som helst SMTP-integration er tilstrækkelig).
Installation
- Hent pluginets ZIP-arkiv.
- Åbn Plugins → Tilføj nyt → Upload plugin i WordPress-administrationen.
- Vælg ZIP-filen og klik på Installer nu.
- Klik på Aktiver plugin.
- Åbn Indstillinger → Tofaktor-godkendelse for at starte konfigurationen.
Efter aktivering er 2FA slået fra globalt som standard. Ingen bruger tvinges ind i det nye loginflow, før administratoren slår funktionen til og tildeler rollekrav. På den måde undgår du at låse nogen ude under den første udrulning.
Konfiguration
Alle indstillinger ligger under Indstillinger → Tofaktor-godkendelse og er fordelt på fire faner: Generelt, Roller, IP-whitelist og Avanceret.
Generelt
Fanen Generelt styrer, hvordan 2FA-udfordringen opfører sig, når den er aktiveret.

| Indstilling | Beskrivelse |
|---|---|
| Aktivér 2FA | Hovedafbryder. Når den er slukket, ligger pluginet i dvale, og ingen login-udfordring vises. |
| Virksomheds-/udsteder-navn | Mærkatet, der vises ved siden af posten i brugerens authenticator-app. Brug websitets eller organisationens navn. |
| Kodevindue | Antal 30-sekundersintervaller, der accepteres omkring det aktuelle tidspunkt. Tilladte værdier er 1–4. Et bredere vindue tolererer mere ur-drift, men er en anelse mindre strengt. Standardværdien 1 er som regel fin. |
| Antal gendannelseskoder | Hvor mange engangs-backupkoder, der udstedes ved tilmelding (5–20). Standard er 10. |
| Enhedshukommelse (dage) | Hvor længe Husk denne enhed-cookien er gyldig (0–365). Sæt til 0 for at slå hukommelse for betroede enheder helt fra. |
| OTP-fallback via mail | Når slået til, vises et Send kode pr. mail-link på udfordringsskærmen. Koden leveres til brugerens kontomail. |
| Frist (dage) | For roller markeret som Påkrævet: hvor mange dage brugerne har til at fuldføre tilmelding efter første login (0–90). I fristen vises et påmindelsesbanner. |
Hold fristen lang nok til brugere, der ikke logger ind hver dag. Syv til fjorten dage er et fornuftigt udgangspunkt for sites med medarbejdere.
Roller
Fanen Roller tildeler hver WordPress-rolle én af tre politikker:

- Påkrævet — 2FA skal konfigureres. Når fristen udløber, tvinges brugeren til at tilmelde sig ved næste login og kan ikke afvise prompten.
- Valgfrit — Brugere kan tilmelde sig fra deres profil, men bliver aldrig tvunget.
- Deaktiveret — 2FA-fanen er skjult på brugerprofilen, og loginflowet forbliver enkeltfaktor.
En typisk hærdet konfiguration ser sådan ud:
| Rolle | Anbefalet politik |
|---|---|
| Administrator | Påkrævet |
| Redaktør | Påkrævet |
| Shop manager / Forfatter | Påkrævet eller Valgfrit |
| Abonnent / Kunde | Valgfrit |
Sæt Administrator til Påkrævet først, og fuldfør din egen tilmelding, før du hæver kravet for andre roller. Hold altid mindst én administratorsession åben i en anden browser, mens du tester.
IP-whitelist
Fanen IP-whitelist tager én post pr. linje, enten som enkelt adresse eller i CIDR-form:
203.0.113.42
198.51.100.0/24
10.0.0.0/8
2001:db8::/32
Logins fra en whitelistet adresse springer 2FA-udfordringen over, men går stadig igennem det normale brugernavn- og adgangskodetjek. Dette er tænkt til betroede kontornetværk, jump hosts eller monitoreringsagenter.
Whitelist kun server-til-server-kilder. Whitelist ikke private eller mobil-netværk; deres adresser roterer og deles med tusinder af urelaterede brugere.
Avanceret

Avanceret-fanen styrer integration med WordPress’ request-flade og dataopbevaring:
- Beskyt XML-RPC — Når aktiveret, afvises kald til
xmlrpc.php, medmindre de indeholder en gyldig application password knyttet til en bruger, der har fuldført 2FA-tilmelding. Hvis du ikke bruger XML-RPC (det gør de fleste moderne sites ikke), kan du roligt lade beskyttelsen være tændt. - Beskyt REST API — Autentificerede REST-endpoints kontrollerer, at den kaldende bruger har opfyldt 2FA. Anonyme endpoints (såsom det offentlige indlægsfeed) er urørte. Du kan midlertidigt omgå beskyttelsen for én session ved at rydde option-værdien
tfa_protect_rest_api. - Slet alle data ved afinstallation — Når aktiveret, fjerner sletning af pluginet via Plugins → Installerede plugins også enhver indstilling, brugerhemmelighed, gendannelseskode og enhedspost. Lad denne stå slukket, hvis du planlægger blot at deaktivere midlertidigt.
Oversættelser

Oversættelser-fanen blotter hver besøgendevendt streng, pluginet udsender — login-udfordringens tekster, tilmeldingsinstrukserne, “for mange forsøg”-meddelelserne og gendannelsesflowet — og lader dig overstyre hver enkelt pr. aktivt sitesprog. Det er den anbefalede vej til tonejusteringer og brand-specifik ordlyd; de medfølgende .po-filer leverer fortsat udgangspunktet, når ingen overstyring er sat.
Brug
For administratorer
- Åbn Indstillinger → Tofaktor-godkendelse → Generelt og slå 2FA til globalt.
- Sæt Virksomheds-/udsteder-navn til dit sitenavn, så brugerne genkender posten i deres authenticator-app.
- Vælg en Frist, der giver eksisterende brugere god tid til at tilmelde sig — fjorten dage er et sikkert udgangspunkt.
- Skift til Roller-fanen og sæt Administrator til Påkrævet.
- Log ud og fuldfør din egen tilmelding fra brugerprofilen. Bekræft, at login-udfordringen vises, og at en gendannelseskode virker.
- Vend tilbage til Roller-fanen og aktivér gradvist håndhævelse for Redaktør, Shop Manager og andre privilegerede roller.
- Tilføj eventuelt betroede netværk på IP-whitelist-fanen.
- Meld udrulningen ud til teamet et par dage før, fristen udløber.
Nulstilling af en udelukket bruger
Hvis en bruger har mistet sin telefon og alle gendannelseskoder:
- Åbn Brugere → Alle brugere og rediger den berørte konto.
- Rul ned til afsnittet Tofaktor-godkendelse.
- Klik på Nulstil 2FA. Brugerens hemmelighed, gendannelseskoder og betroede enheder ryddes.
- Ved næste login behandles brugeren som ny tilmelding og går gennem QR-koden igen.
Kun administratorer kan nulstille 2FA for en anden bruger. Handlingen registreres i WordPress’ aktivitetslog, hvis et audit-plugin er installeret.
For slutbrugere (tilmelding, login, gendannelse)
Førstegangs-tilmelding
- Log ind på WordPress med brugernavn og adgangskode.
- Åbn Brugere → Profil (eller Hej → Rediger profil).
- Rul ned til kortet Tofaktor-godkendelse og klik på Aktivér tofaktor-godkendelse.
- Installer en authenticator-app på din telefon, hvis du ikke allerede har en. Anbefalede apps:
- Google Authenticator (iOS, Android)
- Microsoft Authenticator (iOS, Android)
- Authy (iOS, Android, desktop)
- 1Password eller Bitwarden (indbygget i password manageren)
- Åbn appen og vælg Tilføj konto → Scan QR-kode.
- Scan QR-koden, der vises på WordPress-profilsiden. Hvis scanningen fejler, så tryk på Indtast opsætningsnøgle og skriv hemmeligheden, der vises under QR-koden.
- Appen begynder at producere en ny 6-cifret kode hvert 30. sekund. Skriv den aktuelle kode i feltet Verificer kode og klik på Aktivér.
- WordPress viser dine gendannelseskoder. Hent eller udskriv dem, og gem dem et sikkert sted — et password manager-hvælv eller en forseglet kuvert. Hver kode virker én gang.
- Bekræft, at du har gemt gendannelseskoderne. Tilmeldingen er færdig.
Daglig login
- Indtast brugernavn og adgangskode som altid.
- På næste skærm åbner du din authenticator-app og aflæser den aktuelle 6-cifrede kode.
- Skriv koden i udfordringsfeltet og klik på Verificer.
- Valgfrit: sæt flueben i Husk denne enhed i 30 dage (grænsen afhænger af administratorens Enhedshukommelse-indstilling). Gør det kun på enheder, du selv kontrollerer.
- Du er logget ind.
Hvis du taster koden forkert, så skriv den igen — appen viser en ny kode hvert 30. sekund. Gentagne fejl udløser til sidst WordPress’ almindelige login-spærring.
Brug af en gendannelseskode
Når du ikke har din telefon med:
- Klik på Brug en gendannelseskode på 2FA-udfordringsskærmen.
- Skriv én af de koder, du gemte ved tilmelding. Bindestreger er valgfri.
- Når du er logget ind, åbn din profil og klik på Generér gendannelseskoder igen. Gendannelseskoder er engangs; den, du lige har brugt, er nu ugyldig.
OTP-fallback via mail
Hvis administratoren har slået OTP-fallback via mail til, ser du også Send kode pr. mail på udfordringsskærmen. Et klik leverer en engangskode til din kontomailadresse, som er gyldig i ti minutter. Den er tænkt som en nødløsning — den arver sikkerheden i din indbakke og er derfor ikke lige så stærk som en TOTP-kode.
Slå 2FA fra på din konto
Hvis din rolle er Valgfrit, åbn Brugere → Profil, rul ned til Tofaktor-godkendelse og klik på Deaktiver. Hvis din rolle er Påkrævet, er knappen skjult, og kun en administrator kan rydde din tilmelding.
FAQ
Hvilke authenticator-apps understøttes? Enhver app, der implementerer RFC 6238 TOTP med standardperioden på 30 sekunder og 6-cifrede koder. Det inkluderer Google Authenticator, Microsoft Authenticator, Authy, 1Password, Bitwarden, Duo, FreeOTP og de fleste hardware-tokens med TOTP-understøttelse.
Kan brugere flytte deres hemmelighed til en ny telefon? Ja. Apps som Authy og 1Password synkroniserer hemmeligheden automatisk på tværs af enheder. Med Google Authenticator kan brugeren eksportere konti fra den gamle telefon, eller en administrator kan, hvis det ikke længere er muligt, nulstille hemmeligheden og lade brugeren tilmelde sig igen.
Hvad sker der i fristen? Påkrævede brugere ser et påmindelsesbanner på enhver admin-side og en Opsæt 2FA-knap på profilen. Når fristen udløber, tvinger næste login tilmelding, før brugeren når dashboardet.
Kan gendannelseskoder genbruges? Nej. Hver gendannelseskode er engangs. Så snart én er brugt, er den ugyldig. Brugere kan generere det fulde sæt igen fra deres profil når som helst; en regenerering ugyldiggør det gamle sæt.
Kan jeg slå 2FA midlertidigt fra under en migrering? Ja. Åbn Indstillinger → Tofaktor-godkendelse → Generelt og slå hovedafbryderen fra. Brugerhemmeligheder og gendannelseskoder bevares i databasen, så genaktivering genopretter hver eksisterende tilmelding uden at tvinge brugerne til at tilmelde sig igen.
Virker pluginet med WP-CLI? WP-CLI omgår web-loginflowet og er ikke underlagt 2FA. Begræns i stedet WP-CLI-adgang på operativsystemniveau (SSH-nøgle, sudoers, jump host).
Bruger nogen overhovedet XML-RPC mere? De fleste moderne integrationer er flyttet til REST API eller application passwords. Hvis du ikke har brug for XML-RPC, så lad beskyttelsen være tændt eller slå endpointet helt fra på webserverniveau.
Spiller 2FA Auth Pilot sammen med andre 2FA-plugins? Nej. To 2FA-plugins kørende samtidig fører til dobbelte prompts og inkonsistent tilstand. Deaktiver ethvert andet 2FA-plugin, før du aktiverer 2FA Auth Pilot.
Understøtter det hardware-sikkerhedsnøgler (WebAuthn / FIDO2)? Den nuværende version fokuserer på TOTP og OTP via mail. Hardware-nøgler er på roadmappet.
Hvor opbevares hemmelighederne? Hver brugers TOTP-hemmelighed og hashes af gendannelseskoder ligger i WordPress’ user-meta-tabel i samme database som resten af sitet. Gendannelseskoder hashes; klarteksten vises kun én gang, når de genereres.
Fejlfinding
“Ugyldig kode”, selv om appen viser det rigtige tal.
Den hyppigste årsag er ur-drift. TOTP-koder er bundet til den aktuelle tid med 30-sekundersopløsning. Tjek, at serverens ur er synkroniseret (NTP / chrony), og at telefonens ur er sat til Automatisk. Som midlertidig workaround kan du øge Kodevindue i Generelt til 2 eller 3.
En bruger har mistet telefonen og alle gendannelseskoder. En administrator kan nulstille brugerens 2FA fra Brugere → Alle brugere → Rediger bruger → Nulstil 2FA. Brugeren gennemfører QR-flowet igen ved næste login. Hvis den udelukkede bruger er den eneste administrator, se næste punkt.
Eneste administrator er låst ude. Forbind til databasen (phpMyAdmin eller WP-CLI) og slet de relevante user-meta-rækker:
DELETE FROM wp_usermeta
WHERE user_id = <admin-id>
AND meta_key LIKE 'tfa\_auth\_pilot%';Administratoren kan derefter logge ind normalt og tilmelde sig igen.
QR-koden vises ikke. Tjek, at PHP har GD-udvidelsen aktiveret. Mangler GD, falder pluginet tilbage til en opsætningsnøgle i tekst — brugeren kan indtaste hemmeligheden manuelt i authenticator-appen.
OTP-mails kommer ikke frem. Send en test-mail fra dit transaktionsmail-plugin (for eksempel Mail Pilot → Test-mail). Hvis testen fejler, så ret den udgående mailopsætning først. Koder skrives også til WordPress’ aktivitetslog, når et audit-plugin er installeret.
REST API-integrationen returnerer pludselig 401. Aktivering af Beskyt REST API kræver, at autentificerede kald kommer fra en bruger, der har gennemført 2FA. Skift integrationen til at bruge application passwords udstedt af en bruger, hvis rolle har opfyldt 2FA.
Login er langsomt efter 2FA er aktiveret. En lille forsinkelse (under et sekund) er forventelig pga. OTP-mail og udfordringens rendering. Større forsinkelser peger som regel på en underliggende timeout fra mailserveren. Slå OTP-fallback via mail midlertidigt fra for at bekræfte.
Cookies til betroede enheder forsvinder med det samme. Enheder spores via en signeret cookie bundet til browseren. Private/inkognitovinduer, aggressive cookieoprydningsværktøjer og indholdsblokerere kan fjerne den. Læn dig mindre op ad Husk denne enhed i de miljøer.
For alt, der ikke står her, kontakt support med: WordPress-version, PHP-version, aktive plugins, den præcise fejlmeddelelse og en kort beskrivelse af de trin, der fører til den.