‫SetOAuthV2Info policy

אתם צופים במסמכי התיעוד של Apigee Edge.
כדאי לעיין במסמכי התיעוד של Apigee X.
מידע

מה

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

אפשר להוסיף או לשנות רק מאפיינים מותאמים אישית. אי אפשר להשתמש במדיניות הזו כדי לשנות שדות כמו scope,‏ status,‏ expires_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 של המדיניות הוא בשימוש.

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

אלמנט <AccessToken>

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

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

מאפיינים

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

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

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

אלמנט <Attributes>

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

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

רכיב <Attributes>/<Attribute>

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

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

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

מאפיינים

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

הפניה לשגיאה

בקטע הזה מתוארים קודי השגיאות והודעות השגיאה שמוחזרים, ומשתני השגיאה שמוגדרים על ידי 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>

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