查看 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>
<Tokens>/<Token> 元素
識別用於指定待撤銷權杖的流程變數。如果開發人員
應使用查詢參數提交撤銷要求
名為 access_token
的正確資料流變數
應為 request.queryparam.access_token
。如需使用 HTTP 標頭中的符記,
例如,請將這個值設為 request.header.access_token
。
屬性
-
type
(必要、字串):變數識別的符記類型 。支援的值 是accesstoken
和refreshtoken:
- 如要撤銷存取權杖,請指定類型存取權杖。
- 如要撤銷存取權和更新權杖,請指定類型 refreshtoken。發現時機
類型 refreshtoken,Edge 會假設該符記為更新權杖。如果更新權杖
之後就會撤銷如果找不到這個重新整理權杖,Edge 會檢查
看看是否為存取權杖如果存取權杖存在,該權杖就會遭到撤銷。
注意:如果您將既有的無效權杖傳遞至 InvalidateToken 這項政策不會傳回錯誤,但您可能會預期會發生這種情況。這類 則不會產生任何效果。
-
cascade
(選用、布林值、預設值:true) 使用此指標的主要用途 屬性撤銷更新權杖,而不撤銷其相關聯的存取權杖。您可以考慮使用 下列情況:- 僅撤銷更新權杖,不撤銷相關聯的存取權杖。方法如下
設定 <Token>輸入
refreshtoken
,並將串聯設為false
。 - 同時撤銷存取權杖和更新權杖。方法是將 <Token>
設為
accesstoken
。串聯值可以是true
( 預設) 或false
。如果設為true
,系統就會同時將存取權 權杖,並撤銷更新權杖。如果設為false
,系統就會保留存取權 憑證,且更新憑證無法使用。詳情請參閱下方「附註」 解釋。 - 撤銷存取權杖,但不撤銷相關聯的更新權杖。非 支援。詳情請參閱下方的「附註」。
- 僅撤銷更新權杖,不撤銷相關聯的存取權杖。方法如下
設定 <Token>輸入
注意:基於安全考量,當您撤銷
存取權杖,相關聯的更新權杖也會遭到撤銷。因此,您不能使用
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>
<Tokens>/<Token> 元素
識別用於指定待驗證符記的流程變數。如果開發人員
預期會使用查詢參數提交驗證要求
名為 access_token
的正確資料流變數
應為 request.queryparam.access_token
。如需使用 HTTP 標頭中的符記,
例如,請將這個值設為 request.header.access_token
。
屬性
type
(必要、字串) 變數識別的符記類型 。支援的值 為accesstoken
和refreshtoken
。cascade
(選用,布林值):這個選項預設為true
,並導致驗證套用至相關聯的權杖。如果套用 更新憑證,相關聯的存取權杖也會經過驗證。如為存取權 權杖,相關聯的更新權杖也會通過驗證。如果設為false
, 則只有指定的存取權或更新權杖會經過驗證。