אתם צופים במסמכי התיעוד של Apigee Edge.
כדאי לעיין במסמכי התיעוד של Apigee X. מידע
מידע על מטא-נתונים של טוקנים
Apigee Edge יוצר אסימוני גישה מסוג OAuth, טוקנים לרענון וקודי הרשאה, ומקצה אותם לאפליקציות מאומתות. בזמן היצירה, Edge שומר את הטוקנים והקודים האלה. בהמשך, כש-Edge מקבל בקשות API נכנסות עם האסימונים או הקודים האלה, הוא משתמש במידע המאוחסן כדי לאשר את הבקשות.
כש-Edge יוצר את הארטיפקטים האלה של OAuth, הוא גם מצרף מטא-נתונים לאסימון או לקוד. לדוגמה, טוקן גישה משויך לזוגות של שם/ערך שמגדירים את זמן התפוגה, את האפליקציה והמפתח המשויכים ופרטים נוספים.
ייצוג JSON של אסימון גישה ל-Edge נראה כך:
{ "issued_at" : "1372170159093", "application_name" : "ccd1803b-b557-4520-bd62-ddd3abf8e501", "scope" : "READ", "status" : "approved", "api_product_list" : "[Product1,Product2]", "api_product_list_json" : ["Product1", "Product2"], "expires_in" : "3599", //--in seconds "developer.email" : "joe@weathersample.com", "organization_id" : "0", "refresh_token" : "82XMXgDyHTpFyXOaApj8C2AGIPnN2IZe", "client_id" : "deAVedE0W9Z9U35PAMaAJYphBJCGdrND", "access_token" : "shTUmeI1geSKin0TODcGLXBNe9vp", "organization_name" : "apifactory", "refresh_count" : "0" }
הוספת מאפיינים מותאמים אישית לטוקנים של OAuth
לפעמים כדאי לצרף מטא-נתונים מותאמים אישית לאסימון גישה. לדוגמה, יכול להיות שתרצו להוסיף לטוקן שם משתמש, חברות בקבוצה או תפקידים של משתמש, מזהה לקוח, מזהה סשן או מידע שרירותי אחר. ב-Apigee Edge, הנתונים האלה נקראים 'מאפיינים מותאמים אישית'. לאחר מכן, כשהאסימון מאומת במסגרת בקשת API, הנתונים האלה זמינים ל-proxy ל-API באמצעות משתני הקשר. פרוקסי של API יכול לקבל החלטות לגבי הרשאה או ניתוב ברמת פירוט גבוהה על סמך הנתונים המותאמים אישית שמצורפים לאסימון.
כדי לצרף נתונים שרירותיים לטוקן, משתמשים ברכיב <Attributes> במדיניות OAuthV2. אפשר לציין את השם של המאפיין המותאם אישית ואת הערך שהוא צריך לקבל. לדוגמה, הנה הגדרת מדיניות שיוצרת אסימון ומצרפת אליו מאפיין מותאם אישית בשם tenant_list:
<OAuthV2 name="GenerateAccessToken"> <Operation>GenerateAccessToken</Operation> <ExpiresIn>600000</ExpiresIn> <GenerateResponse /> <SupportedGrantTypes> <GrantType>client_credentials</GrantType> </SupportedGrantTypes> <GrantType>request.queryparam.grant_type</GrantType> <Attributes> <Attribute name="tenant_list" ref="tenant_list_retrieved_from_external_service" display="false"/> </Attributes> </OAuthV2>
אפשר לציין כמה מאפיינים מותאמים אישית, ולצרף אותם באופן משתמע לקוד הרשאה (<Operation>GenerateAuthorizationCode</Operation>) או לטוקן (<Operation>GenerateAccessToken</Operation>) בזמן היצירה.
כשהערך של display מוגדר ל-true (ברירת המחדל), מאפיינים מותאמים אישית מוחזרים בתגובה, והאפליקציה יכולה להציג אותם או להעביר אותם למשתמש הקצה.
אם הערך של display מוגדר ל-false, המאפיינים המותאמים אישית מאוחסנים במאגר הנתונים, אבל לא מוחזרים בהודעת התגובה. בכל מקרה, הנתונים המותאמים אישית זמינים למדיניות ב-API Proxy אחרי שהטוקן מאומת.
מידע נוסף על האפשרות display
הצגה או הסתרה של מאפיינים מותאמים אישית בתגובה
קבלת מאפיינים מותאמים אישית בזמן ריצה
כשיש קריאה אל OAuthV2/VerifyAccessToken,
מערכת Apigee Edge מאמתת את הטוקן על ידי חיפוש שלו במאגר הטוקנים. לאחר מכן, המערכת של Apigee Edge מאכלסת קבוצה של משתני הקשר שמכילים מידע על האסימון. למשל:
- organization_name
- developer.id
- developer.app.name
- client_id
- grant_type
- token_type
- access_token
- issued_at
- expires_in //--in seconds
- status
- היקף
- apiproduct.name*
אם יש אסימון עם מאפיינים מותאמים אישית, המאפיינים האלה יהיו זמינים במשתנה הקשר עם השם accesstoken.{custom_attribute}. לדוגמה,
נניח שאסימון מונפק מהמדיניות שמוצגת למעלה. אחרי אימות של טוקן כזה, יתווסף משתנה הקשר בשם accesstoken.tenant_list, שמכיל את הערך שנשמר בזמן יצירת הטוקן.
אחר כך אפשר להפנות למשתנים האלה במדיניות או בתנאים ולשנות את ההתנהגות בהתאם לערכים שמאוחסנים בהם.
הגדרה ועדכון של מאפיינים מותאמים אישית בזמן ריצה
במקרים מסוימים, תרצו ש-API Proxy יעודכן במטא-נתונים שמשויכים לטוקן גישה בזמן ריצה, בזמן שמתבצע עיבוד של קריאה ל-API ב-Apigee Edge. כדי לעזור בכך, Apigee מספק מדיניות לקבלת מאפייני טוקן ולהגדרתם. מידע נוסף זמין במאמרים בנושא מדיניות בנושא קבלת מידע על OAuth V2 ומדיניות בנושא הגדרת מידע על OAuth V2.
AccessToken צריך להתייחס למשתנה שמכיל את אסימון הגישה.
אפשר גם להשתמש ב-Edge APIs כדי לעדכן את המאפיינים המותאמים אישית שמצורפים לטוקן. אפשר לעיין במסמכי ה-API של השיטה Update OAuth 2.0 Access Token.