יצירה תוכניתית של לקוחות 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, שמכיל את פרטי המיתוג למשתמשים, נקרא מותג. אפשר להגביל את המותגים למשתמשים פנימיים או למשתמשים ציבוריים. מותג פנימי מאפשר גישה לתהליך OAuth למי ששייך לאותו ארגון ב-Google Workspace כמו הפרויקט. מותג ציבורי הופך את תהליך ה-OAuth לזמין לכל מי שמשתמש באינטרנט.

אפשר ליצור מותגים באופן ידני או באופן פרוגרמטי באמצעות API. מותגים שנוצרו באמצעות API מוגדרים עם הגדרות ברירת המחדל הבאות:

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

  • לא נבדקו: המותגים נמצאים בסטטוס "לא נבדקו", וצריך להפעיל בדיקת מותג.

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

  1. פותחים את מסך ההסכמה של OAuth.

  2. בוחרים פרויקט מהתפריט הנפתח.

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

  4. בקטע Application type, לוחצים על Public.

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

  1. פותחים את מסך ההסכמה של OAuth.

  2. בוחרים את הפרויקט מהתפריט הנפתח.

  3. בדף מסך הסכמה OAuth, מזינים את המידע הנדרש ולוחצים על Submit for verification.

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

הגדרת 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]
    

כדי להפעיל את IAP, משתמשים במזהה הלקוח (client_id בדוגמה הקודמת) וב-secret. בנושאים הבאים מוסבר איך להפעיל את IAP באמצעות פרטי הכניסה שיצרתם: