‫SetOAuthV2Info policy

הדף הזה רלוונטי ל-Apigee ול-Apigee Hybrid.

לעיון במסמכי התיעוד של Apigee Edge

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

אפשר רק להוסיף או לשנות מאפיינים מותאמים אישית. אי אפשר להשתמש במדיניות הזו כדי לשנות שדות כמו scope,‏ status,‏ expires_in,‏ developer_email,‏ client_id,‏ org_name או refresh_count. אם מאפיין כבר קיים, המדיניות הזו מעדכנת אותו. אם הוא לא קיים, המדיניות מוסיפה אותו. אסימון הגישה שאליו מתייחסים חייב להיות תקף ובמצב מאושר.

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

דוגמאות

דוגמה בסיסית

בהמשך מוצגת דוגמה למדיניות שמשמשת לעדכון אסימון גישה מסוג 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> כדי לתת למדיניות תווית בשם אחר בשפה טבעית בכלי לעריכת פרוקסי בממשק הניהול.

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

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

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

FALSE אופציונלי
enabled

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

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

TRUE אופציונלי
async

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

FALSE הוצא משימוש

אלמנט <DisplayName>

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

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

לא רלוונטי

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

נוכחות אופציונלי
סוג String

אלמנט <AccessToken>

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

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

מאפיינים

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

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

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

אלמנט <Attributes>

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

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

רכיב <Attributes>/<Attribute>

מאפיין יחיד לעדכון.

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

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

מאפיינים

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

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

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

משתנים בתהליך

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

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

הפניה לשגיאה

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

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

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

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

שגיאות בהטמעה

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

משתני תקלות

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

משתנים כאשר: דוגמה
fault.name="fault_name" fault_name הוא שם התקלה, כפי שמופיע בטבלה Runtime errors שלמעלה. שם התקלה הוא החלק האחרון של קוד התקלה. 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>

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