בדף הזה מוסבר איך לקבל את הזהות של משתמש באמצעות שרת proxy לאימות זהויות (IAP). קבלת הזהות של המשתמש מאפשרת לאפליקציה לאמת שהבקשה הגיעה דרך IAP. כדי לאבטח את האפליקציה בצורה נכונה, אתם צריכים תמיד להשתמש באחד מהמנגנונים הבאים כדי לקבל את זהות המשתמש שאומתה על ידי IAP.
קבלת זהות המשתמש באמצעות כותרות חתומות
כדי לוודא שבקשה לאפליקציה שלכם ב-Compute Engine, ב-GKE, ב-Cloud Run, בסביבה הרגילה של App Engine או בסביבה הגמישה של App Engine אושרה על ידי IAP, האפליקציה צריכה לאמת כל בקשה על ידי בדיקת כותרת בקשת ה-HTTP x-goog-iap-jwt-assertion.
מידע על אבטחת האפליקציה באמצעות כותרות חתומות
בנוסף, IAP מעביר את זהות המשתמש לשירות הקצה העורפי שלכם בכותרות ה-HTTP הבאות. הכותרות האלה צריכות לכלול את קידומת מרחב השמות accounts.google.com. הכותרות האלה זמינות לצורך תאימות, אבל לא מומלץ להסתמך עליהן כמנגנון אבטחה. אם אתם משתמשים בכותרות האלה, אתם צריכים להשוות אותן לפרטי הזהות מכותרת ה-JWT המאומתת שצוינה למעלה.
| שם הכותרת | תיאור | ערך לדוגמה |
|---|---|---|
X-Goog-Authenticated-User-Email
|
כתובת האימייל של המשתמש |
accounts.google.com:example@gmail.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, מסך ההסכמה לא מושבת באופן אוטומטי. כדי להסתיר את מסך ההסכמה כשמופעלת רכישה מתוך האפליקציה, פועלים לפי השלבים הבאים:
- נכנסים אל מסוף Google Admin.
כניסה למסוף 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 כדי לציין את Client-ID לשימוש עם IAP.