Nutzerinformationen mit der Cloud OAuth API abrufen

In diesem Leitfaden wird beschrieben, wie Sie mit dem /userinfo-Endpunkt in der Cloud OAuth API (cloudoauth.googleapis.com) OpenID Connect-Standardansprüche (OIDC), benutzerdefinierte Verzeichnisansprüche und Gruppenmitgliedschaften für authentifizierte Mitarbeiter abrufen.

Hinweis

  1. Konfigurieren Sie einen Workforce Identity-Pool und -Anbieter. Weitere Informationen finden Sie unter Mitarbeiteridentitätsföderation konfigurieren.
  2. Registrieren Sie einen OAuth-Client und tauschen Sie einen Autorisierungscode gegen ein Zugriffstoken ein. Weitere Informationen finden Sie unter Tokens mit der Cloud OAuth API tauschen.
  3. Ihr Zugriffstoken muss den Geltungsbereich openid enthalten.
  4. Aktivieren Sie die Cloud OAuth API.

    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 Rolle „Inhaber“ (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollen

    API aktivieren

Endpunkt auf Organisationsebene

Die Cloud OAuth API bietet den organisationsbezogenen (Single-Tenant-)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 aktiviertes SCIM-Provisioning gibt der Endpunkt Profilattribute, benutzerdefinierte Ansprüche 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 SCIM-verteilte Gruppen

Wenn eine Anfrage erfolgreich ist, gibt der /userinfo-Endpunkt den HTTP-Status 200 OK und ein JSON-Objekt mit Ansprüchen für den authentifizierten Nutzer zurück.

Das Format der Ansprüche hängt davon ab, ob Ihr Anbieter für Workforce Identity-Pools SCIM-Bereitstellung verwendet:

Inline-Ansprüche (Nicht-SCIM-Identitätspools)

Bei Workforce Identity-Pools ohne aktiviertes SCIM-Provisioning gibt der Endpunkt Profilattribute, benutzerdefinierte Ansprüche 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 Ansprüche (SCIM-fähige Identitätspools)

Bei Workforce Identity-Pools mit aktivierter SCIM-Bereitstellung werden Gruppenmitgliedschaften als verteilte Ansprüche 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 Hauptkonto-ID für den authentifizierten Nutzer im Mitarbeiteridentitätspool.
name string Der vollständige Name des Nutzers, falls vom Identitätsanbieter verfügbar.
email string Die E-Mail-Adresse des authentifizierten Nutzers.
groups array of strings (Nur ohne SCIM) Die Liste der Unternehmensgruppenmitgliedschaften für den Nutzer.
_claim_names object (Nur SCIM-fähig) Ein JSON-Objekt, das verteilte Attributnamen (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 /userinfo-Endpunkt zurückgegeben werden, finden Sie unter Cloud OAuth-Fehler bei Nutzerinformationen und Gruppen.

Nächste Schritte