הדף הזה רלוונטי ל-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והוא גדל באחד עבור כל כתובת עוקבת (לדוגמה,0, 1, 2). לדוגמה, אם הרשימה היא192.0.2.1, 192.0.2.2, 192.0.2.3, אינדקס של1מוביל לכתובת192.0.2.2.
מספר שלילי בוחר כתובת שמתחילה מימין (הכתובת האחרונה שנוספה לכותרת), כאשר המיקום הראשון מימין הוא-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 שמחובר אליו.
כדי להגדיר את רזולוציית כתובת ה-IP של הלקוח בסביבה, משתמשים באחד מממשקי ניהול API ב-Apigee כדי להגדיר את רזולוציית כתובת ה-IP של הלקוח בסביבה ב-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 ואילך.
- אפשר לראות את ההגדרה דרך Apigee Console או API, אבל אפשר להגדיר אותה רק דרך ה-API.
- גם אם אין משתמשים זדוניים, הרשימה X-Forwarded-For מסתמכת על כל שרת proxy כדי להוסיף את המידע הנכון לרשימה. הרשימה המלאה הזו לא נמצאת בפיקוח ובשליטה של Apigee, ולכן הגדרת הרזולוציה של כתובת ה-IP של הלקוח לא מבטיחה זיהוי של כתובת ה-IP הנכונה של הבקשה.