במדריך הזה מוסבר איך להמיר פרטי כניסה חיצוניים, קודי הרשאה או אסימוני רענון ל Google Cloud אסימוני גישה באמצעות Cloud OAuth API (cloudoauth.googleapis.com) בשילוב עם איחוד שירותי אימות הזהות של כוח עבודה.
לפני שמתחילים
- הגדרת ספק ומאגר זהויות של כוח עבודה. מידע נוסף זמין במאמר הגדרת איחוד שירותי אימות הזהות של כוח העבודה.
- רושמים לקוח OAuth ויוצרים פרטי כניסה ללקוח. מידע נוסף מופיע במאמר בנושא ניהול אפליקציות OAuth.
-
מפעילים את Cloud OAuth API.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, נדרשת ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים
שיטות אימות
ממשק Cloud OAuth API תומך בשתי שיטות לאימות לקוחות:
אימות בסיסי של HTTP (מומלץ): מעבירים את מזהה הלקוח ואת סוד הלקוח בקידוד Base64 בכותרת
Authorization:-H "Authorization: Basic $(echo -n 'CLIENT_ID:CLIENT_SECRET' | base64)"
פרמטרים של גוף הבקשה: מעבירים את הפרמטרים
client_idו-client_secretבגוף הבקשה.
המרת קוד הרשאה לאסימונים
כדי להחליף קוד הרשאה של Google Cloud בטוקן גישה ובטוקן רענון, שולחים בקשת HTTP POST:
נקודת קצה בהיקף הארגון (דייר יחיד)
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"
מחליפים את מה שכתוב בשדות הבאים:
-
BASE64_ENCODED_CREDENTIALS: מחרוזת בקידוד Base64 שלCLIENT_ID:CLIENT_SECRET. -
AUTHORIZATION_CODE: קוד ההרשאה שהונפק על ידיGoogle Cloud. -
REDIRECT_URI: ה-URI להפניה אוטומטית שהוגדר בלקוח OAuth. -
ORGANIZATION_ID: מזהה הארגון (מספרי) ב- Google Cloud. -
CLIENT_ID: מזהה הלקוח הרשום שלכם ב-OAuth. -
CLIENT_SECRET: סוד הלקוח ב-OAuth.
רענון של טוקן גישה
כשתוקף אסימון הגישה פג, צריך להשתמש בסוג ההרשאה 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"
מחליפים את REFRESH_TOKEN באסימון הרענון שהוחזר קודם מנקודת הקצה של האסימון.
שדות של תגובת טוקן
כשהחלפת האסימון מצליחה, Cloud OAuth API מחזיר סטטוס HTTP 200 OK שמכיל את השדות הבאים:
| שדה | סוג | תיאור |
|---|---|---|
access_token |
string |
אסימון הגישה מסוג OAuth 2.0 שהונפק על ידי Cloud OAuth API כדי לקרוא ל-APIs 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.
המאמרים הבאים
- אחזור פרטי משתמש באמצעות Cloud OAuth API
- אחזור קבוצות ארגוניות באמצעות Cloud OAuth API
- סקירה כללית על Cloud OAuth API
- ניהול אפליקציות OAuth לאיחוד שירותי אימות הזהות של כוח עבודה
- הפניית Cloud OAuth REST API