API Google Account Linking

Cette page de référence décrit les points de terminaison et les interfaces proposés par Google que votre application utilise lors du processus d'association de comptes basé sur OAuth.

Prérequis et normes

Pour interagir correctement avec ces points de terminaison Google, votre intégration doit respecter les normes suivantes :

  • OAuth 2.0 : conforme à la norme RFC 6749.
  • Jetons Web JSON (JWT) : conformes à la norme RFC 7519 (pour l'association simplifiée et RISC).
  • Jetons d'événement de sécurité : conformes à la norme RFC 8417 (pour RISC).
  • HTTPS : toutes les requêtes doivent être effectuées via une connexion HTTPS sécurisée.

URI de redirection OAuth

Point de terminaison vers lequel votre service redirige le navigateur de l'utilisateur après une authentification et un consentement réussis. Le paramètre de chemin d'accès YOUR_PROJECT_ID correspond à l'ID que vous configurez lors de l'enregistrement.

  • URL: https://oauth-redirect.googleusercontent.com/r/YOUR_PROJECT_ID
  • URL dans le bac à sable https://oauth-redirect-sandbox.googleusercontent.com/r/YOUR_PROJECT_ID

  • Méthode : GET (à l'aide d'une redirection du navigateur)

Paramètres de requête

Lorsque vous redirigez l'utilisateur vers Google, vous devez ajouter des paramètres à l'URL. Selon le flux OAuth utilisé, ces paramètres sont mis en forme sous forme de chaîne de requête (flux de code d'autorisation) ou de fragment d'URL (flux implicite).

Paramètre Description
code (Obligatoire pour le flux de code d'autorisation) Code d'autorisation généré par votre service.
state (Obligatoire) Valeur d'état non modifiée reçue initialement de Google.
access_token (Obligatoire pour le flux implicite) Jeton d'accès de longue durée généré par votre service.
token_type (Obligatoire pour le flux implicite) Doit être bearer.

Réponses d'erreur

Si la requête envoyée à l'URI de redirection OAuth est mal formée, vous recevrez une erreur HTTP 400 Bad Request. Le corps de la réponse contiendra un objet JSON avec la structure suivante :

Champ Description
sendPostBody Détermine si le code JS doit rediriger vers le redirectUri avec POST. Généralement false dans ce scénario.
errorMessage Message d'erreur à afficher au client lorsque la redirection ne peut pas être effectuée. Pour les fragments manquants, il s'agit de "A URI fragment or query string must be set."

Réponses d'erreur OAuth 2.0

Si l'utilisateur refuse son consentement ou si votre service rencontre une erreur, il doit le rediriger vers l'URI de redirection OAuth avec les paramètres d'erreur OAuth 2.0 standards (tels que error=access_denied). Google traitera ces paramètres et affichera un écran d'erreur approprié à l'utilisateur.

API RISC (facultative)

Utilisée par votre service pour informer Google de manière proactive lorsqu'un utilisateur dissocie son compte sur votre plate-forme à l'aide du RISC, ce qui garantit que les deux plates-formes restent synchronisées.

  • URL : https://risc.googleapis.com/v1/events:publish
  • Méthode : POST
  • Authentification : nécessite un jeton de compte de service Google avec les autorisations appropriées.
  • Type de contenu : application/json

Revendications de jeton d'événement de sécurité

Les jetons d'événement de sécurité que vous utilisez pour informer Google des événements de révocation de jeton doivent être conformes aux exigences du tableau suivant :

Récupérer Description
iss Revendication de l'émetteur : il s'agit d'une URL que vous hébergez et que vous partagez avec Google lors de l'enregistrement.
aud Revendication de l'audience : elle identifie Google comme destinataire du jeton JWT. Elle doit être définie sur google_account_linking.
jti Revendication de l'ID JWT : il s'agit d'un ID unique que vous générez pour chaque jeton d'événement de sécurité.
iat Revendication "Émis à" : il s'agit d'une valeur NumericDate qui représente l'heure à laquelle ce jeton d'événement de sécurité a été créé.
toe Revendication "Heure de l'événement" : il s'agit d'une valeur NumericDate facultative qui représente l'heure à laquelle le jeton a été révoqué.
exp Revendication "Heure d'expiration" : n'incluez pas ce champ, car l'événement qui a entraîné cette notification a déjà eu lieu.
events Revendication "Événements de sécurité" : il s'agit d'un objet JSON qui ne doit inclure qu'un seul événement de révocation de jeton contenant les champs suivants :

  • subject_type : doit être défini sur oauth_token.
  • token_type : type de jeton révoqué, access_token ou refresh_token.
  • token_identifier_alg : algorithme utilisé pour encoder le jeton, qui doit être hash_SHA512_double.
  • token : ID du jeton révoqué.

Pour en savoir plus sur les types et formats de champs, consultez Jetons Web JSON (JWT)

Interface "Flip-Back" de l'application Flip

Pour l'application Flip, votre application mobile doit renvoyer le code d'autorisation ou le jeton d'accès à l'application Google.

Android (résultat de l'intent)

Votre application s'ouvre à l'aide d'un intent. Après le consentement, elle se termine et renvoie un résultat à Google. Pour en savoir plus, consultez le guide d'implémentation Android.

  • Action : com.google.android.gms.auth.CODE_AVAILABLE
  • Extras: code, state, access_token, token_type.

Votre application ouvre Google à l'aide d'un schéma d'URL personnalisé ou d'un lien universel HTTPS. Pour en savoir plus, consultez le guide d'implémentation iOS.

  • Format : <return_url>?code=AUTHORIZATION_CODE&state=STATE_STRING