Présentation de l'API Cloud OAuth

L'API Cloud OAuth (cloudoauth.googleapis.com) fournit l'échange de jetons et l'authentification OAuth 2.0 et OpenID Connect (OIDC) pour la fédération des identités des employés.

L'API Cloud OAuth authentifie les utilisateurs Google Cloud . Cette API permet à vos applications de rediriger les utilisateurs vers le point de terminaison d'autorisation (https://auth.cloud.google/authorize) pour obtenir des codes d'autorisation. Vos applications peuvent ensuite échanger des identifiants externes, des codes d'autorisation ou des jetons d'actualisation contre des jetons d'accès OAuth 2.0 et des jetons d'ID OIDC de courte durée.

L'API est basée sur les spécifications OAuth 2.0 Token Exchange (RFC 8693) et OAuth 2.0 Authorization Framework (RFC 6749).

Comparaison avec Security Token Service

Auparavant,le Security Token Service (sts.googleapis.com) de Google Cloudgérait l'échange de jetons pour la fédération d'identité de personnel et la fédération d'identité de charge de travail.

L'API Cloud OAuth accepte les mêmes échanges de jetons que Security Token Service, mais elle est dédiée au trafic de la fédération d'identité de personnel. Cette séparation isole les échanges de jetons des employés du trafic des charges de travail, ce qui permet d'éviter les interruptions entre services et d'adapter la capacité des employés indépendamment de Security Token Service. Suivez ces consignes en fonction de l'état de votre intégration :

  • Nouvelles intégrations : redirigez les utilisateurs vers le point de terminaison d'autorisation (https://auth.cloud.google/authorize) et échangez des jetons à l'aide de l'API Cloud OAuth (cloudoauth.googleapis.com).
  • Intégrations existantes : si vous utilisez Security Token Service (sts.googleapis.com/v1/oauthtoken ou sts.googleapis.com/v1/token), passez à cloudoauth.googleapis.com.

Points de terminaison disponibles

Le tableau suivant liste les points de terminaison que vous utilisez dans les intégrations de l'API Cloud OAuth. La plupart de ces points de terminaison sont des points de terminaison à l'échelle de l'organisation (à locataire unique) qui fournissent une gestion et une découverte des clés isolées lorsque votre application cliente et vos ressources sont limitées à une seule organisation Google Cloud.

Dans les URL de point de terminaison au niveau de l'organisation, remplacez ORGANIZATION_ID par l'ID d'organisation numérique Google Cloud :

Point de terminaison Méthode URL Description
Découverte OpenID Connect GET https://auth.cloud.google/oidc/organizations/ORGANIZATION_ID/.well-known/openid-configuration Renvoie les métadonnées de configuration du fournisseur OpenID Connect Discovery 1.0 (document de découverte) pour l'organisation.
Autorisation GET https://auth.cloud.google/authorize Redirige les utilisateurs fédérés pour qu'ils se connectent avec leur fournisseur d'identité (IdP) et renvoie un code d'autorisation à l'URI de redirection de votre application.
Échange de jetons POST https://cloudoauth.googleapis.com/v1/organizations/ORGANIZATION_ID/token Échange des codes d'autorisation ou des jetons d'actualisation contre des jetons d'accès OAuth 2.0 et des jetons d'ID OIDC.
JSON Web Key Set (JWKS) GET https://cloudoauth.googleapis.com/v1/organizations/ORGANIZATION_ID/.well-known/jwks.json Renvoie les clés Web JSON (JWK) publiques utilisées pour valider les signatures des jetons d'ID OIDC émis pour l'organisation.
Informations utilisateur GET https://cloudoauth.googleapis.com/v1/organizations/ORGANIZATION_ID/userinfo Récupère les revendications standards OIDC, les revendications d'annuaire personnalisées et les appartenances à des groupes pour l'utilisateur authentifié.
Groupes d'entreprise GET https://cloudoauth.googleapis.com/v1/common/groups Récupère les appartenances à des groupes d'entreprise paginées pour l'utilisateur authentifié.

Point de terminaison d'autorisation

Dans un flux avec code d'autorisation OAuth 2.0 et OIDC, votre application redirige les utilisateurs fédérés vers le point de terminaison d'autorisation unifié de Google Cloud(https://auth.cloud.google/authorize) pour qu'ils se connectent avec leur IdP. Une fois l'authentification réussie, le point de terminaison d'autorisation redirige l'utilisateur vers l'URI de redirection de votre application avec un code d'autorisation. Votre application échange ensuite ce code contre des jetons au niveau du point de terminaison d'échange de jetons.

Points de terminaison de découverte OIDC et JWKS

Pour les intégrations OIDC Looker, l'API Cloud OAuth fournit des points de terminaison publics non authentifiés au niveau de l'organisation pour la configuration du client et la validation des jetons :

  • Point de terminaison de découverte OpenID Connect : fournit les métadonnées de configuration du fournisseur OpenID Connect Discovery 1.0 (document de découverte) pour l'organisation. Le document de découverte inclut l'identifiant issuer de l'organisation et les URL des points de terminaison (authorization_endpoint, token_endpoint, userinfo_endpoint et jwks_uri). Il liste également les champs d'application, les revendications, les algorithmes de signature (RS256) et les méthodes de clé de vérification pour l'échange de code (PKCE) (S256) compatibles.
  • Point de terminaison JWKS (JSON Web Key Set) : fournit le JWKS (JSON Web Key Set) public pour l'organisation. Les applications utilisent les clés Web JSON (JWK) publiques du tableau keys pour vérifier la signature cryptographique d'un jeton d'ID OIDC (id_token) émis par l'API Cloud OAuth.

Dans une intégration OIDC classique, votre application utilise ces points de terminaison dans l'ordre suivant :

  1. Récupérer le document de découverte : envoyez une requête GET au point de terminaison de découverte OpenID Connect (/.well-known/openid-configuration) et lisez les URL des points de terminaison (authorization_endpoint, token_endpoint, jwks_uri et userinfo_endpoint).
  2. Demander un code d'autorisation : redirigez l'utilisateur vers authorization_endpoint (https://auth.cloud.google/authorize) pour qu'il se connecte avec son IdP et reçoive un code d'autorisation à l'URI de redirection de votre application.
  3. Échanger le code d'autorisation contre des jetons : envoyez une requête POST au token_endpoint (/token) pour échanger le code d'autorisation contre un jeton d'accès OAuth 2.0 et un jeton d'ID OIDC (id_token).
  4. Valider le jeton d'ID : récupérez les clés publiques de l'organisation à partir de jwks_uri (/.well-known/jwks.json) et utilisez-les pour valider la signature cryptographique de id_token.
  5. Facultatif : Récupérer les informations utilisateur : envoyez une requête GET avec le jeton d'accès au userinfo_endpoint (/userinfo) pour récupérer des revendications de profil utilisateur et des appartenances à des groupes supplémentaires.

Étapes suivantes