בדף הזה מוסבר איך לקבל את זהות המשתמש באמצעות שרת proxy לאימות זהויות (IAP). קבלת זהות המשתמש מאפשרת לאפליקציה לאמת שהבקשה הגיעה דרך IAP. כדי לאבטח את האפליקציה כמו שצריך, אתם צריכים תמיד להשתמש באחד מהמנגנונים הבאים כדי לקבל את זהות המשתמש שאומת באמצעות IAP.
קבלת זהות המשתמש באמצעות כותרות חתומות
כדי לוודא שבקשה לאפליקציה שלכם ב-Compute Engine, ב-GKE, ב-Cloud Run, בסביבת ברירת המחדל ב-App Engine או בסביבה הגמישה ב-App Engine אושרה על ידי IAP, האפליקציה צריכה לאמת כל בקשה על ידי בדיקת כותרת בקשת ה-HTTPx-goog-iap-jwt-assertion.
איך מאבטחים את האפליקציה באמצעות כותרות חתומות
בנוסף, IAP מעביר את זהות המשתמש לשירות לקצה העורפי בכותרות ה-HTTP הבאות. הכותרות האלה צריכות לכלול את הקידומת של מרחב השמות accounts.google.com. הכותרות האלה זמינות לצורך תאימות, אבל לא כדאי להסתמך עליהן כמנגנון אבטחה. אם אתם משתמשים בכותרות האלה, אתם צריכים להשוות אותן לפרטי הזהות מהכותרת המאומתת של JWT שמופיעה למעלה.
| שם הכותרת | תיאור | ערך לדוגמה |
|---|---|---|
X-Goog-Authenticated-User-Email
|
כתובת האימייל של המשתמש |
accounts.google.com:example@example.com
|
X-Goog-Authenticated-User-Id
|
מזהה ייחודי וקבוע של המשתמש. |
accounts.google.com:userIDvalue
|
קבלת זהות המשתמש באמצעות Users API בסביבת ברירת המחדל ב-App Engine
לחלופין, אם יש לכם אפליקציה בסביבת ברירת המחדל ב-App Engine, אתם יכולים להשתמש ב-Users API כדי לקבל את זהות המשתמש בקוד האפליקציה.
אם האפליקציה שלכם כבר משתמשת ב-API הזה, אתם לא צריכים לשנות שום דבר. IAP מספק את זהות המשתמש, אבל הערך של מזהה המשתמש של כל משתמש ב-Users API ישתנה כש-IAP יופעל.
כדי לקבל את זהות המשתמש שאומתה על ידי IAP לבקשה, צריך להפעיל את Users API כדי להחזיר את המשתמש הנוכחי. אם הפונקציה מחזירה משתמש, כמו req.getUserPrincipal() != null ב-Java, המשתמש אומת על ידי IAP.
מסך הסכמה
כשה-IAP מופעל, בפעם הראשונה שמשתמש ניגש לאפליקציה, הוא מופנה למסך הסכמה כדי לאשר שהוא רוצה לשתף את הזהות שלו עם האפליקציה. זה קורה גם אם המשתמש נתן הסכמה לאפליקציה לפני שהפעלתם את ה-IAP, וזה יקרה שוב אם תשביתו את ה-IAP ואז תפעילו אותו מחדש.
אם אתם משתמשים ב-Users API, בדרך כלל הוא מסתיר את מסך ההסכמה לאפליקציות ולמשתמשים שנמצאים באותו דומיין ב-Google Workspace. כשמפעילים את IAP, מסך ההסכמה לא מוסתר באופן אוטומטי. כדי להסתיר את מסך ההסכמה כש-IAP מופעל:
נכנסים למסוף Google Admin.
ברשימת אמצעי הבקרה, לוחצים על אבטחה.
אם האפשרות אבטחה לא מופיעה, לוחצים על אמצעי בקרה נוספים בסרגל האפור שבתחתית הדף, ואז לוחצים על אבטחה ברשימת אמצעי הבקרה.
אם אתם לא רואים את אמצעי הבקרה, ודאו שאתם מחוברים כאדמינים בדומיין.
ברשימת האפשרויות, לוחצים על גישה ובקרת נתונים ואז על בקרות API.
בקטע אימות, בוחרים באפשרות ניהול הגישה של לקוחות API.
בשדה Client Name, מזינים את מזהה הלקוח ב-OAuth 2.0 של IAP. מזהה הלקוח של IAP מופיע בדף Credentials.
בשדה One or More API Scopes, מזינים
email, openid.לוחצים על Authorize.
כדי לפשט את התהליך, אתם יכולים להשתמש בקריאה ל-API כדי להשתמש במזהה לקוח יחיד של IAP OAuth 2.0 לכל האפליקציות. אי אפשר להשתמש במסוף Google Cloud כדי לציין את מזהה הלקוח שבו רוצים להשתמש עם IAP.