HTTP > JWT-Anfrage stellen-Modul

Das Adobe Workfront Fusion HTTP > Erstellen einer JWT-Anfrage-Modul sendet eine HTTP(S)-Anfrage an eine URL und autorisiert sie mit einem JSON Web Token (JWT), das das Modul bei jedem Aufruf für Sie signiert. Die Antwort wird dann auf die gleiche Weise verarbeitet wie im standardmäßigen Modul HTTP > Anfrage erstellen.

Dieses Modul verhält sich wie das standardmäßige Modul Anfrage stellen mit einem Hauptunterschied: Es signiert automatisch ein JWT aus den von Ihnen angegebenen Ansprüchen und fügt es standardmäßig wie Authorization: Bearer <token> zur Anfrage hinzu.

Verwenden Sie dieses Modul, um jede API aufzurufen, die ein signiertes JWT für die Authentifizierung erwartet, z. B. Services, die ein kurzlebiges Bearer-Token erfordern, das mit einem gemeinsamen geheimen Schlüssel (Shared Secret, HMAC) oder einem privaten Schlüssel (RSA/ECDSA) signiert ist, ohne das Token in einem separaten Schritt zu erstellen.

Wenn die API OAuth 2.0, Standardauthentifizierung, einen API-Schlüssel oder ein Client-Zertifikat verwendet, verwenden Sie stattdessen das entsprechende dedizierte HTTP-Modul.

NOTE
Wenn Sie eine Verbindung zu einem Adobe-Produkt herstellen, das derzeit über keinen dedizierten Connector verfügt, empfehlen wir die Verwendung des Adobe Authenticator-Moduls.
Weitere Informationen finden Sie unter Adobe Authenticator-Modul.

Zugriffsanforderungen

Erweitern, um die Zugriffsanforderungen für die in diesem Artikel beschriebene Funktionalität anzuzeigen.
table 0-row-2 1-row-2 2-row-2 3-row-2 layout-auto html-authored no-header
Adobe Workfront-Paket

Ein beliebiges Adobe Workfront Workflow- und Adobe Workfront Automation and Integration-Paket

Workfront Ultimate

Workfront Prime- und Select-Pakete bei zusätzlichem Kauf von Workfront Fusion.

Adobe Workfront-Lizenzen

Standard

Work oder höher

Adobe Workfront Fusion-Lizenz

Betriebsbasiert: Verfügbar für Organisationen mit betriebsbasierten Lizenzen

Connector-basiert (veraltet): Workfront Fusion for Work Automation and Integration

Produkt Wenn Ihre Organisation über ein Workfront Select- oder Prime-Paket ohne Workfront Automation and Integration verfügt, muss Ihre Organisation Adobe Workfront Fusion erwerben.

Weitere Details zu den Informationen in dieser Tabelle finden Sie unter Zugriffsanforderungen in der Dokumentation.

Informationen zu Adobe Workfront Fusion-Lizenzen finden Sie unter Adobe Workfront Fusion-Lizenzen.

Erstellen einer JWT-Verbindung

Das Modul erfordert eine JWT-Verbindung. Die Verbindung speichert das Signaturmaterial, sodass der geheime oder private Schlüssel nicht im Szenario angezeigt werden muss.

Erstellen einer JWT-Verbindung in Fusion

  1. Fügen Sie das Modul HTTP > JWT-Anfrage ​) zu Ihrem Szenario hinzu.

  2. Klicken Sie Hinzufügen neben dem Feld Verbindung.

  3. Konfigurieren Sie die Verbindungsfelder:

    table 0-row-2 1-row-2 2-row-2 layout-auto html-authored no-header
    Verbindungsname Geben Sie einen Namen für die Verbindung ein.
    Algorithmus

    Wählen Sie den Signaturalgorithmus für die Verbindung aus.

    • HS256
    • HS384
    • HS512
    • RS256
    • RS384
    • RS512
    • PS256
    • PS384
    • PS512
    • ES256
    • ES384
    • ES512
    Geheimnis

    Geben Sie den Signaturschlüssel ein.

    • Verwenden Sie für HS* Algorithmen die Zeichenfolge Gemeinsamer geheimer Schlüssel .
    • Verwenden Sie für RS*-, PS*- und ES*-Algorithmen den PEM-kodierten privaten Schlüssel.
  4. Klicken Sie Fortfahren, um die Verbindung herzustellen und zum Modul zurückzukehren.

IMPORTANT
Eine JWT-Verbindung signiert nur mit einem Algorithmus. Wenn für Ihr Szenario mehr als ein Signaturalgorithmus erforderlich ist, erstellen Sie für jeden Algorithmus eine separate Verbindung. Dies entspricht dem vorhandenen Verhalten der eigenständigen JWT-App.

HTTP > Erstellen einer JWT-Anfrage Modul und seine Felder

Wenn Sie das Modul HTTP > JWT-Anfrage ​) konfigurieren, zeigt Adobe Workfront Fusion die unten aufgeführten Felder in der gleichen Reihenfolge an, in der sie in der Modulbenutzeroberfläche angezeigt werden. Ein fett formatierter Titel in einem Modul kennzeichnet ein Pflichtfeld. Als erweitert markierte Felder werden ausgeblendet, es sei denn, Sie wählen Erweiterte Einstellungen anzeigen aus.

Verbindung
Wählen Sie eine vorhandene JWT-Verbindung aus oder erstellen Sie eine neue.
URL
Die Ziel-URL für die Anfrage.
Methode
HTTP-Methode wie GET, POST, PUT, PATCH oder DELETE.
Header
Benutzerdefinierte Anfragekopfzeilen im Schlüssel/Wert-Format.
Abfragezeichenfolge
Parameter der Abfragezeichenfolge im Schlüssel/Wert-Format.
Texttyp
Kodierung des Anfragetexts. Die Optionen umfassen Raw, application/x-www-form-urlencoded und multipart/form-data.
Parse response
Wenn diese Option aktiviert ist, analysiert Fusion den Antworttext anhand des Inhaltstyps der Antwort.
JWT-Payload (Ansprüche)
Schlüssel/Wert-Paare, die als Ansprüche in der JWT-Payload enthalten sind. Die reservierten Ansprüche exp, iat und nbf müssen ein NumericDate sein - eine Anzahl von Sekunden seit der Unix-Epoche. Anspruchswerte behalten ihren JSON-Typ bei, sodass Zahlen Zahlen Zahlen und Boolesche Werte bleiben.
Timeout (erweitert)
Angeben des Zeitlimits für Anfragen in Sekunden (1-300). Der Standardwert ist 40 Sekunden.
Wiederholungsanzahl (erweitert)
Geben Sie an, wie oft die Anfrage erneut versucht werden soll, wenn die Anfrage aufgrund eines wiederholbaren Fehlers fehlschlägt.
Zusätzliche Wiederholungsstatus-Codes (erweitert)
Geben Sie zusätzliche HTTP-Status-Codes an, die als wiederholbar behandelt werden sollen.
Cookies für andere HTTP-Module freigeben (erweitert)
Aktivieren Sie diese Option, um Cookies vom Server für alle HTTP-Module in Ihrem Szenario freizugeben.
Selbstsigniertes Zertifikat (erweitert)
Laden Sie Ihr Zertifikat hoch, wenn Sie TLS mit Ihrem selbstsignierten Zertifikat verwenden möchten.
lehnen Verbindungen ab, die nicht verifizierte (selbstsignierte) Zertifikate verwenden (erweitert)
Aktivieren Sie diese Option, um Verbindungen abzulehnen, die nicht verifizierte TLS-Zertifikate verwenden.
Weiterleitung folgen (erweitert)
Aktivieren Sie diese Option, um den URL-Umleitungen mit 3xx-Antworten zu folgen.
Serialisierung mehrerer derselben Abfragezeichenfolgen-Schlüssel als Arrays deaktivieren (erweitert)
Standardmäßig verarbeitet Workfront Fusion mehrere Werte für denselben URL-Abfragezeichenfolgen-Parameterschlüssel wie Arrays. Beispielsweise wird www.test.com?foo=bar&foo=baz in www.test.com?foo[0]=bar&foo[1]=baz konvertiert. Aktivieren Sie diese Option, um diese Funktion zu deaktivieren.
Komprimierten Inhalt anfordern (erweitert)
Aktivieren Sie diese Option, um eine komprimierte Version der Website anzufordern. Fügt eine Accept-Encoding-Kopfzeile hinzu, um komprimierten Inhalt anzufordern.
Use Mutual TLS (erweitert)
Aktivieren Sie diese Option, um gegenseitiges TLS in der HTTP-Anfrage zu verwenden.
Sign Options (Erweitert)

Klicken Sie für jede Vorzeichenoption, die Sie der Anfrage hinzufügen möchten, auf Element hinzufügen und geben Sie den Namen und Wert des Parameters ein.

Zusätzliche an den JWT-Signierer übergebene Optionen, z. B. expiresIn, issuer, audience, subject und keyid. Dauerwerte wie expiresIn werden von der jsonwebtoken-Bibliothek interpretiert. Eine einfache Zahl wird als Millisekunden behandelt. Verwenden Sie daher eine Einheitszeichenfolge wie "1h" oder "3600s", um explizit zu sein. Der Algorithmus wird aus der Verbindung übernommen und kann hier nicht überschrieben werden.

