בדף הזה מוסבר איך ליצור לקוחות 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 לרכישות מתוך האפליקציה.
Configuring consent screen
Check if you already have an existing brand by using the list command. You may only have one brand per project.
gcloud iap oauth-brands list
The following is an example gcloud response, if the brand exists:
name: projects/[PROJECT_NUMBER]/brands/[BRAND_ID] applicationTitle: [APPLICATION_TITLE] supportEmail: [SUPPORT_EMAIL] orgInternalOnly: trueIf no brand exists, use the create command:
gcloud iap oauth-brands create --application_title=APPLICATION_TITLE --support_email=SUPPORT_EMAIL
The above fields are required when calling this API:
supportEmail: The support email displayed on the OAuth consent screen. This email address can either be a user's address or a Google Groups alias. While service accounts also have an email address, they are not actual valid email addresses, and cannot be used when creating a brand. However, a service account can be the owner of a Google Group. Either create a new Google Group or configure an existing group and set the desired service account as an owner of the group.applicationTitle: The application name displayed on OAuth consent screen.
The response contains the following fields:
name: projects/[PROJECT_NUMBER]/brands/[BRAND_ID] applicationTitle: [APPLICATION_TITLE] supportEmail: [SUPPORT_EMAIL] orgInternalOnly: true
Creating an IAP OAuth Client
Use the create command to create a client. Use the brand
namefrom previous step.gcloud iap oauth-clients create projects/PROJECT_NUMBER/brands/BRAND-ID --display_name=NAME
The response contains the following fields:
name: projects/[PROJECT_NUMBER]/brands/[BRAND_NAME]/identityAwareProxyClients/[CLIENT_ID] secret: [CLIENT_SECRET] displayName: [NAME]
משתמשים במזהה הלקוח (client_id בדוגמה שלמעלה) וב-secret כדי להפעיל את IAP. בנושאים הבאים מפורט מידע נוסף על הפעלת רכישות מתוך האפליקציה באמצעות פרטי הכניסה שיצרתם: