בדף הזה מוסבר איך ליצור לקוחות OAuth באופן פרוגרמטי לשימוש ב-IAP, כדי שתוכלו להגדיר את IAP באופן פרוגרמטי מקצה לקצה עבור אפליקציות פנימיות.
מגבלות ידועות
יש כמה מגבלות ללקוחות OAuth שנוצרו באופן פרוגרמטי באמצעות ה-API הזה:
- אפשר לשנות לקוחות OAuth שנוצרו באמצעות ה-API רק באמצעות ה-API. אי אפשר לשנות לקוח OAuth דרך מסוף Google Cloud אם הוא נוצר באמצעות ה-API.
- לקוחות OAuth שנוצרו על ידי ה-API נעולים לשימוש ב-IAP בלבד, ולכן ה-API לא מאפשר לבצע עדכונים ב-URI להפניה או במאפיינים אחרים.
- ה-API לא פועל על לקוחות OAuth שנוצרו באמצעות מסוף Google Cloud .
- כשמשתמשים ב-API, מותרים רק 500 לקוחות OAuth לכל פרויקט.
- יש מגבלות ספציפיות על מותגים של מסכי הסכמה ל-OAuth שנוצרו באמצעות API. מידע נוסף מפורט בקטע שבהמשך.
הסבר על מותגים ועל סטטוס המיתוג
מסך ההסכמה ל-OAuth, שמכיל מידע על המיתוג למשתמשים, נקרא מותג. אפשר להגביל את הגישה למותגים למשתמשים פנימיים או למשתמשים חיצוניים. מותג פנימי מאפשר למי ששייך לאותו ארגון Google Workspace כמו הפרויקט לגשת לתהליך OAuth. מותג ציבורי מאפשר לכל אחד באינטרנט להשתמש בתהליך OAuth.
אפשר ליצור מותגים באופן ידני או באופן פרוגרמטי באמצעות API. מותגים שנוצרו באמצעות API מוגדרים אוטומטית עם הגדרות שונות:
- הם מוגדרים כפנימיים, ואם רוצים להגדיר אותם כציבוריים צריך לעשות זאת באופן ידני
- הם מוגדרים למצב 'לא נבדק' וחובה להפעיל בדיקת מותג
כדי להגדיר מותג פנימי כגלוי לכולם באופן ידני:
- פותחים את מסך ההסכמה ל-OAuth.
- בוחרים את הפרויקט הרצוי מהתפריט הנפתח.
- בדף מסך הסכמה של OAuth, שימו לב שUser Type מוגדר אוטומטית ל-Internal. כדי להגדיר את האפליקציה כציבורית, לוחצים על עריכת האפליקציה. אפשרויות הגדרה נוספות יהיו זמינות.
- בקטע Application type (סוג האפליקציה), לוחצים על Public (ציבורית).
כדי להפעיל בדיקה של מותג שלא נבדק שנוצר באמצעות API:
- פותחים את מסך ההסכמה ל-OAuth.
- בוחרים את הפרויקט הרצוי מהתפריט הנפתח.
- בדף מסך ההסכמה של OAuth, מזינים את כל המידע הנדרש ולוחצים על שליחה לאימות.
תהליך האימות עשוי להימשך כמה שבועות, ותקבלו עדכונים באימייל לגבי התקדמות התהליך. מידע נוסף על אימות בזמן שתהליך האימות מתבצע, אתם עדיין יכולים להשתמש באפליקציה בארגון Google Workspace שלכם. מידע נוסף על אופן הפעולה של האפליקציה לפני האימות
לפני שמתחילים
לפני שיוצרים לקוח, צריך לוודא שלמתקשר ניתנו ההרשאות הבאות:
clientauthconfig.brands.listclientauthconfig.brands.createclientauthconfig.brands.getclientauthconfig.clients.createclientauthconfig.clients.listWithSecrets(חובה רק לרישום לקוחות OAuth עם סוד.)clientauthconfig.clients.getWithSecretclientauthconfig.clients.deleteclientauthconfig.clients.update
ההרשאות האלה כלולות בתפקידים הבסיסיים 'עריכה' (roles/editor) ו'בעלים' (roles/owner). עם זאת, מומלץ ליצור תפקיד בהתאמה אישית שכולל את ההרשאות האלה ולהקצות אותו למשתמש שקורא ל-API.
הגדרת OAuth לרכישות מתוך האפליקציה
בשלבים הבאים מוסבר איך להגדיר את מסך ההסכמה וליצור לקוח OAuth לרכישות מתוך האפליקציה.
הגדרת מסך ההסכמה
כדי לבדוק אם כבר יש מותג, משתמשים בפקודה list. יכול להיות לכם רק מותג אחד לכל פרויקט.
gcloud iap oauth-brands list
זוהי דוגמה לתגובה ב-gcloud אם המותג קיים:
name: projects/[PROJECT_NUMBER]/brands/[BRAND_ID] applicationTitle: [APPLICATION_TITLE] supportEmail: [SUPPORT_EMAIL] orgInternalOnly: trueאם אין מותג, משתמשים בפקודה create:
gcloud iap oauth-brands create --application_title=APPLICATION_TITLE --support_email=SUPPORT_EMAIL
השדות שלמעלה הם שדות חובה כשקוראים ל-API הזה:
supportEmail: כתובת האימייל לתמיכה שמוצגת במסך ההסכמה של OAuth. כתובת האימייל יכולה להיות כתובת של משתמש או כתובת אימייל חלופית של קבוצות Google. גם לחשבונות שירות יש כתובת אימייל, אבל אלה לא כתובות אימייל אמיתיות וחוקיות, ואי אפשר להשתמש בהן כשיוצרים מותג. עם זאת, חשבון שירות יכול להיות הבעלים של קבוצה ב-Google. יוצרים קבוצת Google חדשה או מגדירים קבוצה קיימת ומגדירים את חשבון השירות הרצוי כבעלים של הקבוצה.
applicationTitle: שם האפליקציה שמוצג במסך ההסכמה ל-OAuth.
התשובה מכילה את השדות הבאים:
name: projects/[PROJECT_NUMBER]/brands/[BRAND_ID] applicationTitle: [APPLICATION_TITLE] supportEmail: [SUPPORT_EMAIL] orgInternalOnly: true
יצירת לקוח OAuth של IAP
משתמשים בפקודה create כדי ליצור לקוח. צריך להשתמש במותג
nameמהשלב הקודם.gcloud iap oauth-clients create projects/PROJECT_NUMBER/brands/BRAND-ID --display_name=NAME
התשובה מכילה את השדות הבאים:
name: projects/[PROJECT_NUMBER]/brands/[BRAND_NAME]/identityAwareProxyClients/[CLIENT_ID] secret: [CLIENT_SECRET] displayName: [NAME]
משתמשים במזהה הלקוח (client_id בדוגמה שלמעלה) וב-secret כדי להפעיל את IAP. בנושאים הבאים מפורט מידע נוסף על הפעלת רכישות מתוך האפליקציה באמצעות פרטי הכניסה שיצרתם: