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

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

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

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

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

הגדרת כמה כתובות URI להפניה אוטומטית

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

לדוגמה:

https://mydomain.com/authorize?\
client_id=123456&\
response_type=code&\
redirect_uri=https%3A%2F%2Fmydomain.com%2Fcallback&scope=scope1%20scope2&state=abc

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

  • https://mydomain.com/callback
  • https://mydomain.uk/callback
  • https://mydomain.ja/callback

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

https://mydomain.com/callback,https://mydomain.uk/callback,https://mydomain.ja/callback

הערה: בבקשת /authorize צריך להיות רק URI אחד בפרמטר redirect_uri. הבקשה תצליח אם ה-URI של ההפניה האוטומטית תואם לאחד מכתובות ה-URI שצוינו בשדה כתובת URL של קריאה חוזרת בממשק המשתמש של אפליקציית המפתחים.

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

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

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

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

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

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

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

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