核准及撤銷存取權杖

查看 Apigee Edge 說明文件。
前往 Apigee X說明文件
資訊

撤銷存取權並更新權杖

在某些情況下,應用程式必須明確撤銷權杖或使權杖失效。舉例來說,當應用程式產生 使用者登出已啟用 OAuth 的應用程式時。如果撤銷權杖,隨時可以重新核准。 以免到期

憑證撤銷程序由 OAuth 2.0 權杖撤銷規格定義。

Apigee Edge 提供 InvalidateToken 作業,可讓您設定 憑證撤銷端點只要發布這個端點的 URI,應用程式開發人員就能: 使 Edge 核發的權杖失效

以下是 OAuthV2 政策和 InvalidateToken 作業的設定範例。於 在這種情況下,存取權杖及其相關聯的更新權杖都會遭到撤銷。從技術層面來說 序列標記設為 true,因此兩者皆遭到撤銷。如要進一步瞭解 cascade 旗標可正常運作,請參閱下方的「權杖元素屬性」一節。

<OAuthV2 name="InvalidateToken">
  <Operation>InvalidateToken</Operation>
  <Tokens>
    <Token type="accesstoken" cascade="true">flow.variable</Token>
  </Tokens>
</OAuthV2>

&lt;Tokens&gt;/&lt;Token&gt; 元素

識別用於指定待撤銷權杖的流程變數。如果開發人員 應使用查詢參數提交撤銷要求 名為 access_token 的正確資料流變數 應為 request.queryparam.access_token。如需使用 HTTP 標頭中的符記, 例如,請將這個值設為 request.header.access_token

屬性

  • type (必要、字串):變數識別的符記類型 。支援的值 是accesstokenrefreshtoken:
    • 如要撤銷存取權杖,請指定類型存取權杖。
    • 如要撤銷存取權和更新權杖,請指定類型 refreshtoken。發現時機 類型 refreshtoken,Edge 會假設該符記為更新權杖。如果更新權杖 之後就會撤銷如果找不到這個重新整理權杖,Edge 會檢查 看看是否為存取權杖如果存取權杖存在,該權杖就會遭到撤銷。

      注意:如果您將既有的無效權杖傳遞至 InvalidateToken 這項政策不會傳回錯誤,但您可能會預期會發生這種情況。這類 則不會產生任何效果。
  • cascade (選用、布林值、預設值:true) 使用此指標的主要用途 屬性撤銷更新權杖,而不撤銷其相關聯的存取權杖。您可以考慮使用 下列情況:
    • 僅撤銷更新權杖,不撤銷相關聯的存取權杖。方法如下 設定 <Token>輸入 refreshtoken,並將串聯設為 false
    • 同時撤銷存取權杖和更新權杖。方法是將 <Token> 設為 accesstoken。串聯值可以是 true ( 預設) 或 false。如果設為 true,系統就會同時將存取權 權杖,並撤銷更新權杖。如果設為 false,系統就會保留存取權 憑證,且更新憑證無法使用。詳情請參閱下方「附註」 解釋。
    • 撤銷存取權杖,但不撤銷相關聯的更新權杖。非 支援。詳情請參閱下方的「附註」。

注意:基於安全考量,當您撤銷 存取權杖,相關聯的更新權杖也會遭到撤銷。因此,您不能使用 cascade 屬性,只撤銷存取權杖。舉例來說,如果您將 <Token> 類型設為 accesstoken 並設定 cascade=false,系統就會撤銷存取權杖 (符合預期);但相關聯的重新整理權杖無法使用。無法用於重新整理 撤銷的存取權杖cascade 屬性的主要用途是 撤銷更新權杖。在這個範例中,將 <Token>輸入到「refreshtoken」, 並設定 cascade=false。系統會撤銷更新權杖,但相關聯的存取權 權杖仍有效 (直到過期或被撤銷為止)。若需更多資訊,請參閱此 社群論壇討論

核准存取權和更新權杖

使用 ValidToken 作業來「重新核准」用於撤銷權杖也就是說 作業,指定存取權或更新權杖的狀態已從「已撤銷」變更為「已撤銷」到 「已核准」。您可以驗證任何未撤銷的撤銷權杖。

<OAuthV2 name="ValidateToken">
  <Operation>ValidateToken</Operation>
  <Tokens>
    <Token type="refreshtoken" cascade="true">flow.variable</Token>
  </Tokens>
</OAuthV2>

&lt;Tokens&gt;/&lt;Token&gt; 元素

識別用於指定待驗證符記的流程變數。如果開發人員 預期會使用查詢參數提交驗證要求 名為 access_token 的正確資料流變數 應為 request.queryparam.access_token。如需使用 HTTP 標頭中的符記, 例如,請將這個值設為 request.header.access_token

屬性

  • type (必要、字串) 變數識別的符記類型 。支援的值 為 accesstokenrefreshtoken
  • cascade (選用,布林值):這個選項預設為 true,並導致驗證套用至相關聯的權杖。如果套用 更新憑證,相關聯的存取權杖也會經過驗證。如為存取權 權杖,相關聯的更新權杖也會通過驗證。如果設為 false, 則只有指定的存取權或更新權杖會經過驗證。