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

כרגע מוצג התיעוד של Apigee Edge.
כניסה למסמכי התיעוד של Apigee X.
מידע

מה

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

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

רכיב <DisplayName>

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

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

לא רלוונטי

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

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

רכיב <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>
ברירת מחדל: לא רלוונטי
נוכחות: אופציונלי
סוג: לא רלוונטי

מאפיינים

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

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

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

משתני זרימה

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

  • 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.

הפניה לשגיאות

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

שגיאות בזמן ריצה

השגיאות האלה יכולות להתרחש כשהמדיניות מופעלת.

קוד שגיאה סטטוס HTTP סיבה
steps.oauth.v2.access_token_expired 500 פג התוקף של אסימון הגישה שנשלח למדיניות.
steps.oauth.v2.invalid_access_token 500 אסימון הגישה שנשלח למדיניות אינו חוקי.
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound 401 מידע על פתרון השגיאה הזו זמין בפוסט הזה בקהילת Apigee.

שגיאות בפריסה

יש לעיין בהודעה שמדווחת בממשק המשתמש לקבלת מידע על שגיאות פריסה.

משתני שבר

המשתנים האלה מוגדרים כשהמדיניות הזו גורמת לשגיאה בזמן הריצה.

משתנים מיקום דוגמה
fault.name="fault_name" fault_name הוא שם התקלה, כפי שמפורט בטבלה שגיאות זמן ריצה שלמעלה. שם הטעות הוא החלק האחרון בקוד השגיאה. fault.name = "invalid_access_token"
oauthV2.policy_name.failed policy_name הוא השם שצוין על ידי המשתמש של המדיניות שגרמה לשגיאה. oauthV2.SetTokenInfo.failed = true
oauthV2.policy_name.fault.name policy_name הוא השם שצוין על ידי המשתמש של המדיניות שגרמה לשגיאה. oauthV2.SetTokenInfo.fault.name = invalid_access_token
oauthv2.policy_name.fault.cause policy_name הוא השם שצוין על ידי המשתמש של המדיניות שגרמה לשגיאה. oauthV2.SetTokenInfo.cause = Invalid Access Token

דוגמה לשגיאה

{
  "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>

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