יצירה תוכניתית של לקוחות OAuth ל-IAP

בדף הזה מוסבר איך ליצור באופן פרוגרמטי לקוחות 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 מוגדרים אוטומטית עם הגדרות שונות:

  • הן מוגדרות כפנימיות, ואם בוחרים בהן צריך להגדיר אותן באופן ידני כגלויות לכולם

  • הם מוגדרים לסטטוס 'לא נבדק' וצריך להפעיל בדיקה של המותג

כדי להגדיר מותג פנימי כגלוי לכולם באופן ידני:

  1. פותחים את מסך ההסכמה ל-OAuth.
  2. בוחרים את הפרויקט הרצוי מהתפריט הנפתח.
  3. בדף מסך ההסכמה של OAuth, שימו לב שהאפשרות סוג המשתמש מוגדרת אוטומטית לפנימי. כדי להגדיר את האפליקציה כציבורית, לוחצים על עריכת האפליקציה. יוצגו אפשרויות נוספות להגדרה.
  4. בקטע Application type (סוג האפליקציה), לוחצים על Public (ציבורי).

כדי להפעיל בדיקת מותג למותג שנוצר באמצעות API ולא נבדק:

  1. פותחים את מסך ההסכמה ל-OAuth.
  2. בוחרים את הפרויקט מהתפריט הנפתח.
  3. בדף מסך הסכמה ל-OAuth, מזינים את כל המידע הנדרש ולוחצים על שליחה לאימות.

תהליך האימות עשוי להימשך כמה שבועות, ותקבלו עדכונים באימייל על התקדמות התהליך. מידע נוסף על תהליך האימות בזמן שתהליך האימות מתבצע, אתם עדיין יכולים להשתמש באפליקציה בארגון Google Workspace שלכם. מידע נוסף על אופן הפעולה של האפליקציה לפני האימות

לפני שמתחילים

לפני שיוצרים לקוח, צריך לוודא שלמתקשר ניתנו ההרשאות הבאות:

  • clientauthconfig.brands.list
  • clientauthconfig.brands.create
  • clientauthconfig.brands.get
  • clientauthconfig.clients.create
  • clientauthconfig.clients.listWithSecrets (חובה רק כשמציגים רשימה של לקוחות OAuth עם סוד.)
  • clientauthconfig.clients.getWithSecret
  • clientauthconfig.clients.delete
  • clientauthconfig.clients.update

ההרשאות האלה כלולות בתפקידים הבסיסיים 'עריכה' (roles/editor) ו'בעלים' (roles/owner). עם זאת, מומלץ ליצור תפקיד בהתאמה אישית שכולל את ההרשאות האלה ולהקצות אותו למשתמש שקורא ל-API.

הגדרת OAuth עבור IAP

בשלבים הבאים מוסבר איך להגדיר את מסך ההסכמה וליצור לקוח OAuth עבור IAP.

  1. כדי לבדוק אם כבר יש לכם מותג, משתמשים בפקודה list. יכול להיות לכם רק מותג אחד לכל פרויקט.

    gcloud iap oauth-brands list

    זוהי דוגמה לתגובה ב-gcloud אם המותג קיים:

    name: projects/[PROJECT_NUMBER]/brands/[BRAND_ID]
    applicationTitle: [APPLICATION_TITLE]
    supportEmail: [SUPPORT_EMAIL]
    orgInternalOnly: true
    
  2. אם לא קיים מותג, משתמשים בפקודה 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

  1. משתמשים בפקודה 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. בנושאים הבאים מפורט מידע נוסף על הפעלת IAP באמצעות פרטי הכניסה שיצרתם: