查看 Apigee Edge 說明文件。
  前往
     Apigee X說明文件。 資訊
結果
可讓您新增或更新與存取權杖相關聯的自訂屬性。自訂屬性 可能包括部門名稱、客戶 ID 或工作階段 ID其他參考資訊 自訂權杖和 授權碼。
而只能新增或修改自訂屬性。您無法依據這項政策變更以下欄位: 範圍、status、expiration_in、developer_email、client_id、org_name 或 refresh_count。如果 屬性已存在,這項政策會更新該屬性。如果該政策不存在,這項政策會新增該物件。 參照的存取權杖必須是有效且處於已核准的狀態。
範例
基本範例
以下政策範例是用來更新 OAuth 2.0 存取權杖。以下範例
      尋找要求訊息中的存取權杖,方法是尋找名為
      access_token。當用戶端應用程式提供存取權杖時,政策
      下方會找出查詢參數中的存取權杖。然後更新存取權
      存取權杖的設定檔這會將名為 department.id 的自訂屬性新增至
      
<SetOAuthV2Info name="SetOAuthV2Info"> 
  <AccessToken ref="request.queryparam.access_token"></AccessToken>
  <Attributes>
    <Attribute name="department.id" ref="request.queryparam.department_id"></Attribute>
  </Attributes>
</SetOAuthV2Info>元素參照
元素參照會說明 SetOAuthV2 政策的元素和屬性。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <SetOAuthV2Info async="false" continueOnError="false" enabled="true" name="SetOAuthV2Info-1"> <DisplayName>Set OAuth v2.0 Info 1</DisplayName> <AccessToken ref={some-variable}></AccessToken> <Attributes/> </SetOAuthV2Info> </xml>
<SetOAuthV2Info>屬性
<SetOAuthV2Info async="false" continueOnError="false" enabled="true" name="Set-OAuth-v20-Info-1">
下表說明所有政策父項元素的共同屬性:
| 屬性 | 說明 | 預設 | 存在必要性 | 
|---|---|---|---|
name | 
        
           政策的內部名稱。 視需要使用   | 
        不適用 | 必填 | 
continueOnError | 
        
           如果設為「 如果設為   | 
        false | 選用 | 
enabled | 
        
           如要強制執行政策,請設為  設為   | 
        true | 選用 | 
async | 
        
           此屬性已淘汰。  | 
        false | 已淘汰 | 
<DisplayName>元素
除 name 屬性外,一併使用
  管理 UI Proxy 編輯器,使用不同的自然語言名稱。
<DisplayName>Policy Display Name</DisplayName>
| 預設 | 
           不適用 如果省略這個元素,政策的   | 
      
|---|---|
| 存在必要性 | 選用 | 
| 類型 | 字串 | 
<AccessToken>元素
識別存取權杖所在的變數。舉例來說,如果存取權杖是
  做為查詢參數附加在要求訊息中
  request.queryparam.access_token。您可以使用任何參照
  產生下一個符記或者,也可以傳入常值權杖字串 (極少有大小寫之分)。
<AccessToken ref="request.queryparam.access_token"></AccessToken>
| 預設: | 不適用 | 
| 所在地: | 必填 | 
| 類型: | 字串 | 
屬性
| 屬性 | 說明 | 預設 | 存在必要性 | 
|---|---|---|---|
| 參考資料 | 
           存取權杖變數。通常擷取自流程變數。  | 
        不適用 | 選用 | 
<Attributes>元素
存取權杖設定檔中的一組屬性,會修改或擴充。
| 預設: | 不適用 | 
| 所在地: | 必填 | 
| 類型: | 不適用 | 
<Attributes>/<Attribute>元素
要更新的個別屬性。
名稱屬性可識別要存取權杖設定檔的自訂屬性 已更新。本例說明如何使用參照的變數值和靜態值。
  <Attributes>
    <Attribute name="department.id" ref="request.queryparam.department_id"></Attribute>
    <Attribute name="foo">bar</Attribute>
  </Attributes>| 預設: | 不適用 | 
| 所在地: | 選用 | 
| 類型: | 不適用 | 
屬性
| 屬性 | 說明 | 預設 | 存在必要性 | 
|---|---|---|---|
| 名稱 | 要新增或變更的個人資料屬性名稱。 | 不適用 | |
| 參考資料 | 
           要指派給設定檔屬性的值。  | 
        不適用 | 選用 | 
流程變數
成功後,將設定下列流程變數:
oauthv2accesstoken.{policyName}.access_tokenoauthv2accesstoken.{policyName}.client_idoauthv2accesstoken.{policyName}.refresh_countoauthv2accesstoken.{policyName}.organization_nameoauthv2accesstoken.{policyName}.expires_in //--in secondsoauthv2accesstoken.{policyName}.refresh_token_expires_in //--in secondsoauthv2accesstoken.{policyName}.issued_atoauthv2accesstoken.{policyName}.statusoauthv2accesstoken.{policyName}.api_product_listoauthv2accesstoken.{policyName}.token_typeoauthv2accesstoken.{policyName}.{custom_attribute_name}
結構定義
每種政策類型都是由 XML 架構 (.xsd) 定義。供參考政策結構定義
  GitHub 提供許多資源。
錯誤參考資料
本節說明在這項政策觸發錯誤時,所傳回的錯誤代碼和錯誤訊息,以及 Edge 所設定的錯誤變數。 請務必瞭解這份資訊,以便瞭解您是否要擬定錯誤規則, 處理錯誤詳情請參閱這篇文章 瞭解政策錯誤和處理方式 發生錯誤
執行階段錯誤
執行政策時,可能會發生這些錯誤。
| 錯誤程式碼 | HTTP 狀態 | 原因 | 
|---|---|---|
steps.oauth.v2.access_token_expired | 
        500 | 傳送至政策的存取權杖已過期。 | 
steps.oauth.v2.invalid_access_token | 
        500 | 傳送至政策的存取權杖無效。 | 
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound | 
        401 | 請參閱 這篇 Apigee 社群貼文說明如何排解這項錯誤。 | 
部署錯誤
如要瞭解部署錯誤,請參閱使用者介面中回報的訊息。
錯誤變數
當這項政策在執行階段觸發錯誤時,即可設定這些變數。
錯誤回應範例
{
  "fault": {
    "faultstring": "Invalid Access Token",
    "detail": {
      "errorcode": "keymanagement.service.invalid_access_token"
    }
  }
}錯誤規則範例
<FaultRule name=SetOAuthV2Info Faults">
    <Step>
        <Name>AM-InvalidTokenResponse</Name>
        <Condition>(fault.name = "invalid_access_token")</Condition>
    </Step>
    <Condition>(oauthV2.failed = true) </Condition>
</FaultRule>