HTTP > 發出JWT請求模組
Adobe Workfront Fusion HTTP > 發出JWT請求模組會傳送HTTP(S)請求給URL,並授權它使用JSON Web權杖(JWT),模組會在每次呼叫時為您簽署。 接著會以處理標準HTTP > 提出要求模組相同的方式處理回應。
此模組的行為類似標準提出要求模組,主要差異在於:它會自動從您提供的宣告簽署JWT,並將其新增至要求,預設為Authorization: Bearer <token>。
使用此模組來呼叫任何需要已簽署JWT以進行驗證的API,例如需要以共用機密(HMAC)或私密金鑰(RSA/ECDSA)簽署的短期持有人權杖的服務,而不需在單獨的步驟中建立該權杖。
如果API使用OAuth 2.0、基本驗證、API金鑰或使用者端憑證,請改用相符的專用HTTP模組。
存取權要求
| table 0-row-2 1-row-2 2-row-2 3-row-2 layout-auto html-authored no-header | |
|---|---|
| Adobe Workfront 封裝 |
任何 Adobe Workfront Workflow 封裝及任何 Adobe Workfront Automation and Integration 封裝 Workfront Ultimate Workfront Prime 和 Select 封裝,以及額外購買的 Workfront Fusion。 |
| Adobe Workfront 授權 |
標準 工作或更高層級 |
| Adobe Workfront Fusion 授權 |
作業型:適用於擁有作業型授權的組織 連接器型 (舊版):Workfront Fusion for Work Automation and Integration |
| 產品 | 如果您的組織擁有 Select 或 Prime Workfront 封裝,但不包括 Workfront Automation and Integration,則您的組織必須購買 Adobe Workfront Fusion。 |
若要詳細了解此表格中的資訊,請參閱🔗文件中的存取權要求。
關於 Adobe Workfront Fusion 授權的資訊,請參閱 Adobe Workfront Fusion 授權。
建立JWT連線
此模組需要JWT連線。 連線會儲存簽署資料,因此秘密或私密金鑰不必出現在情境中。
在Fusion中建立JWT連線
-
新增HTTP > 將JWT請求模組新增至您的情境。
-
按一下 連線 欄位旁的新增。
-
設定連線欄位:
table 0-row-2 1-row-2 2-row-2 layout-auto html-authored no-header 連線名稱 輸入此連線的名稱。 演演算法 選取連線的簽署演演算法。
HS256HS384HS512RS256RS384RS512PS256PS384PS512ES256ES384ES512
Secret 輸入簽署金鑰。
- 對於
HS*演演算法,請使用共用機密字串。 - 對於
RS*、PS*和ES*演演算法,請使用PEM編碼的私密金鑰。
-
按一下 繼續 以建立連線並返回模組。
HTTP > 發出JWT請求模組及其欄位
當您設定HTTP > 發出JWT請求模組時,Adobe Workfront Fusion會依照欄位在模組UI中的顯示順序,顯示下列欄位。 在模組中,粗體標題表示那是必要欄位。 除非您選取顯示進階設定,否則標示為進階的欄位會隱藏。
如何建置權杖
- 模組會收集JWT裝載(宣告)欄位中的宣告。
- 保留宣告,例如
費用,iat,和nbf會轉換為NumericDate值。 - 模組會套用簽署選項,並使用連線的演演算法簽署權杖。
- 簽署的權杖會放置在由標頭名稱定義的請求標頭中。
- 如果設定了Token Type,模組會在權杖前加上前置詞。 例如,
Bearer eyJ…. - 已傳送要求,且回應處理方式與標準HTTP > 提出要求模組相同。
簽署的權杖會在除錯和錯誤記錄中自動遮罩,因此永遠不會公開。
範例
連線
- 演演算法:
HS256 - 密碼:
my-shared-secret
模組設定
-
URL:
https://api.example.com/v1/orders -
方法:
GET -
JWT裝載(宣告):
sub=service-account-42iss=make-integration
-
簽署選項:
expiresIn=1h
-
標頭名稱:
Authorization -
權杖型別:
Bearer
結果
模組會傳送請求,其標頭類似於:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
常見問題集/疑問
為什麼我的Token過期這麼快?
您可能輸入了expiresIn的空數字,例如3600。 jsonwebtoken資料庫會將純數字解譯為毫秒。 請改用單位字串,例如"1h"或"3600s"。
代號何時建立?
模組會在每次模組執行時簽署全新JWT,而不是當您建立連線時。 連線只會儲存簽署材料和演演算法,因此宣告(例如iat和exp)會反映該模組執行的時間。
如果請求在同一模組執行中重試,Fusion會對這些重試嘗試重複使用相同的已簽署權杖,而不是為每次嘗試簽署新的權杖。 因此,非常短的expiresIn值可能會在重試發生之前過期,並導致重試以傳送已過期的Token。 若要避免此情況,請使用清除的單位字串,例如"1h"或"3600s",並避免權杖存留期過短。
我可以根據每個請求變更演演算法嗎?
否。 演演算法會由連線固定。 如果您需要不同的演演算法,請建立不同的JWT連線。
我可以在自訂標頭中傳送Token嗎?
是。 將標頭名稱欄位設定為自訂名稱,但它不能包含點(.)。
我可以傳送不含Bearer的原始權杖嗎?
是。 將Token型別保留空白。
記錄檔中是否顯示權杖?
否。 已簽署的權杖會在偵錯和錯誤記錄中自動遮罩。
jsonwebtoken程式庫並映象獨立JWT應用程式的簽署行為,因此相同的輸入會產生與獨立JWT應用程式相同的權杖。