במדריך הזה מוסבר איך לאחזר הצהרות סטנדרטיות של OpenID Connect (OIDC), הצהרות של ספריות בהתאמה אישית וחברויות בקבוצות של משתמשים מאומתים של כוח עבודה, באמצעות נקודת הקצה /userinfo ב-Cloud OAuth API (cloudoauth.googleapis.com).
לפני שמתחילים
- הגדרת ספק ומאגר זהויות של כוח עבודה. מידע נוסף זמין במאמר הגדרת איחוד שירותי אימות הזהות של כוח עבודה.
- רושמים לקוח OAuth ומחליפים קוד הרשאה בטוקן גישה. מידע נוסף זמין במאמר החלפת אסימונים באמצעות Cloud OAuth API.
- מוודאים שטוקן הגישה כולל את ההיקף
openid. -
מפעילים את Cloud OAuth API, אם הוא עדיין לא מופעל.
התפקידים שנדרשים כדי להפעיל ממשקי API
כדי להפעיל ממשקי API, צריך את ההרשאה
serviceusage.services.enable. אם אתם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד "בעלים" (roles/owner). אחרת, אתם יכולים לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים?
נקודת קצה ברמת הארגון
Cloud OAuth API מספק נקודת קצה ברמת הארגון (דייר יחיד) שאפשר להשתמש בה כשאפליקציית הלקוח והמשאבים מוגבלים לארגון ספציפי ב-Google Cloud :
ה-method organizations.userinfo של Cloud OAuth API מאחזרת הצהרות סטנדרטיות של OpenID Connect (OIDC), הצהרות בהתאמה אישית וחברויות בקבוצות של המשתמש המאומת בארגון ספציפי.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
TOKEN: אסימון הגישה מסוג OAuth 2.0 לטווח קצר, שהתקבל מנקודת הקצה להחלפת אסימונים. -
ORGANIZATION_ID: מזהה הארגון (מספרי) ב- Google Cloud .
ה-method של ה-HTTP וכתובת ה-URL:
GET https://cloudoauth.googleapis.com/v1/organizations/ORGANIZATION_ID/userinfo
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
במאגרי זהויות של כוח עבודה שלא מוגדרת בהם הקצאת הרשאות באמצעות SCIM, נקודת הקצה מחזירה מאפייני פרופיל, הצהרות בהתאמה אישית וחברויות בקבוצות באופן מוטבע:
{
"sub": "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/user@example.com",
"email": "user@example.com",
"custom_claim1": "engineering",
"custom_claim2": "us-west",
"groups": [
"looker-developers",
"analytics-viewers"
]
}
תביעות משתמשים וקבוצות מבוזרות של SCIM
אם הבקשה מצליחה, נקודת הקצה /userinfo מחזירה סטטוס HTTP 200 OK ואובייקט JSON שמכיל הצהרות לגבי המשתמש המאומת.
פורמט ההצהרות תלוי בשאלה אם הספק של מאגר הזהויות של כוח העבודה משתמש בהקצאת SCIM:
הצהרות מוטבעות (מאגרי זהויות שאינם של SCIM)
במאגרי זהויות של כוח עבודה שלא מוגדרת בהם הקצאת הרשאות ידנית, נקודת הקצה מחזירה מאפייני פרופיל, הצהרות בהתאמה אישית וחברויות בקבוצות:
{
"sub": "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/user@example.com",
"email": "user@example.com",
"custom_claim1": "engineering",
"custom_claim2": "us-west",
"groups": [
"looker-developers",
"analytics-viewers"
]
}
תביעות מבוזרות (מאגרי זהויות עם SCIM)
במאגרי זהויות של כוח עבודה שמופעלת בהם הקצאת הרשאות ידנית באמצעות SCIM, החברויות בקבוצות מוחזרות כהצהרות מבוזרות. התשובה כוללת את _claim_names ואת _claim_sources שמפנים לנקודת הקצה /groups:
{
"sub": "principal://iam.googleapis.com/locations/global/workforcePools/my-pool/subject/user@example.com",
"name": "Jane Doe",
"email": "user@example.com",
"_claim_names": {
"groups": "src1"
},
"_claim_sources": {
"src1": {
"endpoint": "https://cloudoauth.googleapis.com/v1/common/groups"
}
}
}
שדות של תביעות בעלות
התשובה מכילה את השדות הבאים של טענות נכונות סטנדרטיות ומבוזרות:
| שדה | סוג | תיאור |
|---|---|---|
sub |
string |
המזהה הייחודי של חשבון המשתמש המאומת במאגר הזהויות של כוח העבודה. |
name |
string |
השם המלא של המשתמש, אם הוא זמין מספק הזהויות. |
email |
string |
כתובת האימייל של המשתמש המאומת. |
groups |
array of strings |
(לא SCIM בלבד) רשימת החברויות בקבוצות של הארגון של המשתמש. |
_claim_names |
object |
(רק אם SCIM מופעל) אובייקט JSON שממפה שמות של הצהרות מבוזרות (כמו groups) למזהי מקור ב-_claim_sources. |
_claim_sources |
object |
(רק אם SCIM מופעל) אובייקט JSON שמגדיר את נקודת הקצה של המקור לכל מזהה של טענה מבוזרת. |
למידע על תגובות שגיאה שמוחזרות על ידי נקודת הקצה /userinfo, קראו את המאמר שגיאות בקבוצות ובפרטי משתמשים ב-Cloud OAuth.