Header Name (erweitert)
Geben Sie den Namen des Anfrage-Headers ein, der das signierte JWT erhält, oder ordnen Sie ihn zu. Standard: Authorization. Der Kopfzeilenname darf keinen Punkt enthalten (.), da gepunktete Namen abgelehnt werden und nicht in Anfrageprotokollen maskiert werden können.
Token-Typ (erweitert)
Geben Sie das Authentifizierungsschema ein, das vor dem Token platziert wurde, z. B. Bearer, oder ordnen Sie es zu. Lassen Sie dieses Feld leer, um das rohe Token ohne Präfix zu senden.

So wird das Token erstellt

  1. Das Modul erfasst die Ansprüche im Feld JWT-Payload (Ansprüche.
  2. Reservierte Ansprüche wie exp, iat, und nbf werden in numerische Datumswerte konvertiert.
  3. Das Modul wendet die Signaturoptionen an und signiert das Token mit dem Algorithmus aus der Verbindung.
  4. Das signierte Token wird in der Anfrage-Kopfzeile platziert, die durch Kopfzeilenname) definiert ​.
  5. Wenn Token Type festgelegt ist, fügt das Modul das Präfix vor dem Token hinzu. Beispiel: Bearer eyJ….
  6. Die Anfrage wird gesendet und die Antwort wird auf die gleiche Weise verarbeitet wie das standardmäßige Modul HTTP > Anfrage erstellen.

Das signierte Token wird automatisch in Debug- und Fehlerprotokollen maskiert, sodass es nie offen gelegt wird.

Beispiel

Verbindung

  • Algorithmus: HS256
  • Geheim: my-shared-secret

Moduleinstellungen

  • URL: https://api.example.com/v1/orders

  • Methode: GET

  • JWT-Payload (Ansprüche):

    • sub = service-account-42
    • iss = make-integration
  • Unterschriftsoptionen:

    • expiresIn = 1h
  • Kopfzeilenname: Authorization

  • Token-Typ: Bearer

Ergebnis

Das -Modul sendet die Anfrage mit einer -Kopfzeile, die ähnlich sieht:

Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

Häufig gestellte Fragen/Gotchas

Warum ist mein Token so schnell abgelaufen?

Sie haben wahrscheinlich eine reine Zahl für expiresIn wie 3600 eingegeben. Die jsonwebtoken-Bibliothek interpretiert einfache Zahlen als Millisekunden. Verwenden Sie stattdessen eine Einheitenzeichenfolge wie "1h" oder "3600s".

Wann wird das Token erstellt?

Das Modul signiert jedes Mal ein neues JWT, wenn das Modul ausgeführt wird, nicht beim Erstellen der Verbindung. Die Verbindung speichert nur das Signaturmaterial und den Algorithmus, sodass Ansprüche wie iat und exp den Zeitpunkt des Moduldurchgangs widerspiegeln.

Wenn die Anfrage innerhalb derselben Modulausführung erneut versucht wird, verwendet Fusion für diese Wiederholungsversuche dasselbe signierte Token, anstatt für jeden Versuch ein neues Token zu signieren. Aus diesem Grund kann ein sehr kurzer expiresIn ablaufen, bevor ein erneuter Versuch stattfindet, was dazu führen kann, dass ein bereits abgelaufenes Token erneut gesendet wird. Um dies zu vermeiden, verwenden Sie eine klare Einheitenzeichenfolge wie "1h" oder "3600s" und vermeiden Sie zu kurze Token-Lebensdauern.

Kann ich den Algorithmus pro Anfrage ändern?

Nein. Der Algorithmus wird durch die -Verbindung festgelegt. Wenn Sie einen anderen Algorithmus benötigen, erstellen Sie eine andere JWT-Verbindung.

Kann ich das Token in einer benutzerdefinierten Kopfzeile senden?

Ja. Legen Sie ​ Feld “” auf einen benutzerdefinierten Namen fest, es darf jedoch keinen Punkt (.) enthalten.

Kann ich das Roh-Token ohne Bearer senden?

Ja. Lassen Sie Token-" leer.

Ist das Token in Protokollen sichtbar?

Nein. Das signierte Token wird automatisch in Debug- und Fehlerprotokollen maskiert.

NOTE
Technischer Hinweis: Beim Signieren wird die jsonwebtoken-Bibliothek verwendet und das Signierverhalten der eigenständigen JWT-App gespiegelt, sodass dieselben Eingaben dasselbe Token erzeugen wie die eigenständige JWT-App.
recommendation-more-help
workfront-fusion-help-workfront-fusion