In diesem Leitfaden wird beschrieben, wie Sie OpenID Connect (OIDC)-Standardansprüche, benutzerdefinierte Verzeichnisansprüche und Gruppenmitgliedschaften für authentifizierte Workforce-Nutzer mithilfe des Endpunkts /userinfo in der Cloud OAuth API (cloudoauth.googleapis.com) abrufen.
Hinweis
- Workforce Identity-Pool und -Anbieter konfigurieren Weitere Informationen finden Sie unter Mitarbeiteridentitätsföderation konfigurieren.
- Registrieren Sie einen OAuth-Client und tauschen Sie einen Autorisierungscode gegen ein Zugriffstoken aus. Weitere Informationen finden Sie unter Tokens mit der Cloud OAuth API austauschen.
- Achten Sie darauf, dass Ihr Zugriffstoken den Bereich
openidenthält. -
Aktivieren Sie die Cloud OAuth API, falls sie noch nicht aktiviert ist.
Rollen, die zum Aktivieren von APIs erforderlich sind
Zum Aktivieren von APIs benötigen Sie die Berechtigung
serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Inhaberrolle (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollen
Endpunkt auf Organisationsebene
Die Cloud OAuth API bietet den organisationsbezogenen (Einzelmandanten-)Endpunkt, den Sie verwenden können, wenn Ihre Clientanwendung und Ressourcen auf eine bestimmteGoogle Cloud -Organisation beschränkt sind:
Mit der Methode organizations.userinfo der Cloud OAuth API werden OpenID Connect-Standardansprüche (OIDC), benutzerdefinierte Ansprüche und Gruppenmitgliedschaften für den authentifizierten Nutzer in einer bestimmten Organisation abgerufen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
TOKEN: das kurzlebige OAuth 2.0-Zugriffstoken, das vom Tokenaustausch-Endpunkt abgerufen wurde.ORGANIZATION_ID: Ihre numerische Google Cloud Organisations-ID.
HTTP-Methode und URL:
GET https://cloudoauth.googleapis.com/v1/organizations/ORGANIZATION_ID/userinfo
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
Bei Workforce Identity-Pools ohne aktivierte SCIM-Bereitstellung gibt der Endpunkt Profilattribute, benutzerdefinierte Anforderungen und Gruppenmitgliedschaften inline zurück:
{
"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"
]
}
Nutzeransprüche und verteilte SCIM-Gruppen
Wenn eine Anfrage erfolgreich ist, gibt der /userinfo-Endpunkt den HTTP-Status 200 OK und ein JSON-Objekt mit Anforderungen für den authentifizierten Nutzer zurück.
Das Format der Anforderungen hängt davon ab, ob Ihr Anbieter von Workforce Identity-Pools die SCIM-Bereitstellung verwendet:
Inline-Anforderungen (Nicht-SCIM-Identitätspools)
Bei Workforce Identity-Pools ohne aktivierte SCIM-Bereitstellung gibt der Endpunkt Profilattribute, benutzerdefinierte Anforderungen und Gruppenmitgliedschaften inline zurück:
{
"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"
]
}
Verteilte Anforderungen (SCIM-fähige Identitätspools)
Bei Workforce Identity-Pools mit aktivierter SCIM-Bereitstellung werden Gruppenmitgliedschaften als verteilte Anforderungen zurückgegeben. Die Antwort enthält _claim_names und _claim_sources, die auf den /groups-Endpunkt verweisen:
{
"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"
}
}
}
Anspruchsfelder
Die Antwort enthält die folgenden Standard- und verteilten Anspruchsfelder:
| Feld | Typ | Beschreibung |
|---|---|---|
sub |
string |
Die eindeutige Hauptkontokennung für den authentifizierten Nutzer im Workforce Identity-Pool. |
name |
string |
Der vollständige Name des Nutzers, sofern vom Identitätsanbieter verfügbar. |
email |
string |
Die E‑Mail-Adresse des authentifizierten Nutzers. |
groups |
array of strings |
(Nur Nicht-SCIM) Die Liste der Unternehmensgruppenmitgliedschaften für den Nutzer. |
_claim_names |
object |
(Nur SCIM-fähig) Ein JSON-Objekt, das verteilte Anspruchsnamen (z. B. groups) Quellkennungen in _claim_sources zuordnet. |
_claim_sources |
object |
(Nur SCIM-fähig) Ein JSON-Objekt, das den Quellendpunkt für jede verteilte Anspruchs-ID definiert. |
Informationen zu Fehlerantworten, die vom Endpunkt /userinfo zurückgegeben werden, finden Sie unter Cloud OAuth-Nutzerinformationen und -Gruppenfehler.