הדף הזה רלוונטי ל-Apigee ול-Apigee Hybrid.
לעיון במסמכי התיעוד של Apigee Edge
Apigee מספקת קבוצה של כלים וכללי מדיניות שמאפשרים להטמיע אימות מבוסס-אסימונים של OAuth 2.0 כדי לאבטח את ממשקי ה-API. OAuth2, שמתואר ב- IETF RFC 6749, הוא התקן הפתוח הנפוץ ביותר לאימות ולהרשאה של ממשקי API. הוא מגדיר את האסימון כפרטי כניסה בפורמט סטנדרטי שאפליקציות לקוח שולחות להטמעות של API. הטמעת ה-API יכולה לאמת את הטוקן כדי לקבוע אם ללקוח יש הרשאה לגשת ל-API.
Apigee מאפשרת למפתחים ליצור אסימוני גישה או רענון על ידי הטמעה של אחד מארבעת סוגי ההרשאות ב-OAuth2 – פרטי כניסה של לקוחות, סיסמה, משתמע וקוד הרשאה – באמצעות מדיניות OAuthv2. בנוסף, מפתחי API יכולים להשתמש ב-Apigee כדי להטמיע הרשאות מותאמות אישית, כולל הרשאות לפי התבנית של החלפת אסימונים, כפי שמתואר ב-IETF RFC 8693. אפליקציות לקוח משתמשות באסימוני גישה כדי לצרוך ממשקי API מאובטחים. לכל אסימון גישה יש זמן תפוגה משלו, שאפשר להגדיר במדיניות OAuthv2.
אפשר להגדיר את Apigee כך שיפיק ויחזיר טוקן לרענון יחד עם טוקן הגישה, עם חלק מסוגי ההרשאות. לקוח משתמש באסימון רענון כדי לקבל אסימון גישה חדש אחרי שאסימון הגישה המקורי בוטל או פג תוקפו. אפשר להגדיר את מועד התפוגה של טוקן הרענון גם במדיניות OAuthv2.
תבנית אנטי
הגדרת זמן תפוגה ארוך לטוקן גישה או לטוקן רענון במדיניות OAuthv2 מובילה לחלון רחב יותר של נקודת חולשה במקרה של דליפת טוקן, וזה מייצג סיכון אבטחה. בנוסף, זה עלול להוביל להצטברות של טוקנים של OAuth בחנות הקבועה, מה שעלול לגרום לירידה בביצועים לאורך זמן.
דוגמה 1
בדוגמה הבאה של מדיניות OAuthV2 מוצג זמן תפוגה ארוך של 10 ימים לאסימוני הגישה:
<OAuthV2 name="OAuth-GenerateAccessToken">
<Operation>GenerateAccessToken</Operation>
<ExpiresIn>864000000</ExpiresIn> <!-- 10 days -->
<RefreshTokenExpiresIn>864000000</RefreshTokenExpiresIn> <!-- 10 days -->
<SupportedGrantTypes>
<GrantType>authorization_code</GrantType>
</SupportedGrantTypes>
<GenerateResponse enabled="true"/>
</OAuthV2>בדוגמה שלמעלה:
- משך החיים של אסימון הגישה מוגדר ל-10 ימים.
- גם משך החיים של טוקן הרענון מוגדר ל-10 ימים.
השפעה
טוקנים לטווח ארוך של גישה מייצגים סיכון אבטחה. במקרה של דליפה או אובדן של טוקן, טוקן לטווח קצר יפוג באופן טבעי ולא יהיה שימושי יותר, בעוד שטוקן לטווח ארוך ימשיך להעניק גישה ל-API למשך תקופה ארוכה יותר, וכך יגדיל את חלון הפגיעות.
התוקף של טוקן גישה צריך להיות קצר, בדרך כלל כ-30 דקות או פחות, והתוקף הזה צריך להיות קצר משמעותית מהתוקף של טוקן הרענון.
דוגמה 2
בדוגמה הבאה של מדיניות OAuthV2 מוצג זמן תפוגה ארוך של 200 ימים לאסימוני רענון:
<OAuthV2 name="OAuth-GenerateAccessToken">
<Operation>GenerateAccessToken</Operation>
<ExpiresIn>1800000</ExpiresIn> <!-- 30 minutes -->
<RefreshTokenExpiresIn>17280000000</RefreshTokenExpiresIn> <!-- 200 days -->
<SupportedGrantTypes>
<GrantType>authorization_code</GrantType>
</SupportedGrantTypes>
<GenerateResponse enabled="true"/>
</OAuthV2>בדוגמה שלמעלה:
- אסימון הגישה מוגדר עם זמן תפוגה קצר וסביר של 30 דקות.
- התוקף של טוקן הרענון הוא ארוך מאוד – 200 ימים.
- אם התנועה ל-API הזה היא 10 בקשות לשנייה, הוא יכול ליצור עד 864,000 אסימונים ביום.
- תוקף של טוקנים לרענון יפוג אחרי 200 ימים. הם יצטברו במאגר הנתונים למשך כל משך החיים שלהם.
השפעה
תוקף ארוך של טוקן לרענון עלול להוביל לירידה בביצועים לאורך זמן, כי יצטבר מספר גדול של טוקנים במאגר הנתונים. ב-Apigee hybrid, הצטברות מוגזמת של טוקנים עשויה גם לתרום לניצול מלא של נפח האחסון בשכבת ההתמדה.
שיטה מומלצת
כדי לצמצם את חלון הפגיעות של טוקנים שנחשפו ולמנוע הצטברות של טוקנים במאגר הנתונים, כדאי להשתמש בזמן תפוגה לטוקנים של גישה ורענון ב-OAuth שמתאים לדרישות האבטחה הספציפיות שלכם. נקודת התחלה טובה למשך החיים של אסימון גישה היא 30 דקות, ולמשך החיים של אסימון רענון היא 24 שעות.
צריך להגדיר את מועד התפוגה של אסימוני הרענון כך שיהיה תקף למשך זמן שהוא כפולה של משך החיים של אסימוני הגישה. לדוגמה, אם מגדירים 30 דקות לאסימון הגישה, צריך להגדיר את משך החיים של אסימון הרענון ל-24 שעות, ל-7 ימים או לכל משך זמן אחר שמתאים לחוויית המשתמש שאתם רוצים לתמוך בה.