בדף הזה מוסבר על תנאים של ניהול זהויות והרשאות גישה (IAM) שקשורים לשם המארח ולנתיב.
אתם יכולים לאבטח משאבים של שרת proxy לאימות זהויות (IAP) באמצעות שם המארח והנתיב של כתובת URL של בקשה.
לדוגמה, אפשר להשתמש בתנאי request.path.startsWith IAM כדי להעניק גישה רק לעובדים בקבוצה Privileged Access אם נתיב כתובת ה-URL מתחיל ב-/admin.
מידע נוסף על שימוש בתנאים של שם המארח ונתיב זמין במאמר בנושא מאפייני בקשות.
נירמול מחרוזות
כתובת URL כוללת שם מארח ונתיב. לדוגמה, לכתובת ה-URL
https://sheets.google.com/create?query=param
יש שם מארח sheets.google.com ונתיב /create.
יכול להיות ששרתי קצה עורפיים יפרשו שמות מארחים ונתיבים בדרכים שונות. כדי למנוע אי בהירות, IAP מבצע נורמליזציה של מחרוזות של שם המארח ונתיב כשבודקים מדיניות.
IAP מבצע שתי בדיקות מדיניות כשנתיב הבקשה לא מנורמל. אם הנתיב הלא מנורמלי עובר את בדיקת המדיניות, IAP מנרמל את הנתיב ומבצע בדיקת מדיניות שנייה. הגישה תינתן אם גם הנתיב הלא מנורמלי וגם הנתיב המנורמלי יעברו את בדיקת המדיניות.
לדוגמה, אם בבקשה יש נתיב /internal;some_param/admin, IAP קודם מבצע בדיקת מדיניות בנתיב הלא מנורמל (/internal). אם הבדיקה הזו עוברת, IAP מבצע בדיקת מדיניות שנייה בנתיב המנורמל (/internal/admin).
שמות מארחים
נורמליזציה של שם המארח כוללת את הפעולות הבאות:
- הסרת נקודות בסוף
- המרת אותיות קטנות
- המרה ל-ASCII
שמות מארח שכוללים תווים שאינם ASCII עוברים נורמליזציה נוספת באמצעות Punycode. כדי ליצור התאמה, צריך להשתמש ב-Punycode כדי לבצע נורמליזציה של מחרוזת שם המארח.
כדי לנרמל את מחרוזת שם המארח באמצעות Punycode, צריך להשתמש בכלי המרה כמו Punycoder.
דוגמאות לשמות מארחים שעברו נורמליזציה:
- הערך
FOO.comמנורמל ל-foo.com - הערך
café.frמנורמל ל-xn--caf-dma.fr
נתיבים
נרמול הנתיב כולל את הפעולות הבאות:
- הסרת פרמטרים של נתיב
- פתרון נתיבים יחסיים למקבילה המוחלטת שלהם
פרמטר של נתיב כולל את כל התווים מ-; עד ל-/ הבא או עד לסוף הנתיב.
בקשות שמכילות קטעי נתיב שמתחילים ב-..; נחשבות כבקשות לא תקינות. לדוגמה, הפונקציות /..;bar/ ו-/bar/..;/ מחזירות את השגיאה HTTP 400: Bad
Request.
דוגמאות לנתיבים מנורמלים:
- הערך
/internal;some_param/adminמנורמל ל-/internal/admin - הערך
/a/../bמנורמל ל-/b - הערך
/bar;param1/baz;baz;param2מנורמל ל-/bar/baz
סיומות של תת-דומיינים
מדיניות שהוגדרה באמצעות request.host.endsWith("google.com") תתאים גם ל-sub_domain.google.com וגם ל-testgoogle.com. אם רוצים להגביל את המדיניות רק לתת-דומיינים שמסתיימים ב-google.com, צריך להגדיר את המדיניות ל-request.host.endsWith(".google.com").