רזולוציית כתובת ה-IP של הלקוח

הדף הזה רלוונטי ל-Apigee ול-Apigee Hybrid.

לעיון במסמכי התיעוד של Apigee Edge

זיהוי מדויק של כתובת ה-IP של הלקוח בבקשות API חשוב לחלק מהפונקציות ב-Apigee, כולל התכונות של Analytics ושל Advanced API Security, כמו זיהוי שימוש לרעה ופעולות אבטחה.

תהליך הזיהוי של כתובת ה-IP של הלקוח הוא מורכב בארכיטקטורות רשת מודרניות שמשתמשות בשרתי proxy ובמאזני עומסים, כי המתווכים האלה יכולים להסתיר את כתובת ה-IP האמיתית שממנה מגיע הבקשה.

כדי להתמודד עם האתגר הזה, ב-Apigee יש הגדרה ברמת הסביבה שמציינת איך לפתור את כתובת ה-IP של הלקוח מהכותרת X-Forwarded-For ‏ (XFF). ההגדרה הזו מזהה את האינדקס בכותרת שתואם לכתובת ה-IP של טופולוגיית הרשת ודרישות האבטחה שלכם. השימוש בהגדרה הזו מאפשר לראות את כתובות ה-IP של הלקוחות, לשמור על עקביות ולשלוט באופן שבו הן נקבעות לכל הבקשות בסביבה. בנוסף, השימוש בהגדרה הזו מאפשר לזהות את כתובות ה-IP של הלקוחות באופן עקבי בכל התכונות של Advanced API Security, משתני זרימה ומשתני ניתוח בסביבה.

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

הגדרת ברירת מחדל של זיהוי כתובת ה-IP של הלקוח

אם לא מוגדרת רזולוציה של כתובת ה-IP של הלקוח ברמת הסביבה, ערך ברירת המחדל של המאפיין ax_resolved_client_ip מחושב כמו שמתואר במאפייני Analytics.

אם הגדרתם את התהליך של חיפוש כתובת ה-IP של הלקוח ב סביבה מסוימת, המשתנים של התהליך ושל Analytics מוגדרים לפי ההגדרה של חיפוש כתובת ה-IP של הלקוח. ראו הגדרת זיהוי כתובת ה-IP של הלקוח בסביבה.

מתי צריך להגדיר את ההגדרה client IP resolution (פתרון כתובת ה-IP של הלקוח) בסביבה

אף על פי שלא חובה להגדיר את ההמרה של כתובת ה-IP של הלקוח, כדאי לעשות זאת אם ההמרה של כתובת ה-IP של הלקוח שמוגדרת כברירת מחדל לא עונה על הצרכים שלכם, ואתם רוצים לשנות אותה כדי לספק המרה ספציפית של כתובת ה-IP של הלקוח ל-Analytics, ל-Advanced API Security או לביצוע כל פונקציה אחרת שדורשת מידע עקבי ומהימן על כתובות ה-IP של הלקוחות.

הסבר על תחביר ההגדרה של זיהוי כתובת ה-IP של הלקוח

הפורמט של הגדרת ההמרה של כתובת ה-IP של הלקוח הוא:

"clientIpResolutionConfig": {
  "headerIndexAlgorithm": {
     "ipHeaderName" : "X-Forwarded-For",
     "ipHeaderIndex": 2
  }
}
where
  • ipHeaderName היא הכותרת שמשמשת לכתובת ה-IP של הלקוח. בשלב הזה, הערך הנתמך של הכותרת הוא X-Forwarded-For.
  • 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 או ממשקי הניהול של API.

הצגת ההגדרה של זיהוי כתובת ה-IP של הלקוח באמצעות ממשק המשתמש

כדי לראות את הגדרת ההמרה של כתובת ה-IP של הלקוח:

  1. במסוף Google Cloud , עוברים לדף Apigee > Management > Environments.

    מעבר אל Environments

  2. בוחרים את הסביבה ורואים את הגדרת כתובת ה-IP של הלקוח בכרטיסייה מידע על הערוץ.

    המרת כתובת ה-IP של הלקוח בממשק המשתמש של Apigee

הצגת הגדרת ההמרה של כתובת ה-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 של לקוח, אפשר לבדוק אותה לפי ההוראות הבאות:

  1. צריך להמתין לפחות 5 דקות אחרי ששומרים הגדרת תצורה חדשה.
  2. מתחילים סשן ניפוי באגים. מפעילים את ההגדרה הצגת כל פרטי הזרימה.
  3. בודקים את 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 של לקוחות ברמת הסביבה:

  • עדכונים בהגדרות של זיהוי כתובות IP של לקוחות נכנסים לתוקף תוך 5 דקות.
  • לא מומלץ לבצע שינויים לעיתים קרובות (למשל, כל 5 דקות) בהגדרות של פתרון כתובות IP של לקוחות, כי זה עלול לגרום לירידה בביצועים.
  • הגדרת התצורה של רזולוציית כתובת ה-IP של הלקוח בסביבה ב-Apigee Hybrid זמינה בגרסאות 1.14.0 ואילך של Hybrid.
  • אפשר לראות את ההגדרה דרך Apigee Console או API, אבל אפשר להגדיר אותה רק דרך ה-API.
  • גם אם אין משתמשים זדוניים, הרשימה X-Forwarded-For מסתמכת על כל שרת proxy כדי להוסיף את המידע הנכון לרשימה. הרשימה המלאה הזו לא נמצאת בפיקוח ובשליטה של Apigee, ולכן הגדרת ההגדרה של זיהוי כתובת ה-IP של הלקוח לא מבטיחה זיהוי של כתובת ה-IP הנכונה של הבקשה.