Nutzerinformationen mit der Cloud OAuth API abrufen

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

  1. Workforce Identity-Pool und -Anbieter konfigurieren Weitere Informationen finden Sie unter Mitarbeiteridentitätsföderation konfigurieren.
  2. 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.
  3. Achten Sie darauf, dass Ihr Zugriffstoken den Bereich openid enthält.
  4. 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

    API aktivieren

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.

Nächste Schritte