Récupérer des informations utilisateur avec l'API Cloud OAuth

Ce guide explique comment récupérer les revendications standards OpenID Connect (OIDC), les revendications de répertoire personnalisées et les appartenances à des groupes pour les utilisateurs authentifiés du personnel à l'aide du point de terminaison /userinfo dans l'API Cloud OAuth (cloudoauth.googleapis.com).

Avant de commencer

  1. Configurez un pool d'identités de personnel et un fournisseur. Pour en savoir plus, consultez Configurer la fédération des identités des employés.
  2. Enregistrez un client OAuth et échangez un code d'autorisation contre un jeton d'accès. Pour en savoir plus, consultez Échanger des jetons avec l'API Cloud OAuth.
  3. Assurez-vous que votre jeton d'accès inclut le champ d'application openid.
  4. Activez l'API Cloud OAuth.

    Rôles requis pour activer les API

    Pour activer les API, vous devez disposer de l'autorisation serviceusage.services.enable. Si vous avez créé le projet, vous disposez probablement déjà de cette autorisation grâce au rôle Propriétaire (roles/owner). Sinon, vous pouvez obtenir cette autorisation grâce au rôle Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin). Découvrez comment attribuer des rôles.

    Activer l'API

Point de terminaison au niveau de l'organisation

L'API Cloud OAuth fournit le point de terminaison à portée d'organisation (à locataire unique) que vous pouvez utiliser lorsque votre application cliente et vos ressources sont limitées à uneGoogle Cloud spécifique :

La méthode organizations.userinfo de l'API Cloud OAuth récupère les revendications standards OpenID Connect (OIDC), les revendications personnalisées et les appartenances à des groupes pour l'utilisateur authentifié dans une organisation spécifique.

Avant d'utiliser les données de requête, effectuez les remplacements suivants :

  • TOKEN : jeton d'accès OAuth 2.0 à durée de vie limitée obtenu à partir du point de terminaison d'échange de jetons.
  • ORGANIZATION_ID : ID numérique de votre organisation Google Cloud .

Méthode HTTP et URL :

GET https://cloudoauth.googleapis.com/v1/organizations/ORGANIZATION_ID/userinfo

Pour envoyer votre requête, développez l'une des options suivantes :

Pour les pools d'identités de personnel sans provisionnement SCIM activé, le point de terminaison renvoie les attributs de profil, les revendications personnalisées et les appartenances aux groupes en ligne :

{
  "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"
  ]
}

Revendications utilisateur et groupes distribués SCIM

Lorsqu'une requête aboutit, le point de terminaison /userinfo renvoie un état HTTP 200 OK et un objet JSON contenant les revendications de l'utilisateur authentifié.

Le format des revendications dépend de l'utilisation ou non du provisionnement SCIM par votre fournisseur de pools d'identités des employés :

Revendications intégrées (pools d'identités non SCIM)

Pour les pools d'identités des employés sans provisionnement SCIM activé, le point de terminaison renvoie les attributs de profil, les revendications personnalisées et les appartenances aux groupes en ligne :

{
  "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"
  ]
}

Revendications distribuées (pools d'identités compatibles SCIM)

Pour les pools d'identités de personnel avec provisionnement SCIM activé, les appartenances aux groupes sont renvoyées sous forme de revendications distribuées. La réponse inclut _claim_names et _claim_sources qui font référence au point de terminaison /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"
    }
  }
}

Champs de la demande

La réponse contient les champs de revendication standards et distribués suivants :

Champ Type Description
sub string Identifiant principal unique de l'utilisateur authentifié dans le pool d'identités de personnel.
name string Nom complet de l'utilisateur, s'il est disponible auprès du fournisseur d'identité.
email string Adresse e-mail de l'utilisateur authentifié.
groups array of strings (Non-SCIM uniquement) Liste des appartenances à des groupes d'entreprise pour l'utilisateur.
_claim_names object (SCIM uniquement) Objet JSON qui mappe les noms de revendications distribuées (tels que groups) aux identifiants sources dans _claim_sources.
_claim_sources object (SCIM activé uniquement) Objet JSON qui définit le point de terminaison source pour chaque identifiant de revendication distribuée.

Pour en savoir plus sur les réponses d'erreur renvoyées par le point de terminaison /userinfo, consultez Erreurs liées aux informations utilisateur et aux groupes Cloud OAuth.

Étapes suivantes