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.
Zugriffsanforderungen
| 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
-
Fügen Sie das Modul HTTP > JWT-Anfrage ) zu Ihrem Szenario hinzu.
-
Klicken Sie Hinzufügen neben dem Feld Verbindung.
-
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.
HS256HS384HS512RS256RS384RS512PS256PS384PS512ES256ES384ES512
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*- undES*-Algorithmen den PEM-kodierten privaten Schlüssel.
-
Klicken Sie Fortfahren, um die Verbindung herzustellen und zum Modul zurückzukehren.
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.
So wird das Token erstellt
- Das Modul erfasst die Ansprüche im Feld JWT-Payload (Ansprüche.
- Reservierte Ansprüche wie
exp,iat, undnbfwerden in numerische Datumswerte konvertiert. - Das Modul wendet die Signaturoptionen an und signiert das Token mit dem Algorithmus aus der Verbindung.
- Das signierte Token wird in der Anfrage-Kopfzeile platziert, die durch Kopfzeilenname) definiert .
- Wenn Token Type festgelegt ist, fügt das Modul das Präfix vor dem Token hinzu. Beispiel:
Bearer eyJ…. - 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-42iss=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.
jsonwebtoken-Bibliothek verwendet und das Signierverhalten der eigenständigen JWT-App gespiegelt, sodass dieselben Eingaben dasselbe Token erzeugen wie die eigenständige JWT-App.