הדף הזה רלוונטי ל-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 |
השם הפנימי של המדיניות. הערך של מאפיין אפשר להשתמש ברכיב |
לא רלוונטי | חובה |
continueOnError |
מגדירים את הערך הגדרה ל- |
FALSE | אופציונלי |
enabled |
מגדירים את המדיניות למצב מגדירים את הערך |
TRUE | אופציונלי |
async |
המאפיין הזה הוצא משימוש. |
FALSE | הוצא משימוש |
אלמנט <DisplayName>
משתמשים בו בנוסף למאפיין name כדי לתת למדיניות שם אחר בשפה טבעית, לסימון המדיניות בכלי לעריכת פרוקסי בממשק המשתמש לניהול.
<DisplayName>Policy Display Name</DisplayName>
| ברירת מחדל |
לא רלוונטי אם לא מציינים את הרכיב הזה, המערכת משתמשת בערך של המאפיין |
|---|---|
| נוכחות | אופציונלי |
| סוג | 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_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.
הפניה לשגיאה
בקטע הזה מתוארים קודי התקלה והודעות השגיאה שמוחזרים, ומשתני התקלה שמוגדרים על ידי 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>