MagicAuth(M7h)
Anmelden

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:

Benutzer
Traefik + Docker
Webseite/WebApp
MagicAuth
Postfach
1

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 ansehen

Passwortlos 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 ansehen

Optional 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 ansehen

Gerä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 ansehen

Feingranulares 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 ansehen

Gruppen-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 ansehen

QR-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 ansehen

Traefik-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 ansehen

Authentifizierung

  • 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 ansehen

Vertraulichkeit

  • 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 ansehen

Integritä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 ansehen

Verfü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 ansehen

Verbindlichkeit

  • 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 ansehen

Pseudonymisierung

  • 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 ansehen

Datenschutz & 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.

Kontakt

Fragen zur Einbindung oder zum Projekt? Schreib uns:

m7h@wieland.org