API Google Account Linking

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

Conditions préalables et normes

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

  • OAuth 2.0 : conforme à la 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 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 une fois l'authentification et l'autorisation réussies. 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 du bac à sable : https://oauth-redirect-sandbox.googleusercontent.com/r/YOUR_PROJECT_ID

  • Méthode : GET (à l'aide de la redirection du navigateur)

Paramètres de requête

Lorsque vous redirigez l'utilisateur vers Google, des paramètres doivent être ajoutés à 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'authentification) 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 à longue durée de vie 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 incorrecte, vous recevrez une erreur HTTP 400 (requête incorrecte). Le corps de la réponse contient un objet JSON avec la structure suivante :

Champ Description
sendPostBody Détermine si le code JS doit rediriger vers 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 de donner son consentement ou si votre service rencontre une erreur, votre service doit rediriger l'utilisateur 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é par votre service pour informer de manière proactive Google lorsqu'un utilisateur dissocie son compte sur votre plate-forme à l'aide du protocole RISC, ce qui permet aux deux plates-formes de rester 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.
  • Content-Type : application/json

Revendications des jetons 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 respecter les exigences du tableau suivant :

Récupérer Description
iss Revendication de l'émetteur : il s'agit d'une URL que vous hébergez et qui est partagée avec Google lors de l'enregistrement.
aud Revendication d'audience : 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 Heure de la réclamation d'événement : il s'agit d'une valeur NumericDate facultative qui représente l'heure à laquelle le jeton a été révoqué.
exp Revendication de délai d'expiration : n'incluez pas ce champ, car l'événement à l'origine de cette notification a déjà eu lieu.
events Revendication d'é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 : cette valeur doit être définie sur oauth_token.
  • token_type : type de jeton révoqué (access_token ou refresh_token).
  • token_identifier_alg : algorithme utilisé pour encoder le jeton. Il doit être hash_SHA512_double.
  • token : ID du jeton révoqué.

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

Interface "Retourner pour couper le son" d'App Flip

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

Android (résultat d'intent)

Votre application est ouverte à l'aide d'un intent. Une fois le consentement obtenu, il 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