2FA — Zwei-Faktor-Authentifizierung¶
Vesana nutzt E-Mail-basiertes 2FA: nach Login-Passwort kommt ein 8-stelliger Code per Mail an die hinterlegte Adresse.
Aktivieren¶
/profile → 2FA aktivieren:
- „2FA aktivieren" klicken
- Test-Code per Mail wird gesendet
- Code eingeben → 2FA aktiv
Bei aktivem 2FA: jeder Login fragt nach Passwort + Code. Code ist 10 Minuten gültig.
Codes¶
- 8-stellig (statt früher 6)
- SHA256-Hash in DB, Plaintext nie gespeichert
- Single-Use — wer den Code einmal nutzt, kann ihn nicht zweite Mal verwenden
Lockout¶
Bei 5 Fehlversuchen → 30-Minuten-Lockout (HTTP 429 mit Retry-After-Header).
Felder in users:
- two_fa_email_code_hash
- two_fa_attempts
- two_fa_lockout_until
(Migration 013)
Nach 30 Minuten ist der Lockout vorbei, Zähler bei 0.
Recovery¶
Recovery-Codes¶
Beim Aktivieren werden 10 Recovery-Codes generiert. Einmalig sichtbar, sofort herunterladen oder ausdrucken. Bei Verlust des E-Mail-Zugangs reichen 1 Recovery-Code zum Login.
Jeder Recovery-Code ist Single-Use. Wenn alle aufgebraucht: in /profile neue generieren (alte werden ungültig).
Admin-Override¶
Wenn ein User komplett ausgesperrt ist (kein E-Mail-Zugang, keine Recovery-Codes):
/admin/users → User → 2FA zurücksetzen
Nur Super-Admin oder Custom-Rolle mit user.reset_2fa. Audit-Eintrag wird geschrieben.
SSO-Alternative¶
Aktuell ist E-Mail-2FA der einzige Faktor neben Passwort. SSO-Features (OIDC, SAML, LDAP) wurden in v0.16.x entfernt — wenn du SSO brauchst, nutze einen Reverse-Proxy mit eigener Auth-Vorschaltung (siehe TLS / Reverse-Proxy).
Empfehlung¶
- Super-Admin: 2FA Pflicht
- Tenant-Admin: 2FA Pflicht
- Operator: 2FA empfohlen
- Viewer: 2FA optional
Pflicht-2FA pro Rolle aktivierbar in /admin/roles → Rolle → 2FA Pflicht = true.
Mobile-App + 2FA¶
Nach Eingabe von Passwort fordert die App den 2FA-Code an. Code kommt per Mail (gleicher Mechanismus wie Web).
Auf der App ist der 2FA-Schritt visuell aufgeräumt — größere Eingabefelder, Auto-Submit nach 8 Zeichen.
Anschluss¶
- Sicherheit → Härtung — empfohlene 2FA-Pflicht
- Audit-Log — fehlerhafte Logins sind dort sichtbar