MFA Modul (Multi-Factor Authentication)
Zweck
Das MFA Modul bietet Multi-Factor Authentication (MFA) mit TOTP (Authenticator-Apps) und SMS-Verifizierung für zusätzliche Sicherheit. Es unterstützt einfache Einrichtung, Backup-Codes und flexible Aktivierung pro Benutzer.
Verantwortlichkeiten
Was gehört zum Modul
- MFA-Aktivierung: MFA für Benutzer aktivieren/deaktivieren
- TOTP-Support: Authenticator-Apps (Google Authenticator, Authy, etc.)
- SMS-Verifizierung: SMS-basierte Verifizierung
- Backup-Codes: Backup-Codes für Notfälle
- MFA-Verifizierung: MFA bei Login erzwingen
Was gehört nicht zum Modul
- Authentifizierung: Siehe Core Auth
- Benutzer-Verwaltung: Siehe members Modul
Implementierung
Backend- und Frontend-API sind modular aufgebaut; Details siehe interne Entwickler-Dokumentation.
Konfiguration
Entitlement
Das Modul erfordert das Entitlement module.mfa. Dieses wird pro Tenant aktiviert/deaktiviert.
Entitlement-Key: module.mfa
Environment Variables
Keine modulspezifischen ENV-Variablen erforderlich.
Defaults
- MFA-Typ: TOTP (Standard)
- Backup-Codes: 10 Codes pro Benutzer
Abhängigkeiten
Optionale Abhängigkeiten
Keine.
Core-Abhängigkeiten
- auth: Für Authentifizierung
API-Endpoints
Authentifizierung
Alle Endpoints erfordern Authentifizierung. Zwei Methoden werden unterstützt:
- Firebase ID Token (Standard für Web-App)
- API-Token (für externe Nutzung)
Header: Authorization: Bearer <token>
MFA-Secret generieren
POST /api/mfa/generate
Generiert ein MFA-Secret für die Einrichtung.
Sicherheit: Secret, QR-Code und Backup-Codes sind hochsensibel. Sie werden nur einmal im Setup-Flow ausgegeben; niemals loggen; ausschließlich über TLS übertragen. Backup-Codes werden einmalig ausgegeben und müssen sicher aufbewahrt werden.
Response:
{
"secret": "<TOTP_SECRET>",
"qrCode": "data:image/png;base64,...",
"backupCodes": ["<BACKUP_CODE_1>", "<BACKUP_CODE_2>", ...]
}
MFA aktivieren
POST /api/mfa/enable
Aktiviert MFA für den aktuellen Benutzer.
Request Body:
MFA-Verifizierung
POST /api/mfa/verify
Verifiziert einen MFA-Token.
Wird dokumentiert: Detaillierte API-Endpunkt-Dokumentation folgt.
Speicherung
MFA-Daten (Secret, Backup-Codes) werden serverseitig verschlüsselt bzw. gehasht gespeichert; Zugriff nur über die authentifizierte API.
Fehlerfälle
HTTP-Status-Codes
- 200 OK: Erfolgreich
- 400 Bad Request: Validierungsfehler
- 401 Unauthorized: Nicht authentifiziert
- 403 Forbidden: Keine Berechtigung
- 500 Internal Server Error: Server-Fehler
Fehlercodes
Wird dokumentiert: Detaillierte Fehlercodes folgen.
FAQ / Troubleshooting
Wird dokumentiert: Häufige Fragen und Lösungen folgen.