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

הדף הזה רלוונטי ל-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
  }
}
where
  • 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 של הלקוח:

  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 שמחובר אליו.

כדי להגדיר את רזולוציית כתובת ה-IP של הלקוח בסביבה, משתמשים באחד מממשקי ניהול API ב-Apigee כדי להגדיר את רזולוציית כתובת ה-IP של הלקוח בסביבה ב-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 של לקוחות ברמת הסביבה:

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