הדף הזה רלוונטי ל-Apigee ול-Apigee Hybrid.
לעיון במסמכי התיעוד של
Apigee Edge
מידע על מטא-נתונים של טוקנים וקודי הרשאה
Apigee יוצרת אסימוני גישה, אסימוני רענון וקודי הרשאה של OAuth, ומקצה אותם לאפליקציות מאומתות. בזמן היצירה, Apigee שומרת את האסימונים והקודים האלה. בהמשך, כש-Apigee מקבלת בקשות API נכנסות שכוללות את האסימונים או הקודים האלה, היא משתמשת במידע השמור כדי לאשר את הבקשות.
כש-Apigee יוצרת את הארטיפקטים האלה של OAuth, היא גם מצרפת מטא-נתונים לטוקן או לקוד. לדוגמה, טוקן גישה משויך לצמדי שם/ערך שמגדירים את זמן התפוגה, את האפליקציה והמפתח המשויכים ומידע נוסף.
ייצוג ה-JSON של אסימון גישה של Apigee נראה כך:
{ "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, הנתונים האלה נקראים 'מאפיינים מותאמים אישית'. לאחר מכן, כשהאסימון מאומת במסגרת בקשת 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 מאמת את הטוקן על ידי חיפוש שלו במאגר הטוקנים. לאחר מכן, Apigee מאכלס קבוצה של משתני הקשר שמכילים מידע על האסימון. למשל:
organization_namedeveloper.iddeveloper.app.nameclient_idgrant_typetoken_typeaccess_tokenissued_atexpires_in//--בשניותstatusscopeapiproduct.name*
אם יש אסימון עם מאפיינים מותאמים אישית, המאפיינים האלה יהיו זמינים במשתנה הקשר עם השם accesstoken.{custom_attribute}. לדוגמה,
נניח שאסימון מונפק מהמדיניות שמוצגת למעלה. אחרי אימות של טוקן כזה, יתווסף משתנה הקשר בשם accesstoken.tenant_list, שמכיל את הערך שנשמר בזמן יצירת הטוקן.
אחר כך אפשר להפנות למשתנים האלה במדיניות או בתנאים ולשנות את ההתנהגות בהתאם לערכים שמאוחסנים בהם.
הגדרה ועדכון של מאפיינים מותאמים אישית בזמן ריצה
במקרים מסוימים, תרצו ש-API Proxy יעודכן במטא-נתונים שמשויכים לטוקן גישה בזמן ריצה, בזמן שמתבצע עיבוד של קריאה ל-API ב-Apigee. כדי לעזור בכך, Apigee מספק מדיניות לקבלת מאפייני טוקן ולהגדרתם. מידע נוסף זמין במאמרים בנושא מדיניות בנושא קבלת מידע על OAuth V2 ומדיניות בנושא הגדרת מידע על OAuth V2.
בכל אחת מהמדיניות האלה, האלמנט AccessToken צריך להתייחס למשתנה שמכיל את אסימון הגישה.