הגדרה של מדיניות OAuthV2Info

מוצג המסמך של Apigee Edge.
עוברים אל מסמכי תיעוד של Apigee X.
מידע

מה

מאפשרת להוסיף או לעדכן מאפיינים מותאמים אישית שמשויכים לאסימון גישה. מאפיינים מותאמים אישית יכולים לכלול פרטים כמו שם מחלקה, מספר לקוח או מזהה סשן. עוד באותו הקשר התאמה אישית של אסימונים קודי הרשאות.

אפשר להוסיף או לשנות רק מאפיינים מותאמים אישית. לא ניתן להשתמש במדיניות הזו כדי לשנות שדות כמו היקף, סטטוס, תפוגת_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

השם הפנימי של המדיניות. הערך של המאפיין name יכול לכלול אותיות, מספרים, רווחים, מקפים, קווים תחתונים ונקודות. הערך הזה לא יכול ארוך מ-255 תווים.

אפשר להשתמש ברכיב <DisplayName> כדי להוסיף תווית למדיניות עורך ה-Proxy של ממשק המשתמש לניהול בעל שם אחר בשפה טבעית.

לא רלוונטי חובה
continueOnError

צריך להגדיר את הערך false כדי להחזיר שגיאה כשמדיניות נכשלת. המצב הזה צפוי של רוב כללי המדיניות.

יש להגדיר ל-true כדי שביצוע התהליך יימשך גם לאחר המדיניות נכשל.

false אופציונלי
enabled

צריך להגדיר את הערך true כדי לאכוף את המדיניות.

צריך להגדיר את הערך false כדי להשבית את המדיניות. המדיניות לא תהיה אכיפה גם אם היא ממשיכה להיות מחוברת לזרימה.

true אופציונלי
async

המאפיין הזה הוצא משימוש.

false הוצא משימוש

&lt;DisplayName&gt; רכיב

צריך להשתמש בנוסף למאפיין name כדי להוסיף תווית למדיניות עורך proxy של ממשק משתמש לניהול עם שם אחר בשפה טבעית.

<DisplayName>Policy Display Name</DisplayName>
ברירת מחדל

לא רלוונטי

אם משמיטים את הרכיב הזה, הערך של המאפיין name של המדיניות הוא בשימוש.

נוכחות אופציונלי
סוג מחרוזת

&lt;AccessToken&gt; רכיב

מזהה את המשתנה שבו נמצא אסימון הגישה. לדוגמה, אם אסימון הגישה הוא מצורף להודעת הבקשה בתור פרמטר של שאילתה, לציין request.queryparam.access_token אפשר להשתמש בכל משתנה חוקי שמפנה אל ב-Assistant. לחלופין, הוא יכול להעביר את מחרוזת האסימון המילולית (מקרה נדיר).

 <AccessToken ref="request.queryparam.access_token"></AccessToken>
ברירת המחדל: לא רלוונטי
נוכחות: חובה
סוג: מחרוזת

מאפיינים

מאפיין תיאור ברירת מחדל נוכחות
אזכור

משתנה של אסימון גישה. בדרך כלל, מאוחזרים ממשתנה זרימה.

לא רלוונטי אופציונלי

&lt;Attributes&gt; רכיב

קבוצת מאפיינים בפרופיל אסימון הגישה שישונו או יורחבו.

ברירת המחדל: לא רלוונטי
נוכחות: חובה
סוג: לא רלוונטי

&lt;Attributes&gt;/&lt;Attribute&gt; רכיב

מאפיין בודד שצריך לעדכן.

מאפיין השם מזהה את המאפיין המותאם אישית של פרופיל אסימון הגישה שצריך להיות עודכן. הדוגמה הזו ממחישה איך להשתמש בערך סטטי ובערך של משתנה שיש אליו הפניה.

  <Attributes>
    <Attribute name="department.id" ref="request.queryparam.department_id"></Attribute>
    <Attribute name="foo">bar</Attribute>
  </Attributes>
ברירת המחדל: לא רלוונטי
נוכחות: אופציונלי
סוג: לא רלוונטי

מאפיינים

מאפיין תיאור ברירת מחדל נוכחות
שם השם של מאפיין הפרופיל שרוצים להוסיף או לשנות. לא רלוונטי
אזכור

הערך שצריך להקצות למאפיין הפרופיל.

לא רלוונטי אופציונלי

משתני זרימה

לאחר הצלחה, משתני הזרימה הבאים יוגדרו:

  • oauthv2accesstoken.{policyName}.access_token
  • oauthv2accesstoken.{policyName}.client_id
  • oauthv2accesstoken.{policyName}.refresh_count
  • oauthv2accesstoken.{policyName}.organization_name
  • oauthv2accesstoken.{policyName}.expires_in //--in seconds
  • oauthv2accesstoken.{policyName}.refresh_token_expires_in //--in seconds
  • oauthv2accesstoken.{policyName}.issued_at
  • oauthv2accesstoken.{policyName}.status
  • oauthv2accesstoken.{policyName}.api_product_list
  • oauthv2accesstoken.{policyName}.token_type
  • oauthv2accesstoken.{policyName}.{custom_attribute_name}

סכימה

כל סוג מדיניות מוגדר על ידי סכימת XML (.xsd). לידיעתך, סכימות של מדיניות זמינים ב-GitHub.

התייחסות לשגיאות

This section describes the fault codes and error messages that are returned and fault variables that are set by Edge when this policy triggers an error. This information is important to know if you are developing fault rules to handle faults. To learn more, see What you need to know about policy errors and Handling faults.

Runtime errors

These errors can occur when the policy executes.

Fault code HTTP status Cause
steps.oauth.v2.access_token_expired 500 The access token sent to the policy is expired.
steps.oauth.v2.invalid_access_token 500 The access token sent to the policy is invalid.
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound 401 Please see this Apigee Community post for information about troubleshooting this error.

Deployment errors

Refer to the message reported in the UI for information about deployment errors.

Fault variables

These variables are set when this policy triggers an error at runtime.

Variables Where Example
fault.name="fault_name" fault_name is the name of the fault, as listed in the Runtime errors table above. The fault name is the last part of the fault code. fault.name = "invalid_access_token"
oauthV2.policy_name.failed policy_name is the user-specified name of the policy that threw the fault. oauthV2.SetTokenInfo.failed = true
oauthV2.policy_name.fault.name policy_name is the user-specified name of the policy that threw the fault. oauthV2.SetTokenInfo.fault.name = invalid_access_token
oauthv2.policy_name.fault.cause policy_name is the user-specified name of the policy that threw the fault. oauthV2.SetTokenInfo.cause = Invalid Access Token

Example error response

{
  "fault": {
    "faultstring": "Invalid Access Token",
    "detail": {
      "errorcode": "keymanagement.service.invalid_access_token"
    }
  }
}

Example fault rule

<FaultRule name=SetOAuthV2Info Faults">
    <Step>
        <Name>AM-InvalidTokenResponse</Name>
        <Condition>(fault.name = "invalid_access_token")</Condition>
    </Step>
    <Condition>(oauthV2.failed = true) </Condition>
</FaultRule>

נושאים קשורים