הדף הזה רלוונטי ל-Apigee ול-Apigee Hybrid.
לעיון במסמכי התיעוד של
Apigee Edge
זיהוי מדויק של כתובת ה-IP של הלקוח בבקשות API חשוב לחלק מהפונקציות ב-Apigee, כולל התכונות Analytics ו-Advanced API Security, כמו זיהוי שימוש לרעה ופעולות אבטחה.
תהליך הזיהוי של כתובת ה-IP של הלקוח הוא מורכב בארכיטקטורות רשת מודרניות שמשתמשות בשרתי proxy ובמאזני עומסים, כי המתווכים האלה יכולים להסתיר את כתובת ה-IP האמיתית שממנה מגיע הלקוח.
כדי להתמודד עם האתגר הזה, ב-Apigee יש הגדרה ברמת הסביבה שמציינת איך לפתור את כתובת ה-IP של הלקוח מכותרת שצוינה. הכותרת יכולה להיות כל כותרת, כמו X-Forwarded-For או True-Client-Ip. ההגדרה מציינת את האינדקס בכותרת שתואם לכתובת ה-IP של טופולוגיית הרשת ודרישות האבטחה שלכם. ההגדרה הזו מספקת נראות, עקביות ושליטה על האופן שבו נקבעות כתובות ה-IP של הלקוחות לכל הבקשות בסביבה, ומאפשרת זיהוי עקבי של כתובות ה-IP של הלקוחות ב-Advanced API Security, במשתני זרימה ובמשתני ניתוח נתונים בסביבה.
אם לא מוגדרת רזולוציית כתובת IP של לקוח ברמת הסביבה, או אם הכותרת המוגדרת לא קיימת או לא מכילה כתובת IP באינדקס שצוין, משתני כתובת ה-IP של הלקוח מאוכלסים באמצעות התנהגות ברירת המחדל של רזולוציית כתובת ה-IP של הלקוח.
הגדרת ברירת מחדל של זיהוי כתובת ה-IP של הלקוח
אם לא מוגדרת רזולוציה של כתובת ה-IP של הלקוח ברמת הסביבה, ערך ברירת המחדל של המאפיין ax_resolved_client_ip מחושב כמו שמתואר במאמר מאפייני Analytics.
אם הגדרתם את התכונה 'פירוש כתובת ה-IP של הלקוח' מופעלת בסביבה מסוימת, המשתנים של התהליך ושל Analytics מוגדרים לפי ההגדרה של פירוש כתובת ה-IP של הלקוח. מידע נוסף זמין במאמר בנושא הגדרת רזולוציית כתובת ה-IP של הלקוח בסביבה.
מתי צריך להגדיר את ההמרה של כתובת ה-IP של הלקוח בסביבה
אף על פי שלא חובה להגדיר את ההמרה של כתובת ה-IP של הלקוח, כדאי לעשות זאת אם ההמרה שמוגדרת כברירת מחדל לא עונה על הצרכים שלכם, ואתם רוצים לשנות אותה כדי לספק המרה ספציפית של כתובת ה-IP של הלקוח ל-Analytics, ל-Advanced API Security או לביצוע כל פונקציה אחרת שדורשת מידע עקבי ומהימן על כתובות ה-IP של הלקוחות.
הסבר על תחביר הגדרת ההמרה של כתובת ה-IP של הלקוח
הפורמט של הגדרת ההחלטה לגבי כתובת ה-IP של הלקוח הוא:
"clientIpResolutionConfig": {
"headerIndexAlgorithm": {
"ipHeaderName" : "X-Forwarded-For",
"ipHeaderIndex": 2
}
}בדוגמה הבאה השתמשנו בכותרת True-Client-Ip:
"clientIpResolutionConfig": {
"headerIndexAlgorithm": {
"ipHeaderName" : "True-Client-Ip",
"ipHeaderIndex": 0
}
}-
ipHeaderNameהיא הכותרת שבה צריך להשתמש בשביל כתובת ה-IP של הלקוח. לדוגמה,X-Forwarded-ForאוTrue-Client-Ip. -
ipHeaderIndexהוא ערך האינדקס בתוךipHeaderName.
מספר חיובי בוחר כתובת החל מהצד הימני (הכתובת הראשונה שנוספה לכותרת), כאשר המיקום הראשון מימין הוא0והמספר עולה ב-1 עבור כל כתובת עוקבת (לדוגמה,0, 1, 2). לדוגמה, אם הרשימה היא192.0.2.1, 192.0.2.2, 192.0.2.3, אינדקס של1יחזיר את192.0.2.2.
מספר שלילי בוחר כתובת שמתחילה מימין (הכתובת האחרונה שנוספה לכותרת), כאשר המיקום הראשון מימין הוא-1, וכל כתובת עוקבת מקבלת מספר קטן יותר ב-1 (לדוגמה,-3, -2, -1). לדוגמה, אם הרשימה היא192.0.2.1, 192.0.2.2, 192.0.2.3, 192.0.2.4, אינדקס של-1יחזיר את192.0.2.4, ואינדקס של-2יחזיר את192.0.2.3.
מידע נוסף על ההגדרה הזו זמין במאמר בנושא organizations.environment API.
הצגת ההגדרות של פתרון כתובות IP של לקוחות
אפשר לראות את ההגדרה הנוכחית של רזולוציית כתובות ה-IP של הלקוח בסביבה באמצעות ממשק המשתמש של Apigee או ממשקי הניהול של Apigee.
הצגת הגדרת ההמרה של כתובת ה-IP של הלקוח באמצעות ממשק המשתמש
כדי לראות את הגדרת ההמרה של כתובת ה-IP של הלקוח:
במסוף Google Cloud , עוברים לדף Apigee > Management > Environments.
-
בוחרים את הסביבה ורואים את הגדרת ה-IP של הלקוח בכרטיסייה מידע על הערוץ.
הצגת הגדרת ההמרה של כתובת ה-IP של הלקוח באמצעות ה-API
כדי להשתמש ב-Apigee Management APIs כדי להציג את ההגדרה של רזולוציית כתובות ה-IP של הלקוח, שולחים בקשה אל organizations.environments.get API.
הגדרת רזולוציית כתובת IP של לקוח בסביבה
אחרי שמגדירים את התצורה של זיהוי כתובת ה-IP של הלקוח בסביבה, משתנה הזרימה client.resolved.ip מתמלא באמצעות האלגוריתם שצוין. כך גם Resolved Client IP המאפיין Analytics.
אחרי שמגדירים את ההגדרה של זיהוי כתובת ה-IP של הלקוח בסביבה מסוימת, השינויים עשויים להשפיע על הגדרות קיימות של Advanced API Security עבור כללי פעולות אבטחה. בודקים את הכללים הקיימים, ואם צריך, יוצרים אותם מחדש כדי להשתמש במשתנים ובהגדרות החדשים.
חשוב לזכור את ההשלכות האלה כשבוחרים את האינדקס לפתרון של כתובת ה-IP של הלקוח:
- קריאות מ-Apigee אל Apigee לא מטופלות כמקרה מיוחד. חשוב לשים לב למספר כתובות ה-IP ולדלג על המספר הזה.
- מכיוון שאפשר לזייף את הכותרת X-Forwarded-For, עדיף להשתמש באינדקס הנכון על סמך מספר הצעדים הצפויים בין הלקוח למאזן העומסים של Apigee. משתמש זדוני יכול לשלוח כותרת X-Forwarded-For שמולאה מראש. כתובת ה-IP הראשונה ב-XFF הכי קרובה לכתובת ה-IP האמיתית של הלקוח, אבל כתובת ה-IP האחרונה ב-XFF היא הכי מהימנה, כי מאזן העומסים יודע מהו לקוח ה-TCP שמחובר אליו.
כדי להגדיר את ההגדרה client IP resolution בסביבה, משתמשים באחד מממשקי ה-API של ניהול API ב-Apigee כדי להגדיר את ההגדרה client IP resolution בסביבה ב-client_ip_resolution_config.
משתמשים ב-organizations.environments.create כדי ליצור סביבות חדשות. משתמשים ב-updateEnvironment או ב-modifyEnvironment בסביבות קיימות.
בדיקת ההמרה של כתובת ה-IP של הלקוח
אחרי ששומרים הגדרה חדשה של כתובת IP של לקוח, אפשר לבדוק אותה לפי ההוראות הבאות:
- ממתינים לפחות 5 דקות אחרי ששומרים הגדרת תצורה חדשה.
- מתחילים סשן של ניפוי באגים. מפעילים את ההגדרה הצגת כל פרטי הזרימה.
- בודקים את FlowInfo ממש לפני Proxy Request Flow Started. בקטע הזה אמורה להופיע כתובת ה-IP של הלקוח שהוגדרה.
המשתנים הבאים מופיעים ב-FlowInfo:
-
client_ip_resolution.resolved.ip: כתובת ה-IP של הלקוח אחרי ההמרה. -
client_ip_resolution.used.fallback: בוליאני. הערך הזה הואfalseאלא אם Apigee חזר לפתרון ברירת המחדל של כתובת ה-IP של הלקוח בגלל חוסר אפשרות להשתמש בפתרון מוגדר של כתובת ה-IP של הלקוח. לדוגמה, אם הרזולוציה שהוגדרה מציינת אינדקס שלא קיים בכותרת. -
client_ip_resolution.algorithm: האלגוריתם שמשמש לקביעת כתובת ה-IP של הלקוח. אם מוגדר, זהו"HeaderIndexAlgorithm{IpHeaderName:header_name, IpHeaderIndex: $header_index}". אחרת, יופיעdefault.
מגבלות
המגבלות האלה חלות על זיהוי כתובות IP של לקוחות ברמת הסביבה:
- יכול להיות שיחלפו עד 5 דקות עד שהעדכונים בהגדרות של פתרון כתובות ה-IP של הלקוח ייכנסו לתוקף.
- לא מומלץ לבצע שינויים תכופים (למשל, כל 5 דקות) בהגדרת הרזולוציה של כתובת ה-IP של הלקוח, כי זה עלול לגרום לירידה בביצועים.
- הגדרת התצורה של רזולוציית כתובות ה-IP של הלקוח בסביבה ב-Apigee Hybrid זמינה בגרסאות 1.14.0 ואילך של Hybrid.
- אפשר לראות את ההגדרה דרך Apigee Console או API, אבל אפשר להגדיר אותה רק דרך ה-API.
- גם אם אין משתמשים זדוניים, הרשימה X-Forwarded-For מסתמכת על כל שרת proxy כדי להוסיף את המידע הנכון לרשימה. הרשימה המלאה הזו לא נמצאת בפיקוח ובשליטה של Apigee, ולכן הגדרת ההגדרה של זיהוי כתובת ה-IP של הלקוח לא מבטיחה זיהוי של כתובת ה-IP הנכונה של הבקשה.