התאמה אישית של אסימונים וקודי הרשאות

כרגע מוצג התיעוד של 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 באמצעות משתני הקשר. שרת 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, מאפיינים מותאמים אישית מאוחסנים במאגר הנתונים, אבל לא מוחזרים בהודעת התשובה. בכל מקרה, הנתונים המותאמים אישית זמינים למדיניות בתוך שרת ה-proxy של ה-API, לאחר אימות האסימון.

מידע נוסף על האפשרות display הצגה או הסתרה של מאפיינים מותאמים אישית בתשובה.

קבלת מאפיינים מותאמים אישית בזמן הריצה

כשיש קריאה ל-OAuthV2/VerifyAccessToken, Apigee Edge מאמת את האסימון על ידי חיפושו במאגר האסימונים. לאחר מכן, הכלי Apigee Edge מאכלס קבוצה של משתני הקשר שמכילים מידע על האסימון. האפשרויות הן:

  • organization_name
  • developer.id
  • developer.app.name
  • client_id
  • grant_type
  • token_type
  • access_token
  • issued_at
  • תפוגה_in //--in שניות
  • status
  • היקף
  • apiproduct.name*

אם יש מאפיינים מותאמים אישית באסימון, המאפיינים המותאמים אישית הופכים לזמינים במשתנה הקשר בשם accesstoken.{custom_attribute}. לדוגמה, נניח שהאסימון הונפק מהמדיניות שמוצגת למעלה. אחרי אימות האסימון, יהיה משתנה הקשר נוסף בשם accesstoken.tenant_list, שמכיל את הערך שנשמר בזמן יצירת האסימון.

לאחר מכן כללי המדיניות או התנאים יכולים להתייחס למשתנים האלה ולשנות את ההתנהגות על סמך הערכים ששמורים בהם.

הגדרה ועדכון של מאפיינים מותאמים אישית בזמן ריצה

במצבים מסוימים, כדאי ששרת ה-Proxy ל-API יעדכן את המטא-נתונים המשויכים לאסימון הגישה בזמן הריצה, בזמן שמתבצע עיבוד של קריאה ל-API ב-Apigee Edge. כדי לעזור בכך, Apigee מספקת כללי מדיניות לגבי קבלה והגדרה של מאפייני אסימונים. למידע נוסף, תוכלו לקרוא את המאמר קבלת מדיניות מידע על OAuth V2 והגדרת מדיניות מידע על OAuth V2.

בכל אחד מכללי המדיניות האלה, הרכיב AccessToken צריך להפנות למשתנה שמכיל את אסימון הגישה.

אפשר גם להשתמש בממשקי API של Edge כדי לעדכן את המאפיינים המותאמים אישית שמצורפים לאסימון. במסמכי התיעוד בנושא API מוסבר איך עדכון אסימון גישה מסוג OAuth 2.0.