עיצוב נגדי: הגדרת זמן תפוגה ארוך לאסימוני OAuth

מוצג המסמך של Apigee Edge.
עוברים אל מסמכי תיעוד של Apigee X.
מידע

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

Apigee Edge מאפשרת למפתחים ליצור אסימוני גישה ו/או רענון על ידי הטמעת כל אחד ארבעת סוגי ההרשאות של OAuth2 – פרטי כניסה של לקוח, password, משתמע, וגם קוד הרשאה - שימוש במדיניות OAuthv2. אפליקציות לקוח משתמשות באסימוני גישה כדי לצרוך ממשקי API מאובטחים. לכל אסימון גישה יש תאריך תפוגה משלו זמן, שניתן להגדיר במדיניות OAuthv2.

אסימוני רענון מונפקים באופן אופציונלי יחד עם אסימוני גישה עם חלק מסוגי הענקות. רענון אסימוני גישה חדשים ותקפים משמשים לקבלת אסימוני גישה חדשים ותקפים לאחר שפג תוקפו של אסימון הגישה המקורי, או בוטלו. אפשר להגדיר את מועד התפוגה לאסימוני רענון גם במדיניות OAuthv2.

נגד דוגמת עיצוב

הגדרת זמן תפוגה ארוך לאסימון גישה ו/או אסימון רענון במדיניות OAuthv2 מובילה לצבירת אסימוני OAuth ולשימוש מוגבר בשטח האחסון בצמתים של Cassandra.

בדוגמה הבאה למדיניות OAuthV2 מוצג זמן תפוגה ארוך של 200 ימים לאסימוני רענון:

<OAuthV2 name="GenerateAccessToken">
    <Operation>GenerateAccessToken</Operation>
    <ExpiresIn>1800000</ExpiresIn> <!-- 30 minutes -->
    <RefreshTokenExpiresIn>17280000000</RefreshTokenExpiresIn> <!-- 200 days -->
    <SupportedGrantTypes>
      <GrantType>password</GrantType>
    </SupportedGrantTypes>
    <GenerateResponse enabled="true"/>
</OAuthV2>

בדוגמה שלמעלה:

  • אסימון הגישה מוגדר עם זמן תפוגה נמוך יחסית של 30 דקות.
  • אסימון הרענון מוגדר עם זמן תפוגה ארוך מאוד של 200 ימים.
  • אם התנועה ל-API הזה היא 10 בקשות לשנייה, הוא יכול ליצור עד 864,000 אסימונים בעוד יום.
  • התוקף של אסימוני הרענון פג רק אחרי 200 יום, ולכן הם נשארים במאגר הנתונים (קסנדרה) למשך זמן רב שמוביל לצבירה מתמשכת.

השפעה

  • מוביל לעלייה משמעותית בשימוש בנפח הדיסק במאגר הנתונים (קסנדרה).
  • עבור משתמשי ענן פרטי, זה עלול להגדיל את עלויות האחסון, או במקרה הגרוע ביותר, הדיסק עלול להתמלא ולגרום לשגיאות זמן ריצה או להפסקה זמנית בשירות.

שיטה מומלצת

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

צריך להגדיר את זמן התפוגה של אסימוני הרענון באופן שיהיה בתוקף למשך תקופה ארוכה יותר מאשר אסימוני הגישה. לדוגמה, אם הגדרתם 30 דקות לאסימון גישה ולאחר מכן הגדרתם 60 דקות אסימון הרענון.

כך אפשר לוודא ש:

  • יש מספיק זמן להשתמש באסימון רענון כדי ליצור אסימוני גישה ורענון חדשים אחרי פג התוקף של אסימון הגישה.
  • התוקף של אסימוני הרענון יפוג מעט מאוחר יותר, והם עשויים להימחק לצמיתות בתוך זמן קצר, להימנע מהצטברות.

קריאה נוספת