נושאים מתקדמים בנושא OAuth 2.0

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

שימוש בטוקנים של OAuth של צד שלישי

שימוש באסימוני OAuth של צד שלישי

הגדרת כמה כתובות URL לקריאה חוזרת (callback)

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

לדוגמה:

http://myorg-test.apigee.net/weather/oauth/authorizationcode?client_id=123456&response_type=code&redirect_uri=http://example.com/callback&scope=scope1%20scope2&state=abc

יש תרחיש שימוש שבו צריך לציין כמה כתובות URL של קריאה חוזרת באפליקציית proxy אחת. לדוגמה, יכול להיות שתרצו לבצע אימות של כמה דומיינים. לדוגמה:

  • http://myexample.com/callback
  • http://myexample.uk/callback
  • http://myexample.ja/callback

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

שינוי התנהגות ברירת המחדל של פעולת GenerateAuthCode

כברירת מחדל, הפעולה GenerateAuthCode של מדיניות OAuthV2 מחזירה הפניה אוטומטית מסוג 302 לכתובת ה-URL של הקריאה החוזרת עם פרמטר השאילתה ?code שמכיל את קוד ההרשאה.

במקרים מסוימים, יכול להיות שתרצו לשנות את ההתנהגות הזו. לדוגמה, יכול להיות שתרצו להחזיר תגובה מסוג 200 עם JSON מובנה שמכיל את הקוד.

דרך אחת להשיג את התוצאה הרצויה בתרחיש השימוש הזה היא להגדיר את המאפיין GenerateResponse של מדיניות OAuthV2 לערך false. משתמשים במדיניות ExtractVariable כדי לקבל את הערך של קוד ההרשאה מהמשתנה oauthv2authcode.{policy_name}.code. אחר כך אפשר להשתמש במדיניות AssignMessage כדי להחזיר את הקוד במטען ייעודי (payload) של JSON עם סטטוס 200.

ביקורת על הסכמת משתמשי קצה באפליקציה

יכול להיות שתצטרכו לאמת שמשתמש קצה באפליקציה נתן הרשאה לאפליקציה. כדי לעשות זאת, תוכלו להשתמש ב-Audit API של Apigee Edge.

דוגמה ל-OAuth יוצא

אפשר לעיין בדוגמה outbound-oauth במאגר api-platform-samples של Apigee ב-GitHub. אפשר לשכפל את הדוגמה, לפרוס אותה ולהפעיל אותה. בדוגמה הזו נעשה שימוש ב-Microsoft Azure translator API כדי לתרגם ציוצים. לשם כך, הוא מבצע קריאה יוצאת כדי לקבל אסימון גישה ל-OAuth, ואז שומר את האסימון במטמון באמצעות מדיניות השמירה במטמון של API Services, ומשתמש מחדש באסימון השמור במטמון בכל פעם שמתבצעת קריאה יוצאת. בנוסף, כולל אפליקציית דפדפן להדגמה שמשמשת להפעלת ה-proxy ל-API.