מוצג המסמך של Apigee Edge.
עוברים אל
מסמכי תיעוד של Apigee X. מידע
סקירה כללית
ביטול אסימוני גישה מסוג OAuth2 שמשויכים למזהה אפליקציה למפתחים או למזהה משתמש קצה של אפליקציה, או לשניהם.
כדי ליצור אסימון גישה מסוג OAuth 2.0, צריך להשתמש במדיניות OAuthv2. אסימון שנוצר ב-Apigee מופיע בפורמט הבא:
{ "issued_at" : "1421847736581", "application_name" : "a68d01f8-b15c-4be3-b800-ceae8c456f5a", "scope" : "READ", "status" : "approved", "api_product_list" : "[PremiumWeatherAPI]", "expires_in" : "3599", //--in seconds "developer.email" : "tesla@weathersample.com", "organization_id" : "0", "token_type" : "BearerToken", "client_id" : "k3nJyFJIA3p62DWOkLO6OJNi87GYXFmP", "access_token" : "7S22UqXGJDTuUADGzJzjXzXSaGJL", "organization_name" : "myorg", "refresh_token_expires_in" : "0", //--in seconds "refresh_count" : "0" }
הרכיב application_name
מכיל את מזהה האפליקציה למפתחים שמשויך לאסימון.
כברירת מחדל, Apigee לא כוללת את המזהה של משתמש הקצה באסימון. אפשר להגדיר ב-Apigee לכלול
המזהה של משתמש הקצה על ידי הוספת הרכיב <AppEndUser>
למדיניות OAuthv2:
<OAuthV2 name="GenerateAccessTokenClient"> <Operation>GenerateAccessTokenV/Operation> ... <AppEndUser>request.queryparam.app_enduser</AppEndUser> </OAuthV2>
בדוגמה זו, מעבירים את המזהה של משתמש הקצה אל מדיניות OAuthv2 בפרמטר של שאילתה בשם app_enduser
.
המזהה של משתמש הקצה נכלל באסימון ברכיב app_enduser
:
{ "issued_at" : "1421847736581", "application_name" : "a68d01f8-b15c-4be3-b800-ceae8c456f5a", "scope" : "READ", "app_enduser" : "6ZG094fgnjNf02EK", "status" : "approved", "api_product_list" : "[PremiumWeatherAPI]", "expires_in" : "3599", //--in seconds "developer.email" : "tesla@weathersample.com", "organization_id" : "0", "token_type" : "BearerToken", "client_id" : "k3nJyFJIA3p62DWOkLO6OJNi87GYXFmP", "access_token" : "7S22UqXGJDTuUADGzJzjXzXSaGJL", "organization_name" : "myorg", "refresh_token_expires_in" : "0", //--in seconds "refresh_count" : "0" }
ביטול לפי מזהה אפליקציה של מפתח
ביטול אסימוני גישה מסוג OAuth2 שמשויכים למזהה של אפליקציה למפתחים. כל אסימוני הגישה מסוג OAuth2 שנוצרו על ידי Apigee כוללים את המזהה של אפליקציית המפתחים שמשויכת באמצעות האסימון. לאחר מכן תוכלו לבטל אסימונים לפי מזהה האפליקציה הזה.
אפשר להשתמש ב-Developer apps API כדי לקבל רשימה של מזהי אפליקציות של מפתח ספציפי.
אפשר גם להשתמש ב-Developer apps API כדי לקבל פרטים על אפליקציה.
ביטול לפי מזהה משתמש קצה באפליקציה
ביטול אסימוני גישה מסוג OAuth2 שמשויכים למזהה של משתמש קצה ספציפי באפליקציה. זה האסימון שמשויך למזהה המשתמש שעבורו הונפקו האסימונים.
כברירת מחדל, אין שדה למזהה משתמש הקצה באסימון הגישה ל-OAuth. כדי לאפשר ביטול של אסימוני גישה מסוג OAuth 2.0 לפי מזהה משתמש קצה, צריך להגדיר את מדיניות OAuthv2 כך שתכלול את מזהה המשתמש באסימון כמו שמוצג למעלה.
כדי לקבל מזהה משתמש קצה באפליקציה, צריך להשתמש API של אפליקציות למפתחים.
דוגמאות
בדוגמאות הבאות נעשה שימוש במדיניות בנושא ביטול OAuth V2 כדי לבטל אסימוני גישה מסוג OAuth2.
מזהה האפליקציה למפתחים
כדי לבטל אסימוני גישה לפי מזהה אפליקציית מפתח, צריך להשתמש ברכיב <AppId>
ב-
המדיניות שלכם.
הדוגמה הבאה מצפה למצוא את מזהה האפליקציה למפתחים של אסימון הגישה בפרמטר של שאילתה בשם
app_id
:
<RevokeOAuthV2 continueOnError="false" enabled="true" name="MyRevokeTokenPolicy"> <DisplayName>Revoke OAuth v2.0-1</DisplayName> <AppId ref="request.queryparam.app_id"></AppId> </RevokeOAuthV2>
המדיניות מבטלת את אסימון הגישה, בהתאם למזהה של אפליקציית המפתחים.
ביטול לפני חותמת הזמן
כדי לבטל אסימוני גישה לפי מזהה אפליקציית מפתח שנוצרו לפני תאריך ושעה ספציפיים,
להשתמש ברכיב <RevokeBeforeTimestamp>
במדיניות. <RevokeBeforeTimestamp>
מציין זמן מערכת של זמן UTC באלפיות שנייה. כל האסימונים שהונפקו לפני המועד הזה מבוטלים.
בדוגמה הבאה מבטלים את אסימוני הגישה של אפליקציה למפתחים שנוצרה לפני 1 ביולי 2019:
<RevokeOAuthV2 continueOnError="false" enabled="true" name="MyRevokeTokenPolicy"> <DisplayName>Revoke OAuth v2.0-1</DisplayName> <AppId ref="request.queryparam.app_id"></AppId> <RevokeBeforeTimestamp>1561939200000</RevokeBeforeTimestamp> </RevokeOAuthV2>
הרכיב <RevokeBeforeTimestamp>
מקבל מספר שלם של 64 ביט (ארוך) שמייצג
מספר אלפיות השנייה שחלפו מאז חצות, ב-1 בינואר 1970 (שעון UTC).
מסמך עזר של רכיב
בהפניה לרכיב מתוארים הרכיבים והמאפיינים של מדיניות UndoOAuthV2.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RevokeOAuthV2 continueOnError="false" enabled="true" name="GetOAuthV2Info-1"> <DisplayName>Get OAuth v2.0 Info 1</DisplayName> <AppId ref="variable"></AppId> <EndUserId ref="variable"></EndUserId> <RevokeBeforeTimestamp ref="variable"></RevokeBeforeTimestamp> <Cascade>false</Cascade> </RevokeOAuthV2>
<ביטולOAuthV2> מאפיינים
<RevokeOAuthV2 continueOnError="false" enabled="true" name="Revoke-OAuth-v20-1">
בטבלה הבאה מתוארים מאפיינים שמשותפים לכל רכיבי ההורה של המדיניות:
מאפיין | תיאור | ברירת מחדל | נוכחות |
---|---|---|---|
name |
השם הפנימי של המדיניות. הערך של המאפיין אפשר להשתמש ברכיב |
לא רלוונטי | חובה |
continueOnError |
צריך להגדיר את הערך יש להגדיר ל- |
false | אופציונלי |
enabled |
צריך להגדיר את הערך צריך להגדיר את הערך |
true | אופציונלי |
async |
המאפיין הזה הוצא משימוש. |
false | הוצא משימוש |
<DisplayName> רכיב
צריך להשתמש בנוסף למאפיין name
כדי להוסיף תווית למדיניות
עורך proxy של ממשק משתמש לניהול עם שם אחר בשפה טבעית.
<DisplayName>Policy Display Name</DisplayName>
ברירת מחדל |
לא רלוונטי אם משמיטים את הרכיב הזה, הערך של המאפיין |
---|---|
נוכחות | אופציונלי |
סוג | מחרוזת |
<AppId> רכיב
מציינת את המזהה של אפליקציית המפתחים של האסימונים לביטול. מעבירים משתנה שמכיל את הפונקציה מזהה אפליקציה או מזהה אפליקציה מילולי.
<AppId>appIdString</AppId> or: <AppId ref="request.queryparam.app_id"></AppId>
ברירת מחדל |
|
---|---|
נוכחות |
אופציונלי |
סוג | מחרוזת |
ערכים חוקיים |
משתנה זרימה שמכיל מחרוזת של מזהה אפליקציה או מחרוזת מילולית. |
<מדורג> רכיב
אם יש לכם true
ויש לכם אסימון גישה אטום מסורתי, אז גם
אסימון הרענון ואסימון הגישה יבוטלו אם <AppId>
או
התאמה של <EndUserId>
.
אם false
,
רק אסימון הגישה מבוטל ואסימון הרענון לא משתנה. אותה התנהגות חלה גם
לאסימוני גישה אטומים בלבד.
<Cascade>false<Cascade>
ברירת מחדל |
false |
---|---|
נוכחות |
אופציונלי |
סוג | ערך בוליאני |
ערכים חוקיים | true או false |
<EndUserId> רכיב
מציינת את מזהה משתמש הקצה באפליקציה של האסימון לביטול. מעבירים משתנה שמכיל את הפונקציה מזהה משתמש או מחרוזת מילולית של אסימון.
<EndUserId>userIdString</EndUserId> or: <EndUserId ref="request.queryparam.access_token"></EndUserId>
ברירת מחדל |
|
---|---|
נוכחות |
אופציונלי |
סוג | מחרוזת |
ערכים חוקיים |
משתנה זרימה שמכיל מחרוזת של מזהה משתמש או מחרוזת מילולית. |
<RevokeBeforeTimestamp> רכיב
לבטל אסימונים שהונפקו לפני חותמת הזמן. הרכיב הזה פועל עם <AppId>
ו-<EndUserId>
, כדי לאפשר לכם לבטל אסימונים לפני מועד ספציפי.
ערך ברירת המחדל הוא משך ההפעלה של המדיניות.
<RevokeBeforeTimestamp>timeStampString</RevokeBeforeTimestamp> or: <RevokeBeforeTimestamp ref="request.queryparam.revoke_since_timestamp"></RevokeBeforeTimestamp>
ברירת מחדל |
חותמת הזמן של הפעלת המדיניות. |
---|---|
נוכחות |
אופציונלי |
סוג | מספר שלם באורך 64 ביט (ארוך) שמייצג את מספר אלפיות השנייה שעברו מאז חצות. ב-1 בינואר 1970 (שעון UTC). |
ערכים חוקיים |
משתנה זרימה שמכיל חותמת זמן או חותמת זמן מילולית. חותמת הזמן לא יכולה לחול בעתיד ולא יכולה להיות לפני 1 בינואר 2014. |
משתני זרימה
המדיניות UndoOAuthV2 לא מגדירה משתני זרימה.
התייחסות לשגיאות
בקטע הזה מתוארים קודי השגיאה והודעות השגיאה שהוחזרו, ומשתני התקלה שמוגדרים על ידי Edge כשהמדיניות הזו גורמת לשגיאה. חשוב לדעת את המידע הזה אם אתם מפתחים כללי כשל כדי לטפל בתקלות. מידע נוסף זמין במאמר מה צריך לדעת? מידע על שגיאות שקשורות למדיניות וטיפול פגמים.
שגיאות זמן ריצה
השגיאות האלה עשויות להתרחש כשהמדיניות מופעלת. שמות השגיאות שמוצגים בהמשך הם המחרוזות
שמוקצות למשתנה fault.name
כשמתרחשת שגיאה. רואים את הטעות
לקבלת פרטים נוספים.
קוד תקלה | סטטוס HTTP | סיבה |
---|---|---|
steps.oauth.v2.InvalidFutureTimestamp |
500 | חותמת הזמן לא יכולה להיות בעתיד. |
steps.oauth.v2.InvalidEarlyTimestamp |
500 | חותמת הזמן לא יכולה להיות לפני 1 בינואר 2014. |
steps.oauth.v2.InvalidTimestamp |
500 | חותמת הזמן לא תקינה. |
steps.oauth.v2.EmptyAppAndEndUserId |
500 | חובה למלא גם את השדה AppdId וגם את השדה EndUserId . |
שגיאות פריסה
יש לעיין בהודעה שדווחה בממשק המשתמש לקבלת מידע על שגיאות פריסה.
משתני כשל
המשתנים האלה מוגדרים כשהמדיניות הזו גורמת לשגיאה בזמן הריצה.
משתנים | איפה | דוגמה |
---|---|---|
fault.name="fault_name" |
fault_name הוא שם השגיאה, כפי שמצוין בטבלה שגיאות זמן ריצה שלמעלה. שם השגיאה הוא החלק האחרון בקוד השגיאה. | fault.name Matches "IPDeniedAccess" |
oauthV2.policy_name.failed |
policy_name הוא השם שצוין על ידי המשתמש של המדיניות שגרמה לבעיה. | oauthV2.GetTokenInfo.failed = true |
oauthV2.policy_name.fault.name |
policy_name הוא השם שצוין על ידי המשתמש של המדיניות שגרמה לבעיה. | oauthV2.GetToKenInfo.fault.name = invalid_client-invalid_client_id |
oauthV2.policy_name.fault.cause |
policy_name הוא השם שצוין על ידי המשתמש של המדיניות שגרמה לבעיה. | oauthV2.GetTokenInfo.cause = ClientID is Invalid |
דוגמה לתגובת שגיאה
{ "fault":{ "faultstring":"Timestamp is in the future.", "detail":{ "errorcode":"steps.oauth.v2.InvalidFutureTimestamp" } } }
דוגמה לכלל שגוי
<FaultRule name="RevokeOAuthV2 Faults"> <Step> <Name>AM-InvalidTimestamp</Name> </Step> <Condition>(fault.name = "InvalidFutureTimestamp")</Condition> </FaultRule>