הדף הזה רלוונטי ל-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 צריך להתייחס למשתנה שמכיל את אסימון הגישה.