Zum Hauptinhalt springen

JWT generieren

Aktuelle Konfiguration des Tasks JWT generieren im Workflow Designer

Der Task JWT generieren ermöglicht die Erstellung von JWT-Tokens, indem verschiedene Parameter für die Token-Generierung konfiguriert werden.

Definition von JWT

Ein JSON Web Token (JWT) ist ein offener Standard (RFC 7519), der eine kompakte und eigenständige Methode zur Übertragung von Informationen zwischen Parteien als JSON-Objekt definiert. Diese Informationen können überprüft und vertrauenswürdig sein, da sie digital signiert sind. JWTs können mithilfe eines Secrets (mit dem HMAC-Algorithmus) oder eines öffentlichen/privaten Schlüsselpaares mittels RSA oder ECDSA signiert werden.

Zweck des JWT

JWTs werden häufig für Authentifizierung und Autorisierung verwendet. Wenn ein Benutzer sich anmeldet, wird ein Token generiert, das zur Authentifizierung nachfolgender Anfragen verwendet werden kann, ohne dass die Benutzeranmeldedaten erneut gesendet werden müssen.

Konfiguration

1. Signierung

  • Algorithmus: Wählen Sie den zu verwendenden Signaturalgorithmus, z. B. RS256.
  • Private Key: Der private Schlüssel, der für die Signierung des Tokens erforderlich ist. Er kann manuell oder über einen Parameter eingegeben werden.

2. Headers

  • Abschnitt, in dem die für den Header erforderlichen Schlüssel-Wert-Paare hinzugefügt werden.

3. Claims

  • Abschnitt, in dem die Schlüssel-Wert-Paare für die erforderlichen Claims hinzugefügt werden.

Jedes Feld im Abschnitt Headers und Claims kann manuell oder über Workflow-Parameter und -Variablen. befüllt werden.

Diese Konfiguration ermöglicht die Festlegung der notwendigen Details zur Generierung eines JSON Web Tokens (JWT).

Symmetrische Algorithmen (HSxxx)

Die HS-Algorithmen (HMAC mit SHA) verwenden einen symmetrischen Schlüssel, d. h., derselbe Schlüssel dient sowohl zur Signierung als auch zur Verifizierung des Tokens.

  • HS256 (HMAC + SHA-256)
  • Verwendet den Hash-Algorithmus SHA-256 kombiniert mit HMAC.
  • Ausgewogenes Sicherheitsniveau: Heute als sehr sicher anzusehen, wenn der Schlüssel ausreichend lang und zufällig ist.
  • Häufig bei internen Anwendungen, bei denen Signierer und Verifizierer identisch sind.
  • HS384 (HMAC + SHA-384)
  • Variante mit SHA-384, erzeugt längere Signaturen.
  • Bietet eine höhere Kollisionsresistenz als SHA-256.
  • HS512 (HMAC + SHA-512)
  • Variante mit SHA-512, noch robuster und mit einem 512-Bit-Output.
  • Geeignet für Hochsicherheitsumgebungen oder wenn der Schlüssel weniger geschützt zirkulieren kann.

Hinweis: Da sie symmetrisch sind, müssen alle Teilnehmer denselben geheimen Schlüssel kennen. Dies kann ein Risiko darstellen, wenn mehrere Systeme das Token validieren müssen.

Asymmetrische Algorithmen (RSxxx)

Die RS-Algorithmen (RSA Signature mit SHA) verwenden einen asymmetrischen Schlüssel:

  • Ein privater Schlüssel signiert das Token.
  • Ein öffentlicher Schlüssel validiert das Token.

Dies ist nützlich, wenn die Token in Umgebungen verteilt werden sollen, in denen nur der Generator den privaten Schlüssel besitzen soll.

  • RS256 (RSA + SHA-256)
  • Der am weitesten verbreitete Algorithmus für JWT in Unternehmensumgebungen.
  • Sicher und mit guter Effizienz.
  • RS384 (RSA + SHA-384)
  • Variante, die SHA-384 für eine höhere kryptografische Widerstandsfähigkeit nutzt.
  • RS512 (RSA + SHA-512)
  • Die robusteste Variante mit SHA-512.
  • Bietet den höchsten Schutz vor Angriffen, geht aber mit einem höheren Rechenaufwand einher.

Hinweis: Da sie asymmetrisch sind, eignen sie sich besser für verteilte Szenarien: Der Server, der die Tokens ausgibt, behält den privaten Schlüssel, während Clients oder Microservices nur den öffentlichen Schlüssel zur Validierung erhalten.

Ausgabe-Parameter

Nach Abschluss der Ausführung stellt der Task die folgenden Ausgabe-Parameter zur Verfügung, die als Input in nachfolgende Workflows-Tasks verwendet werden können.

  • result: Dieser Parameter kann entweder eine Fehlermeldung oder das Ergebnis der Task-Ausführung (das generierte Token) zurückgeben. Dieser Wert kann als Input in nachfolgende Tasks verwendet werden (z. B. ">#nome_del_task.result<#").
  • resultJson: Stellt das Ergebnis der Task-Ausführung im JSON-Format dar und enthält allgemeine Informationen, Konfigurationen und Details zur Ausführung.