Passwortlose Authentifizierung & Zugriffskontrolle für Traefik
MagicAuth schaltet sich als ForwardAuth-Middleware vor deine Dienste und regelt per Magic-Link, Code oder TOTP, wer sich anmelden darf — und per Rollen, worauf jeder zugreifen kann.
Was ist MagicAuth?
MagicAuth (M7h) ist eine schlanke Authentifizierungs- und Autorisierungs-Middleware für Traefik unter Docker. Statt Passwörtern nutzt sie Magic-Links bzw. kurze E-Mail-Codes und verwaltet über eine rollenbasierte Zugriffskontrolle (RBAC), welche Personen welche Dienste erreichen dürfen. Alles läuft wahlweise eingebettet über eine SQLite-Datenbank oder eine PostgreSQL — ohne externe Identity-Provider.
Funktionsweise
Jeder Aufruf eines geschützten Dienstes wird von Traefik an MagicAuth weitergereicht. MagicAuth prüft die Session und die Rollen und antwortet mit erlauben oder ablehnen.
Der Ablauf – Schritt für Schritt erklärt
So kommt ein Benutzer durch MagicAuth hindurch zur geschützten Webseite/WebApp:
Zugriff angefragt
Ein Benutzer ruft eine geschützte Webseite/WebApp auf.
Der gezeigte Ablauf nutzt den E-Mail-Code. Es gibt zwei weitere Varianten:
Nur TOTP
Statt der E-Mail liefert eine Authenticator-App den Code. Schritt 5 (Code per E-Mail) entfällt – der Code entsteht offline in der App.
2FA – zwei Faktoren
Erst der E-Mail-Code, danach zusätzlich der TOTP-Code aus der App – beide nacheinander abgefragt, für höhere Sicherheit.
Features, durch die sich MagicAuth von anderen Systemen abhebt
Passwortlos, ohne externen Identity-Provider und trotzdem feingranular steuerbar — MagicAuth bündelt Funktionen, die man sonst nur verstreut oder in schwergewichtigen Identity-Servern findet. Von der biometrischen Geräte-Anmeldung über zeitlich begrenzte Gruppen-Zugänge bis zur nativen Traefik-Integration. Und alles läuft auf deinem eigenen Server, ohne Cloud-Abhängigkeit.
Passwortlos anmelden
Login per Magic-Link oder 6-stelligem Code aus der E-Mail — keine Passwörter, keine Resets, keine Leaks.
Details ansehenPasswortlos anmelden
- Anmeldung per Klick auf den Magic-Link ODER durch Eingabe des 6-stelligen Codes aus derselben E-Mail.
- Link und Code sind kryptografisch zufällig, nur einmal verwendbar und kurz gültig.
- Ohne Passwörter gibt es nichts zu vergessen, zurückzusetzen oder zu leaken.
- Wahlweise zusätzlich mit Geräte-Login (Biometrie) oder TOTP absicherbar.
Optional 2FA / TOTP
Authenticator-App (RFC 6238) als Ersatz oder zweiter Faktor, inkl. Recovery-Codes und Admin-Reset.
Details ansehenOptional 2FA / TOTP
- Kompatibel mit gängigen Authenticator-Apps (z. B. Google/Microsoft Authenticator, Aegis) nach RFC 6238.
- Wahlweise als zweiter Faktor (echtes 2FA) oder als vollständiger Ersatz des Magic-Links.
- Zehn einmalig nutzbare Recovery-Codes für den Notfall; Zurücksetzen durch Admins möglich.
- Replay-Schutz: jeder Code ist nur einmal pro Zeitfenster gültig.
Geräte-Login mit Biometrie
Am fremden Rechner per QR anmelden und am eigenen Handy per FaceID / Fingerabdruck freigeben.
Details ansehenGeräte-Login mit Biometrie
- Der Login-Rechner zeigt einen QR-Code; die Freigabe erfolgt am registrierten Handy per FaceID oder Fingerabdruck.
- Kryptografie nach WebAuthn/Passkey — der private Schlüssel bleibt im Secure Enclave des Geräts.
- Keine Rohbiometrie am Server: übertragen wird nur eine kryptografische Bestätigung.
- Number-Matching und Kontextanzeige (Browser, Ort, Zeit) schützen vor Phishing; geklonte Geräte werden erkannt.
Feingranulares RBAC
Rollen bestimmen, wer welchen Dienst sehen darf. Zugriffe werden pro Dienst über Traefik ForwardAuth geprüft.
Details ansehenFeingranulares RBAC
- Rollen entscheiden, wer welchen Dienst erreichen darf.
- Die Prüfung erfolgt pro Dienst über Traefik ForwardAuth (Parameter ?service=).
- Die Identität wird als Remote-*-Header an den geschützten Dienst weitergegeben.
- Zentrale Verwaltung; Zugriffe lassen sich sofort entziehen.
Gruppen-Zugänge
Zeitlich begrenzte Sammel- oder Einzel-Zugänge für ganze Gruppen (z. B. Kurse oder Teams) — ohne echte Benutzerkonten.
Details ansehenGruppen-Zugänge
- Zeitlich begrenzte Sammel- oder Einzel-Zugänge für ganze Gruppen (z. B. Kurse oder Teams).
- Ohne echte Benutzerkonten: Pseudonyme statt Klarnamen, keine E-Mail-Adresse nötig.
- Ein eingelöster Zugang gilt für alle Dienste der Gruppe.
- Mit Ablaufdatum und jederzeit widerrufbar.
QR-Code & Druckkarten
Ein eingelöster QR-Code gilt für alle Dienste einer Gruppe. Ausschneidbare Karten zum Verteilen inklusive.
Details ansehenQR-Code & Druckkarten
- Ausdruckbare, ausschneidbare Karten mit QR-Code und Anmeldelink zum Verteilen an eine Gruppe.
- Der Klartext wird nur einmalig zur Ausgabe angezeigt; dauerhaft gespeichert werden nur Hashes.
- Ein Scan/Klick genügt zum Anmelden — ohne Tippen von Zugangsdaten.
Traefik-nativ
Als ForwardAuth-Middleware vor beliebige Dienste geschaltet — mit automatischer Service-Discovery.
Details ansehenTraefik-nativ
- Als ForwardAuth-Middleware vor beliebige Dienste hinter Traefik geschaltet.
- Kompatibel mit gängigen ForwardAuth-Setups (gleiche Remote-*-Header).
- Automatische Service-Erkennung aus der Traefik-Konfiguration.
- Läuft wahlweise mit SQLite oder PostgreSQL — ohne externen Identity-Provider.
Schutzziele von Anfang an
Security & Privacy by Design
Sicherheit und Datenschutz sind bei MagicAuth kein Nachgedanke, sondern Voreinstellung — by Design und by Default. Die folgenden Schutzziele sind von Anfang an in die Architektur eingebaut.
Authentifizierung
Passwortlos per Magic-Link, E-Mail-Code oder Authenticator-App — optional mit Biometrie am Handy.
Details ansehenAuthentifizierung
- Magic-Link und 6-stelliger E-Mail-Code: kryptografisch zufällig, einmal verwendbar, kurze Gültigkeit.
- TOTP (RFC 6238) als zweiter Faktor oder als Ersatz, inkl. einmalig nutzbarer Recovery-Codes.
- Geräte-Anmeldung mit Biometrie am Handy (WebAuthn/Passkey); der Schlüssel bleibt im Secure Enclave — keine Rohbiometrie am Server.
- Number-Matching und Kontextanzeige (Browser, Ort, Zeit) gegen Phishing und Weiterleitungs-Angriffe.
- Signaturzähler erkennt geklonte Geräte; für sensible Dienste ist eine Sitzungs-Frische erzwingbar.
Vertraulichkeit
Token nie im Klartext, Geheimnisse verschlüsselt, kein externer Identity-Provider.
Details ansehenVertraulichkeit
- Anmelde- und Sitzungs-Token werden nur als gepepperter SHA256-Hash gespeichert — nie im Klartext.
- Weitere Geheimnisse (z. B. TOTP- und Gruppen-Zugangs-Secrets) sind mit AES-256-GCM verschlüsselt.
- Session-Cookies sind HttpOnly und Secure; eine Cookie-Domain ermöglicht sicheres SSO über Subdomains.
- Kein externer Identity-Provider: es werden keine Identitätsdaten an Dritte weitergegeben — alle Daten bleiben auf deinem Server.
- Auch die Protokolle enthalten keine Geheimnisse oder Passwörter.
Integrität
Serverseitig geprüfte Sitzungen, konstantzeitige Vergleiche, Erkennung geklonter Geräte.
Details ansehenIntegrität
- Sitzungen sind opaque und werden serverseitig per Datenbank-Lookup geprüft — keine im Browser manipulierbaren Claims.
- Sicherheitsrelevante Vergleiche laufen konstantzeitig (Schutz vor Timing-Angriffen).
- Ein WebAuthn-Signaturzähler erkennt geklonte Authenticatoren.
- Rollen und Zugriffsregeln sind zentral gepflegt und nachvollziehbar; Sitzungen sind sofort widerrufbar.
Verfügbarkeit
Missbrauchsschutz ohne legitime Nutzer auszusperren — plus fehlertolerantes Hochfahren.
Details ansehenVerfügbarkeit
- Rate-Limiting bremst Missbrauch, ist aber NAT-tauglich: eine ganze Gruppe hinter einer gemeinsamen IP kommt durch (nur Fehlversuche werden gezählt).
- Abgelaufene Token, Sitzungen und Anfragen werden automatisch bereinigt.
- Fehlertolerantes Hochfahren: fehlt/verkehrt eine Einstellung, geht der Dienst in einen Wartungsmodus statt in einen Totalausfall.
- Inaktivitäts-Timeout und sofortiger, serverseitiger Sitzungs-Widerruf begrenzen Risiken.
Verbindlichkeit
Nachvollziehbares, zurechenbares Audit-Log sicherheitsrelevanter Ereignisse.
Details ansehenVerbindlichkeit
- Ein Audit-Log protokolliert sicherheitsrelevante Ereignisse: Anmeldungen, Freigaben, Fehlversuche und Rate-Limit-Sperren.
- Einträge sind einer handelnden Stelle zurechenbar — bleiben aber datensparsam (siehe Privatsphäre).
- Aufbewahrung mit fester Frist und automatischer Löschung.
Pseudonymisierung
Gruppenzugänge über Pseudonyme — Teilnehmende brauchen kein echtes Konto.
Details ansehenPseudonymisierung
- Gruppen-Einzelzugänge arbeiten mit Pseudonymen statt Klarnamen.
- Teilnehmende benötigen kein echtes Benutzerkonto — weder Name noch E-Mail-Adresse.
- Protokolle referenzieren Pseudonyme bzw. Zugangs-Codes, nicht die dahinterstehende reale Person.
- Zugangs-Geheimnisse werden nur einmalig zur Ausgabe angezeigt; dauerhaft gespeichert werden nur Hashes.
Datenschutz & Privatsphäre
DSGVO by Design & by Default: Datensparsamkeit, Speicherbegrenzung, kein unnötiger Datentransfer.
Details ansehenDatenschutz & Privatsphäre
- Grundsatz Datenschutz durch Technikgestaltung und datenschutzfreundliche Voreinstellungen (DSGVO Art. 25) — es wird nur das Nötige verarbeitet.
- Datenminimierung: IP-Adressen im Audit-Log sind standardmäßig anonymisiert (IPv4 auf /24, IPv6 auf /48 gekürzt).
- Speicherbegrenzung: Aufbewahrungsfristen mit automatischer Löschung; kurzlebige Daten laufen nach Minuten ab; keine Klartext-Geheimnisse.
- Kein unkontrollierter Drittland-Transfer: eine optionale Standort-Anzeige ist standardmäßig aus und hat keinen eingebauten externen Dienst — nur mit bewusst geprüftem Endpoint.
- Nichtverkettbarkeit: Schutz vor Konto-Enumeration (immer neutrale Antworten) und vor offenen Weiterleitungen.
- Transparenz & Anpassbarkeit: eigene Datenschutzerklärung und eigenes Erscheinungsbild je Mandant.
- Kontrolle/Intervenierbarkeit: zeitlich begrenzte, jederzeit widerrufbare Zugänge; Inaktivitäts-Timeout meldet verlassene Sitzungen automatisch ab.