סקירה כללית על 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. בהתאם לסטטוס השילוב, פועלים לפי ההנחיות הבאות:

  • שילובים חדשים: מפנים את המשתמשים לנקודת הקצה להרשאה (https://auth.cloud.google/authorize) ומחליפים טוקנים באמצעות Cloud OAuth API‏ (cloudoauth.googleapis.com).
  • שילובים קיימים: אם אתם משתמשים ב-Security Token Service (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‏ (JWK) הציבוריים שמשמשים לאימות החתימות של טוקני המזהה של OIDC שהונפקו לארגון.
פרטי המשתמש GET https://cloudoauth.googleapis.com/v1/organizations/ORGANIZATION_ID/userinfo אחזור של הצהרות סטנדרטיות של OIDC, הצהרות של ספריות בהתאמה אישית וחברויות בקבוצות של המשתמש המאומת.
קבוצות Enterprise 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 ‏ (JWKs) במערך 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) כדי לאחזר הצהרות נוספות של פרופיל המשתמש וחברויות בקבוצות.

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