מוצג המסמך של Apigee Edge.
עוברים אל
מסמכי תיעוד של Apigee X. מידע
Apigee Edge מספקת את המסגרת של OAuth 2.0 כדי ממשקי API מאובטחים. OAuth2 הוא אחד מאמצעי האימות הפופולריים ביותר שמבוססים על אסימונים ותקן פתוח הונאות הרשאה. הוא מאפשר לאפליקציות לקוח לגשת לממשקי API בשם משתמשים מבלי דרישה מהמשתמשים לחשוף את שם המשתמש והסיסמה שלהם.
Apigee Edge מאפשרת למפתחים ליצור אסימוני גישה ו/או רענון על ידי הטמעת כל אחד ארבעת סוגי ההרשאות של OAuth2 – פרטי כניסה של לקוח, password, משתמע, וגם קוד הרשאה - שימוש במדיניות OAuthv2. אפליקציות לקוח משתמשות באסימוני גישה כדי לצרוך ממשקי API מאובטחים. לכל אסימון גישה יש תאריך תפוגה משלו זמן, שניתן להגדיר במדיניות OAuthv2.
אסימוני רענון מונפקים באופן אופציונלי יחד עם אסימוני גישה עם חלק מסוגי הענקות. רענון אסימוני גישה חדשים ותקפים משמשים לקבלת אסימוני גישה חדשים ותקפים לאחר שפג תוקפו של אסימון הגישה המקורי, או בוטלו. אפשר להגדיר את זמן התפוגה לאסימוני רענון גם במדיניות OAuthv2.
אנטי-דפוס זה קשור לאנטי-דפוס הגדרת זמן תפוגה ארוך לאסימוני OAuth.
נגד דוגמת עיצוב
לא להגדיר זמן תפוגה לאסימון רענון במדיניות OAuthv2 מובילה לצבירת אסימוני OAuth ולשימוש מוגבר בשטח האחסון בצמתים של Cassandra.
בדוגמה הבאה של מדיניות OAuthV2 אפשר לראות הגדרה חסרה של
<RefreshTokenExpiresIn>
:
<OAuthV2 name="GenerateAccessToken"> <Operation>GenerateAccessToken</Operation> <ExpiresIn>1800000</ExpiresIn> <!-- 30 minutes --> <!--<RefreshTokenExpiresIn> is missing --> <SupportedGrantTypes> <GrantType>password</GrantType> </SupportedGrantTypes> <GenerateResponse enabled="true"/> </OAuthV2>
בדוגמה שלמעלה:
- אסימון הגישה מוגדר עם זמן תפוגה נמוך יחסית של 30 דקות.
- לא הוגדר תאריך התפוגה של אסימון הרענון.
- אסימון הרענון נשמר במאגר הנתונים (Cassandra) באופן סופי, וגורם לנתונים המצטברות.
- אפשר להשתמש באסימון רענון ללא הגבלת זמן כדי ליצור אסימוני גישה.
- אם התנועה ל-API הזה היא 10 בקשות לשנייה, הוא יכול ליצור עד 864,000 אסימונים בעוד יום.
השפעה
- אם אסימון הרענון נוצר ללא תאריך תפוגה, יש לכך שתי השלכות עיקריות:
- אפשר להשתמש באסימון הרענון בכל שלב בעתיד, גם למשך שנים, כדי לקבל גישה ב-Assistant. עשויות להיות לכך השלכות על האבטחה.
- השורה ב-Cassandra שמכילה את אסימון הרענון אף פעם לא תימחק. הפעולה הזו תגרום להצטברות נתונים ב-Cassandra.
- אם לא משתמשים באסימון הרענון כדי לקבל אסימון גישה חדש, אבל במקום זאת ליצור אסימון רענון ואסימון גישה חדש, אסימון הרענון הישן יותר יישאר ב-Cassandra. כתוצאה מכך, יש לרענן האסימונים ימשיכו להצטבר ב-Cassandra, ויוספו לBloat, שימוש מוגבר בדיסק ודחוסים גדולים יותר, ובסופו של דבר יגרמו לקריאה/לכתיבה. זמן האחזור בקסנדרה.
שיטה מומלצת
צריך לציין שזמן התפוגה של אסימוני הרענון וגם של אסימוני הגישה קצר מדי. צפייה שיטה מומלצת להגדרת תפוגה זמני רענון ואסימוני גישה. חשוב לציין הגדרת תפוגה לשתי הגישה ואסימון הרענון במדיניות. עיינו ב מסמכי מדיניות OAuthV2 לקבלת פרטים נוספים על הגדרת המדיניות.
שיטות מומלצות שמיועדות ספציפית ללקוחות Edge ללקוחות של ענן פרטי
הקטע מתאר שיטות מומלצות במיוחד ללקוחות Edge עבור ענן פרטי.
צריך לציין מועד תפוגה של אסימון רענון שיוגדר כברירת מחדל
כברירת מחדל, אם לא צוין תאריך תפוגה של אסימון רענון בהגדרות המדיניות, Edge יוצר אסימון רענון ללא תאריך תפוגה. אפשר לשנות את שיטת הפעולה הזאת על ידי יש לבצע את התהליך הבא:
- בצומת של עיבוד הודעות, עורכים או יוצרים את קובץ שינוי ההגדרות האישיות
$APIGEE_ROOT/customer/application/message-processor.properties
צריך לוודא שהקובץ הזה קריא על ידי המשתמשapigee
. - מוסיפים את השורה הבאה לקובץ:
הפעולה הזו תגדיר את מועד התפוגה של אסימון הרענון שמוגדר כברירת מחדל, אם לא צוין שום ערך במדיניות, לשעה אחת. אפשר לשנות את ערך ברירת המחדל בהתאם לצרכים של העסק.conf_keymanagement_oauth_refresh_token_expiry_time_in_millis=3600000
- מפעילים מחדש את שירות עיבוד ההודעות:
apigee-service edge-message-processor restart
- חוזרים על השלבים שלמעלה בכל הצמתים של מעבד ההודעות אחד אחרי השני.
שיטות מומלצות בקסנדרה
נסו לשדרג לגרסה העדכנית ביותר של Apigee שזמינה באופן ציבורי. Apigee ממשיכה כדי לפרסם תיקונים ושיפורים שממשיכים לשפר ולבצע אופטימיזציה של הניהול של אסימונים ב-Apigee. ב-Apigee, אסימוני הגישה והרענון מאוחסנים ב-Cassandra במרחב המקשים "kms". צריך לוודא שאסטרטגיית הדחיסה של מרחב המקשים מוגדר ל-LeveledCompactionStrategy
.
צריך לבדוק שהמדדים הבאים לא קיימים:
- KMS.oauth_20_access_tokens.oauth_20_access_tokens_organization_name_idx#f0f0f0 ו
- kms.oauth_20_access_tokens.oauth_20_access_tokens_status_idx
אפשר גם לצמצם
gc_grace_seconds
בטבלה kms.oauth_20_access_tokens
מברירת המחדל של 10 ימים
ערך (למשל 3 ימים) כדי לוודא שהמצבות שנוצרו בעקבות אסימונים שנמחקו
יימחקו ממאגר הנתונים מהר יותר.