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/oauthtokenousts.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
issuerde l'organisation et les URL des points de terminaison (authorization_endpoint,token_endpoint,userinfo_endpointetjwks_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
keyspour 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 :
- Récupérer le document de découverte : envoyez une requête
GETau 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_urietuserinfo_endpoint). - 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. - Échanger le code d'autorisation contre des jetons : envoyez une requête
POSTautoken_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). - 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 deid_token. - Facultatif : Récupérer les informations utilisateur : envoyez une requête
GETavec le jeton d'accès auuserinfo_endpoint(/userinfo) pour récupérer des revendications de profil utilisateur et des appartenances à des groupes supplémentaires.
Étapes suivantes
- Échanger des jetons avec l'API Cloud OAuth
- Récupérer des informations utilisateur avec l'API Cloud OAuth
- Récupérer des groupes d'entreprise avec l'API Cloud OAuth
- Gérer les applications OAuth pour la fédération d'identité de personnel
- Documentation de référence de l'API REST Cloud OAuth