אנטי-תבנית: הגדרת זמן תפוגה ארוך לטוקנים של OAuth

אתם צופים במסמכי התיעוד של Apigee Edge.
כדאי לעיין במסמכי התיעוד של Apigee X.
מידע

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

מפתחים יכולים להשתמש ב-Apigee Edge כדי ליצור אסימוני גישה או אסימוני רענון, באמצעות הטמעה של אחד מארבעת סוגי ההרשאות ב-OAuth2 – פרטי כניסה של לקוחות, סיסמה, משתמעת וקוד הרשאה – באמצעות מדיניות 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 ימים, ולכן הם נשמרים במאגר הנתונים (Cassandra) למשך זמן רב, מה שמוביל להצטברות מתמשכת.

השפעה

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

שיטה מומלצת

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

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

כך מוודאים ש:

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

קריאה נוספת