סקירה כללית על Cloud OAuth API

Cloud OAuth API (cloudoauth.googleapis.com) מספק אימות והחלפת אסימונים של OAuth 2.0 ו-OpenID Connect (OIDC) לאיחוד שירותי אימות הזהות של כוח עבודה.

‫Cloud OAuth API מאמת משתמשי Google Cloud . ה-API הזה מאפשר לאפליקציות להפנות את המשתמשים לנקודת הקצה של ההרשאה (https://auth.cloud.google/authorize) כדי לקבל קודי הרשאה. לאחר מכן, האפליקציות שלכם יכולות להחליף פרטי כניסה חיצוניים, קודי הרשאה או אסימוני רענון באסימוני גישה מסוג OAuth 2.0 לטווח קצר ובאסימוני מזהה OIDC.

ה-API מבוסס על המפרטים של OAuth 2.0 Token Exchange (RFC 8693) ו-OAuth 2.0 Authorization Framework (RFC 6749).

השוואה ל-Security Token Service

בעבר, Security Token Service (sts.googleapis.com) של Google Cloudטיפל בהחלפת אסימונים גם לאיחוד שירותי אימות הזהות של כוח העבודה וגם לאיחוד שירותי אימות הזהות של עומסי העבודה.

‫Cloud OAuth API תומך באותן החלפות אסימונים כמו Security Token Service, אבל הוא מיועד לתנועה של איחוד שירותי אימות הזהות של כוח העבודה. ההפרדה הזו מבודדת את המרות האסימונים של כוח העבודה מתנועת עומסי העבודה, וכך עוזרת למנוע שיבושים בין שירותים ומאפשרת להגדיל את הקיבולת של כוח העבודה בלי קשר ל-Security Token Service. בהתאם לשילוב שלכם, פועלים לפי ההנחיות הבאות:

  • שילובים חדשים של Looker: הפניית משתמשים לנקודת הקצה לאימות (https://auth.cloud.google/authorize) והחלפת טוקנים באמצעות Cloud OAuth API‏ (cloudoauth.googleapis.com).
  • שילובים קיימים של Looker: אם השילוב של Looker משתמש בשירות אסימוני אבטחה (sts.googleapis.com/v1/oauthtoken או sts.googleapis.com/v1/token), צריך לעבור ל-cloudoauth.googleapis.com.
  • שילובים אחרים: בשילובים אחרים של איחוד שירותי אימות הזהות של כוח העבודה, ממשיכים להשתמש בשירות אסימוני אבטחה.

נקודות קצה (endpoints) נתמכות

בטבלה הבאה מפורטות נקודות הקצה שבהן משתמשים בשילובים של Cloud OAuth API. רוב נקודות הקצה האלה הן נקודות קצה ברמת הארגון (דייר יחיד) שמספקות ניהול מפתחות וגילוי מבודדים, כשאפליקציית הלקוח והמשאבים שלכם מוגבלים לארגון Google Cloudיחיד.

בכתובות ה-URL של נקודות הקצה ברמת הארגון, מחליפים את ORGANIZATION_ID במזהה הארגון המספרי ב- Google Cloud:

נקודת קצה (endpoint) ‏Method כתובת URL תיאור
OpenID Connect discovery GET https://auth.cloud.google/oidc/organizations/ORGANIZATION_ID/.well-known/openid-configuration הפונקציה מחזירה את המטא-נתונים של הגדרות הספק של OpenID Connect Discovery 1.0 (מסמך Discovery) של הארגון.
הרשאה GET https://auth.cloud.google/authorize מפנה משתמשים מאוחדים להיכנס באמצעות ספק הזהויות (IdP) שלהם, ומחזירה קוד הרשאה ל-URI להפניה אוטומטית של האפליקציה.
החלפת אסימונים POST https://cloudoauth.googleapis.com/v1/organizations/ORGANIZATION_ID/token החלפת קודי הרשאה או טוקני רענון באסימוני גישה מסוג OAuth 2.0 ובטוקנים של מזהה מסוג OIDC.
קבוצת מפתחות JWK‏ (JWKS) GET https://cloudoauth.googleapis.com/v1/organizations/ORGANIZATION_ID/.well-known/jwks.json מחזירה את מפתחות ה-JSON Web Keys‏ (JWKs) הציבוריים שמשמשים לאימות החתימות של טוקני מזהה OIDC שהונפקו לארגון.
פרטי המשתמש GET https://cloudoauth.googleapis.com/v1/organizations/ORGANIZATION_ID/userinfo אחזור של הצהרות סטנדרטיות של OIDC, הצהרות של ספריות בהתאמה אישית וחברויות בקבוצות של המשתמש המאומת.
קבוצות ארגוניות GET https://cloudoauth.googleapis.com/v1/common/groups אחזור של חברויות בקבוצות ארגוניות עם חלוקה לדפים עבור המשתמש המאומת.

נקודת קצה להרשאה

בתהליך הרשאה באמצעות קוד של OAuth 2.0 ו-OIDC, האפליקציה מפנה משתמשים מאוחדים לנקודת הקצה המאוחדת להרשאה של Google Cloud(https://auth.cloud.google/authorize) כדי להיכנס באמצעות ה-IdP שלהם. אחרי שהאימות מצליח, נקודת הקצה של ההרשאות מפנה את המשתמש לכתובת ה-URI להפניה מחדש של האפליקציה עם קוד הרשאה. לאחר מכן, האפליקציה מחליפה את הקוד הזה בטוקנים בנקודת הקצה (endpoint) להחלפת טוקנים.

נקודות קצה של גילוי OIDC ו-JWKS

בשילובים של Looker OIDC, ממשק ה-Cloud OAuth API מספק נקודות קצה ציבוריות, לא מאומתות, ברמת הארגון, להגדרת לקוח ולאימות טוקנים:

  • נקודת קצה (endpoint) לאיתור של OpenID Connect: מספקת את המטא-נתונים של הגדרות הספק (מסמך Discovery) של OpenID Connect Discovery 1.0 לארגון. מסמך ה-Discovery כולל את המזהה של הארגון ב-issuer ואת כתובות ה-URL של נקודות הקצה (authorization_endpoint,‏ token_endpoint,‏ userinfo_endpoint ו-jwks_uri). הוא גם מפרט את ההיקפים הנתמכים, ההצהרות, אלגוריתמי החתימה (RS256) ושיטות האתגר של קוד Proof Key for Code Exchange ‏(PKCE) (S256).
  • נקודת קצה (endpoint) של JSON Web Key Set‏ (JWKS): מספקת את JSON Web Key Set‏ (JWKS) הציבורי של הארגון. אפליקציות משתמשות במפתחות האינטרנט הציבוריים מסוג JSON‏ (JWK) במערך keys כדי לאמת את החתימה הקריפטוגרפית של טוקן מזהה OIDC‏ (id_token) שהונפק על ידי Cloud OAuth API.

בשילוב אופייני של OIDC, האפליקציה משתמשת בנקודות הקצה האלה ברצף הבא:

  1. אחזור מסמך ה-Discovery: שולחים בקשת GET לנקודת הקצה של OpenID Connect Discovery (/.well-known/openid-configuration) וקוראים את כתובות ה-URL של נקודות הקצה (authorization_endpoint,‏ token_endpoint,‏ jwks_uri ו-userinfo_endpoint).
  2. בקשת קוד הרשאה: מפנים את המשתמש אל authorization_endpoint (https://auth.cloud.google/authorize) כדי שייכנס באמצעות ה-IdP שלו ויקבל קוד הרשאה ב-URI להפניה אוטומטית של האפליקציה.
  3. החלפת קוד ההרשאה באסימונים: שולחים בקשת POST אל token_endpoint (/token) כדי להחליף את קוד ההרשאה באסימון גישה מסוג OAuth 2.0 ובאסימון מזהה של OIDC‏ (id_token).
  4. אימות הטוקן של המזהה: מאחזרים את המפתחות הציבוריים של הארגון מ-jwks_uri (/.well-known/jwks.json) ומשתמשים בהם כדי לאמת את החתימה הקריפטוגרפית של id_token.
  5. אופציונלי: אחזור פרטי משתמש: שולחים בקשת GET עם אסימון הגישה אל userinfo_endpoint (/userinfo) כדי לאחזר הצהרות נוספות של פרופיל המשתמש וחברויות בקבוצות.

המאמרים הבאים