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模組。

NOTE
如果您要連線至目前沒有專用聯結器的Adobe產品,建議您使用Adobe Authenticator模組。
如需詳細資訊,請參閱Adobe Authenticator模組。

存取權要求

展開以檢視這篇文章中所述功能的存取權要求。
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連線

  1. 新增HTTP > 將JWT請求模組新增至您的情境。

  2. 按一下​ 連線 ​欄位旁的​新增。

  3. 設定連線欄位:

    table 0-row-2 1-row-2 2-row-2 layout-auto html-authored no-header
    連線名稱 輸入此連線的名稱。
    演演算法

    選取連線的簽署演演算法。

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

    輸入簽署金鑰。

    • 對於HS*演演算法,請使用共用機密字串。
    • 對於RS*、PS*和ES*演演算法,請使用PEM編碼的私密金鑰。
  4. 按一下​ 繼續 ​以建立連線並返回模組。

IMPORTANT
JWT連線只會以一個演演算法簽署。 如果您的案例需要多個簽署演演算法,請為每個演演算法建立個別的連線。 這符合現有的獨立JWT應用程式行為。

HTTP > 發出JWT請求模組及其欄位

當您設定HTTP > 發出JWT請求模組時,Adobe Workfront Fusion會依照欄位在模組UI中的顯示順序,顯示下列欄位。 在模組中,粗體標題表示那是必要欄位。 除非您選取​顯示進階設定,否則標示為進階的欄位會隱藏。

連線
選取現有的JWT連線或建立新連線。
URL
要求的目標URL。
方法
HTTP方法,例如GET、POST、PUT、PATCH或DELETE。
標頭
索引鍵/值格式的自訂請求標頭。
查詢字串
索引鍵/值格式的查詢字串引數。
主體型別
要求內文的編碼方式。 選項包括Raw、application/x-www-form-urlencoded和multipart/form-data。
剖析回應
啟用時,Fusion會根據回應內容型別來剖析回應內文。
JWT裝載(宣告)
JWT裝載中包含的宣告金鑰/值配對。 保留的宣告exp、iat和nbf必須是NumericDate — 自Unix紀元以來的秒數。 宣告值會保留其JSON型別,因此數字會保留數字,而布林值會保留布林值。
逾時 (進階)
指定要求逾時秒數(1-300)。 預設值為40秒。
重試計數 (進階)
指定當請求因可重試的錯誤而失敗時,請求應該重試的次數。
其他重試狀態碼 (進階)
指定應視為可重試的其他HTTP狀態代碼。
與其他HTTP模組共用Cookie (進階)
啟用此選項即可將伺服器的Cookie與案例中的所有HTTP模組共用。
自我簽署憑證 (進階)
如果您想要使用自我簽署憑證的TLS,請上傳憑證。
拒絕使用未驗證(自我簽署)憑證的連線 (進階)
啟用此選項可拒絕使用未驗證TLS憑證的連線。
遵循重新導向 (進階)
啟用此選項可在3xx回應中跟隨URL重新導向。
停用將多個相同的查詢字串索引鍵序列化為陣列 (進階)
依預設,Workfront Fusion會針對與陣列相同的URL查詢字串引數索引鍵處理多個值。 例如,www.test.com?foo=bar&foo=baz將轉換為www.test.com?foo[0]=bar&foo[1]=baz。 啟動此選項以停用此功能。
要求壓縮內容 (進階)
啟用此選項以請求網站的壓縮版本。 新增Accept-Encoding標頭以要求壓縮內容。
使用雙向TLS (進階)
啟用此選項以在HTTP請求中使用雙向TLS。
符號選項 (進階)

針對您想要新增至要求的每個符號選項,按一下 新增專案 並輸入引數的名稱和值。

傳遞給JWT簽署者的其他選項,例如expiresIn、issuer、audience、subject和keyid。 jsonwebtoken資料庫會解譯expiresIn等期間值。 純數字會被視為毫秒,因此請使用單位字串(例如"1h"或"3600s")來明確顯示。 演演算法是從連線中取得的,並且無法在此處覆寫。

標頭名稱 (進階)
輸入或對應接收已簽署JWT的請求標頭名稱。 預設值: Authorization。 標頭名稱不可包含點(.),因為點狀名稱遭到拒絕,且無法在請求記錄中遮罩。
權杖型別 (進階)
輸入或對應置於Token之前的驗證配置,例如Bearer。 將此項保留空白可傳送不含前置詞的原始權杖。

如何建置權杖

  1. 模組會收集JWT裝載(宣告)欄位中的宣告。
  2. 保留宣告,例如費用,iat,和nbf 會轉換為NumericDate值。
  3. 模組會套用簽署選項,並使用連線的演演算法簽署權杖。
  4. 簽署的權杖會放置在由標頭名稱定義的請求標頭中。
  5. 如果設定了Token Type,模組會在權杖前加上前置詞。 例如,Bearer eyJ….
  6. 已傳送要求,且回應處理方式與標準HTTP > 提出要求模組相同。

簽署的權杖會在除錯和錯誤記錄中自動遮罩,因此永遠不會公開。

範例

連線

  • 演演算法: HS256
  • 密碼: my-shared-secret

模組設定

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

  • 方法: GET

  • JWT裝載(宣告):

    • sub = service-account-42
    • iss = 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型別保留空白。

記錄檔中是否顯示權杖?

否。 已簽署的權杖會在偵錯和錯誤記錄中自動遮罩。

NOTE
技術備註:簽署使用jsonwebtoken程式庫並映象獨立JWT應用程式的簽署行為,因此相同的輸入會產生與獨立JWT應用程式相同的權杖。
recommendation-more-help
workfront-fusion-help-workfront-fusion