TOTP-Token-Validierung mit benutzerdefiniertem Python-Code - n8n-Workflow

Validieren Sie Time-based One-time Passwords (TOTP)-Geheimnisse direkt in Ihrem n8n-Workflow mithilfe von benutzerdefiniertem Python-Code. Integrieren Sie sichere 2FA-Logik mit dieser vielseitigen n8n-Vorlage.

Workflow-Vorschau

Bereit zur Automatisierung?

Laden Sie diese n8n-Workflow-Vorlage herunter und beginnen Sie sofort mit der Nutzung.

Zielgruppe


  • Sicherheitsingenieure: Zur Implementierung benutzerdefinierter Zwei-Faktor-Authentifizierungs-(2FA)-Mechanismen.

  • Backend-Entwickler: Zur Integration sicherer Authentifizierungsschritte direkt in Backend-API-Aufrufe mittels n8n.

  • Automatisierungsspezialisten: Anwender, die eine in sich geschlossene TOTP-Verifizierungslösung benötigen, ohne auf externe n8n-Credentials oder dedizierte Dienste angewiesen zu sein.

  • Jeder, der ein fortgeschrittenes Beispiel für die Verwendung des Code-n8n-Knotens für kryptografische Operationen sucht.

Überblick

Diese spezialisierte n8n-Vorlage bietet eine hochflexible Methode zur Überprüfung von Time-based One-time Passwords (TOTP)-Codes. Im Gegensatz zu Standardmethoden, die das Einrichten spezifischer n8n-Credentials erfordern könnten, nutzt dieser n8n-Workflow ein robustes, in sich geschlossenes Python-Skript, um den gesamten Verifizierungsprozess abzuwickeln – von der Base32-Dekodierung bis zur HMAC-SHA1-Generierung.

Der Hauptwert dieses n8n-Workflows liegt in seiner Unabhängigkeit. Er ermöglicht es Ihnen, das TOTP-Geheimnis des Benutzers dynamisch abzurufen (z. B. aus einer Datenbank) und den vom Benutzer eingegebenen Code sofort mit dem aktuellen Zeitintervall abzugleichen. Dies ist unerlässlich für die Erstellung benutzerdefinierter Anmelde- oder Verifizierungsabläufe für sichere Aktionen und bietet eine leistungsstarke Kernlogik zur Flusssteuerung innerhalb Ihrer gesamten n8n-Automatisierung.

Funktionsweise

Diese Automatisierung wird durch den n8n-Knoten 'Manual Trigger' gestartet, der typischerweise für Tests oder bei der Ausführung als Sub-Workflow verwendet wird.


  1. Start und Initialisierung (Beim Klicken auf ‚Test workflow‘): Der Ablauf beginnt. Dieser initiale n8n-Trigger wird oft durch einen Produktions-Webhook oder eine Datenbankabfrage ersetzt.

  2. Beispieldaten definieren (EXAMPLE FIELDS): Der n8n-Knoten mit der Bezeichnung 'EXAMPLE FIELDS' legt die beiden kritischen Eingaben fest: das totpsecretexample (der Base32-Schlüssel des Benutzers) und den codetoverify_example (der 6-stellige vom Benutzer bereitgestellte Code).

  3. Validierungslogik ausführen (TOTP VALIDATION): Das Herzstück des n8n-Workflows befindet sich in diesem Code-n8n-Knoten. Er führt ein umfassendes Python-Skript aus, das notwendige kryptografische Bibliotheken (hmac, hashlib) importiert. Das Skript dekodiert das Base32-Geheimnis, berechnet den aktuellen Zeitintervallzähler, generiert den erwarteten TOTP-Code mittels HMAC-SHA1 und vergleicht ihn mit dem eingegebenen Code. Es gibt den Status 1 (gültig) oder 0 (ungültig) zurück.

  4. Bedingte Weiterleitung (IF CODE IS VALID): Der Ablauf verwendet einen IF-n8n-Knoten, um den Statusausgang zu prüfen. Wenn der Status 1 ist, wird der n8n-Workflow über den 'true'-Zweig für eine erfolgreiche Authentifizierung fortgesetzt; bei 0 wird der 'false'-Zweig genutzt, was eine benutzerdefinierte Fehlerbehandlung oder Ablehnung der Anmeldedaten ermöglicht.

Installationsanleitung

Um diesen n8n-Workflow bereitzustellen, gehen Sie wie folgt vor:


  1. Import: Kopieren Sie die bereitgestellten JSON-Daten und fügen Sie sie direkt in Ihre n8n-Instanz ein über das Menü 'New' > 'Import from JSON'.

  2. Trigger-Einrichtung: Der initiale n8n-Trigger ist auf 'Manual Trigger' eingestellt. Für den Produktiveinsatz ersetzen Sie diesen durch den gewünschten Trigger (z. B. Webhook, API-Aufruf oder Datenbankabfrage).

  3. Daten-Eingabe anpassen: Suchen Sie den Code-n8n-Knoten 'TOTP VALIDATION'.

Überprüfen Sie die Zeilen 39 und 40 im Python-Code.
Aktuell beziehen sie sich auf die Ausgabe des Knotens 'EXAMPLE FIELDS' (input.item.json.totpsecret_example).
* Wichtiger Schritt: Ändern Sie diese Zeilen, um das Geheimnis und den Code aus Ihrer tatsächlichen Datenquelle abzurufen (z. B. wenn ein Webhook-Knoten vorangeht, könnten Sie auf $json.body.secret und $json.body.code verweisen).

  1. Testen: Verwenden Sie die Schaltfläche 'Test workflow', nachdem Sie die Beispieldaten festgelegt haben, um sicherzustellen, dass die benutzerdefinierte Python-Logik in Ihrer n8n-Umgebung korrekt funktioniert.

Node-Details

Beim Klicken auf ‚Test workflow‘ (Manual Trigger n8n-Knoten): Dient als Startpunkt für das Testen dieser n8n-Vorlage. In einem Live-System würde dieser n8n-Trigger durch einen Produktions-Trigger ersetzt.
EXAMPLE FIELDS (Set n8n-Knoten): Ein Hilfsknoten, der ausschließlich zum Testen verwendet wird. Er injiziert Beispieldaten (ein totpsecretexample und codetoverifyexample) in die n8n-Workflow-Struktur vor der Validierung.
TOTP VALIDATION (Code n8n-Knoten): Der funktionale Kern. Dieser n8n-Knoten enthält ein Python-Skript, das den RFC 6238-Standard für TOTP implementiert. Zu den wichtigsten Konfigurationen gehören die Einstellung der Sprache auf Python und die Definition der Funktion verifytotp zum Vergleich des berechneten Tokens mit dem eingegebenen Code.
IF CODE IS VALID (IF n8n-Knoten): Ein zentraler n8n-Knoten zur Steuerung des Logikflusses. Er prüft die Statusausgabe ($json.status) des vorhergehenden Code-n8n-Knotens. Ist der Status gleich 1, ist die Validierung erfolgreich, und der n8n-Workflow wird entsprechend weitergeleitet.

Ähnliche n8n-Workflows

Kostenlos

Knoten: 5 Knoten
Aktualisiert: Dezember 26 2025
Alle anzeigen
Erstellt von
Bazhard
Bazhard

Hervorgehoben*