אתם יכולים להשתמש ב-Cloud OAuth API (cloudoauth.googleapis.com) כדי להחליף קודי הרשאה או טוקנים של רענון בטוקנים של גישה לטווח קצר מסוג OAuth 2.0 Google Cloudובטוקנים של מזהה OpenID Connect (OIDC). בשילובים של איחוד שירותי אימות הזהות של כוח עבודה, האפליקציות יכולות לאמת את טוקני המזהה שהוחזרו באמצעות המפתחות הציבוריים של הארגון, ולהשתמש בטוקני הגישה כדי להפעיל ממשקי API שלGoogle Cloud בשם המשתמשים המאוחדים.
לפני שמתחילים
- הגדרת ספק ומאגר זהויות של כוח עבודה. מידע נוסף זמין במאמר הגדרת איחוד שירותי אימות הזהות של כוח עבודה.
- רושמים לקוח OAuth ויוצרים פרטי כניסה של לקוח. מידע נוסף זמין במאמר ניהול אפליקציות OAuth.
-
מפעילים את Cloud OAuth API, אם הוא עדיין לא מופעל.
התפקידים שנדרשים כדי להפעיל ממשקי API
כדי להפעיל ממשקי API, צריך את ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד "בעלים" (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים
שיטות אימות
כדי לאמת את לקוח ה-OAuth באמצעות Cloud OAuth API, צריך להעביר את מזהה הלקוח וסוד הלקוח באחת מהדרכים הבאות:
אימות בסיסי של HTTP (מומלץ): מעבירים את מזהה הלקוח וסוד הלקוח בקידוד Base64 בכותרת
Authorization:-H "Authorization: Basic $(echo -n 'CLIENT_ID:CLIENT_SECRET' | base64)"
פרמטרים של גוף הבקשה: מעבירים את הפרמטרים
client_idו-client_secretבגוף הבקשה.
החלפת קוד הרשאה בטוקנים
אחרי שמשתמש מאוחד נכנס באמצעות ספק הזהויות (IdP) שלו בנקודת הקצה המאוחדת להרשאות שלGoogle Cloud(https://auth.cloud.google/authorize), נקודת הקצה להרשאות מפנה את המשתמש לכתובת ה-URI להפניה מחדש של האפליקציה שלכם עם קוד הרשאה. כדי להחליף את קוד ההרשאה הזה בטוקן גישה, בטוקן רענון ובטוקן של מזהה OIDC, שולחים בקשת HTTP POST לנקודת הקצה ברמת הארגון (דייר יחיד):
אימות בסיסי של HTTP (מומלץ):
curl -X POST https://cloudoauth.googleapis.com/v1/organizations/ORGANIZATION_ID/token \ -H "Authorization: Basic BASE64_ENCODED_CREDENTIALS" \ -H "Content-Type: application/x-www-form-urlencoded" \ --data-urlencode "grant_type=authorization_code" \ --data-urlencode "code=AUTHORIZATION_CODE" \ --data-urlencode "redirect_uri=REDIRECT_URI"
פרמטרים של גוף הבקשה:
curl -X POST https://cloudoauth.googleapis.com/v1/organizations/ORGANIZATION_ID/token \ -H "Content-Type: application/x-www-form-urlencoded" \ --data-urlencode "grant_type=authorization_code" \ --data-urlencode "code=AUTHORIZATION_CODE" \ --data-urlencode "redirect_uri=REDIRECT_URI" \ --data-urlencode "client_id=CLIENT_ID" \ --data-urlencode "client_secret=CLIENT_SECRET"
מחליפים את מה שכתוב בשדות הבאים:
-
ORGANIZATION_ID: מזהה הארגון (מספרי) ב- Google Cloud. -
BASE64_ENCODED_CREDENTIALS: המחרוזת בקידוד base64 שלCLIENT_ID:CLIENT_SECRET. -
AUTHORIZATION_CODE: קוד ההרשאה שמוחזר על ידי נקודת הקצה המאוחדת להרשאה של Google Cloud(https://auth.cloud.google/authorize). -
REDIRECT_URI: ה-URI להפניה אוטומטית שהוגדר בלקוח OAuth. -
CLIENT_ID: מזהה הלקוח הרשום שלכם ב-OAuth. -
CLIENT_SECRET: סוד הלקוח ב-OAuth.
רענון של טוקן גישה
כשתוקף אסימון הגישה פג, משתמשים בסוג ה-grant refresh_token כדי לקבל אסימון גישה חדש לטווח קצר מנקודת הקצה ברמת הארגון (דייר יחיד):
curl -X POST https://cloudoauth.googleapis.com/v1/organizations/ORGANIZATION_ID/token \ -H "Authorization: Basic BASE64_ENCODED_CREDENTIALS" \ -H "Content-Type: application/x-www-form-urlencoded" \ --data-urlencode "grant_type=refresh_token" \ --data-urlencode "refresh_token=REFRESH_TOKEN" \ --data-urlencode "redirect_uri=REDIRECT_URI"
מחליפים את מה שכתוב בשדות הבאים:
-
ORGANIZATION_ID: מזהה הארגון (מספרי) ב- Google Cloud. -
BASE64_ENCODED_CREDENTIALS: המחרוזת בקידוד base64 שלCLIENT_ID:CLIENT_SECRET. -
REFRESH_TOKEN: טוקן הרענון שנקודת הקצה של הטוקן החזירה קודם. -
REDIRECT_URI: ה-URI להפניה אוטומטית שהוגדר בלקוח OAuth.
שדות של תגובת טוקן
כשהחלפת האסימון מצליחה, Cloud OAuth API מחזיר סטטוס HTTP 200 OK שמכיל את השדות הבאים:
| שדה | סוג | תיאור |
|---|---|---|
access_token |
string |
אסימון הגישה מסוג OAuth 2.0 שהונפק על ידי Cloud OAuth API כדי לקרוא לממשקי ה-API של Google Cloud . |
refresh_token |
string |
טוקן הרענון שמשמש לקבלת טוקני גישה חדשים כשהתוקף של הטוקן הנוכחי פג. |
expires_in |
integer |
משך החיים שנותר של טוקן הגישה בשניות (בדרך כלל 3599).
|
token_type |
string |
סוג הטוקן (לדוגמה, Bearer). |
scope |
string |
רשימה של היקפי ההרשאות שמשויכים לטוקן. |
id_token |
string |
טוקן של מזהה OIDC שמכיל הצהרות זהות מאומתות. |
במאמר שגיאות בהחלפת אסימונים ב-Cloud OAuth API מוסבר על תגובות השגיאה שמוחזרות על ידי Cloud OAuth API.
אימות הטוקן של מזהה ה-OIDC
בשילובים של Looker OIDC, אתם יכולים לאמת את החתימה הקריפטוגרפית של ה-id_token שמוחזר על ידי Cloud OAuth API באמצעות מפתחות ה-JSON Web Keys (JWK) הציבוריים של הארגון.
מאחזרים את מפתחות ה-JWK הציבוריים של הארגון באחת מהדרכים הבאות:
- שליחת שאילתה ישירות לנקודת הקצה של קבוצת מפתחות האינטרנט בפורמט JSON (JWKS): שולחים בקשת HTTP
GETאלhttps://cloudoauth.googleapis.com/v1/organizations/ORGANIZATION_ID/.well-known/jwks.json. - שימוש במסמך Discovery של OIDC: שולחים בקשת HTTP
GETלנקודת הקצה של הגילוי של OIDC (https://auth.cloud.google/oidc/organizations/ORGANIZATION_ID/.well-known/openid-configuration) כדי לאחזר את כתובת ה-URL של נקודת הקצה של JWKS מהשדהjwks_uri.
בשתי כתובות ה-URL של נקודות הקצה, מחליפים את ORGANIZATION_ID במזהה הארגון המספרי שלכם ב- Google Cloud .
המאמרים הבאים
- אחזור פרטי משתמשים באמצעות Cloud OAuth API
- אחזור קבוצות ארגוניות באמצעות Cloud OAuth API
- סקירה כללית על Cloud OAuth API
- ניהול אפליקציות OAuth לאיחוד שירותי אימות הזהות של כוח עבודה
- מאמרי העזרה של Cloud OAuth REST API