הדף הזה רלוונטי ל-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 באמצעות משתני הקשר. proxy ל-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_at-
expires_in//--בשניות statusscopeapiproduct.name*
אם יש אסימון עם מאפיינים מותאמים אישית, המאפיינים האלה יהיו זמינים במשתנה הקשר עם השם accesstoken.{custom_attribute}. לדוגמה,
נניח שאסימון מונפק מהמדיניות שמוצגת למעלה. אחרי אימות של טוקן כזה, יתווסף משתנה הקשר בשם accesstoken.tenant_list, שמכיל את הערך שנשמר בזמן יצירת הטוקן.
אחר כך אפשר להפנות למשתנים האלה במדיניות או בתנאים ולשנות את ההתנהגות בהתאם לערכים שמאוחסנים בהם.
הגדרה ועדכון של מאפיינים מותאמים אישית בזמן ריצה
במקרים מסוימים, תרצו ש-API Proxy יעודכן את המטא-נתונים שמשויכים לטוקן גישה בזמן ריצה, בזמן שקריאה ל-API מעובדת ב-Apigee. כדי לעזור בכך, Apigee מספק מדיניות לקבלת מאפייני טוקן ולהגדרתם. מידע נוסף זמין במאמרים בנושא מדיניות בנושא קבלת מידע על OAuth V2 ומדיניות בנושא הגדרת מידע על OAuth V2.
בכל אחת מהמדיניות האלה, האלמנט AccessToken צריך להתייחס למשתנה שמכיל את אסימון הגישה.