Bonnes pratiques pour implémenter Se connecter avec Google

Se connecter avec Google

Introduction

Se connecter avec Google est un moyen rapide et sécurisé pour les utilisateurs de se connecter à votre application ou votre site Web. Si vous l'implémentez correctement, vous simplifierez le processus d'enregistrement des utilisateurs et renforcerez la sécurité de votre application. Ce document décrit les bonnes pratiques pour intégrer Se connecter avec Google sur les plates-formes Web, Android et iOS. Cette documentation se concentre uniquement sur l'authentification. L'autorisation dépasse le cadre de ce document.

Checklist des étapes de l'intégration

Cette checklist fournit une feuille de route générale pour vous guider tout au long du processus d'intégration de Se connecter avec Google. Il est organisé en phases clés, de la configuration initiale au lancement en production. Utilisez cette liste pour suivre votre progression et cliquez sur les liens pour accéder aux instructions détaillées pour chaque étape.

Phase 0 : Premiers pas (facultatif)

Accélérez votre intégration grâce à des ateliers de programmation pratiques et détaillés pour les développeurs.

 Web : suivez l'atelier de programmation One Tap et Bouton "Se connecter avec Google" pour créer une intégration Web de base.

 Android : suivez l'atelier de programmation Android pour découvrir les principes de base du Gestionnaire d'identifiants d'Android.

 iOS : suivez l'atelier de programmation iOS pour découvrir le SDK iOS.

Phase 1 : Configuration du projet Google Cloud et de la marque

Assurez-vous que votre projet est configuré pour réussir dès le départ.

Structurez les projets Google Cloud pour différents environnements et marques.

 Configurez l'écran de consentement OAuth en fournissant toutes les informations requises sur la marque et l'assistance.

 Créez le type d'ID client OAuth approprié pour chaque plate-forme (Web, Android, iOS).

Phase 2 : Développement du cœur de l'application (frontend et backend)

Créez la logique de serveur sécurisée et l'expérience utilisateur spécifique à la plate-forme.

Dans votre développement d'interface :

 Consultez et appliquez les bonnes pratiques générales en matière d'expérience utilisateur pour maximiser l'adoption et la confiance des utilisateurs.

 Web : utilisez la bibliothèque JavaScript officielle et intégrez les flux Button et One Tap.

 Android : utilisez le SDK Android officiel pour l'intégration.

 iOS : utilisez le SDK iOS officiel pour l'intégration.

Dans votre développement backend :

 Implémentez une validation sécurisée des jetons d'ID Google dans le backend.

 Utilisez la revendication sub comme identifiant utilisateur unique et permanent dans votre système.

 Planifiez la séparation des champs d'application d'authentification et d'autorisation, le cas échéant.

Phase 3 : Renforcement de la sécurité et lancement en production

Assurez-vous que votre intégration est sécurisée, conforme et prête pour la production.

 Consultez et appliquez les bonnes pratiques de sécurité.

 Suivez la procédure de validation des applications OAuth avant le lancement.

 Assurez-vous que votre application gère correctement la révocation des jetons lors de la suppression du compte utilisateur.

Bonnes pratiques générales (toutes les plates-formes)

Ces pratiques s'appliquent quelle que soit la plate-forme pour laquelle vous développez. Les développeurs doivent également consulter les Règles OAuth 2.0 générales pour s'assurer d'une conformité totale.

Cette section décrit les bonnes pratiques pour structurer vos projets Google Cloud et configurer vos clients OAuth afin de respecter les consignes de sécurité et de branding.

  • Utiliser des projets distincts pour les tests et la production

    Étant donné que certaines règles Google ne s'appliquent qu'aux applications de production, vous devez créer des projets distincts dans la console Google Cloud pour vos différents environnements de déploiement (développement, préproduction et production, par exemple). Pour en savoir plus, consultez cette page.

  • Utiliser des projets distincts pour chaque marque ou domaine

    Si votre organisation gère plusieurs applications avec des marques distinctes, chaque marque doit avoir son propre projet Google Cloud dédié. Les informations visibles par l'utilisateur sur l'écran de consentement, comme le nom de l'application, le logo, l'adresse e-mail d'assistance et les liens vers les conditions d'utilisation et les règles de confidentialité, sont configurées au niveau du projet. Cela signifie que tous les ID client OAuth créés dans un même projet partageront la même identité visuelle. En attribuant à chaque marque son propre projet, vous vous assurez que les utilisateurs voient les informations légales et de branding correctes pour l'application spécifique qu'ils utilisent.

  • Fournir une adresse e-mail d'assistance générique

    L'adresse e-mail de l'assistance utilisateur est affichée publiquement sur l'écran de consentement OAuth. Pour rester professionnel et assurer la continuité, configurez toujours une adresse e-mail d'assistance générique (par exemple, support@yourdomain.com) dans la configuration de l'écran de consentement OAuth du projet Google Cloud au lieu de l'adresse e-mail d'un employé. Pour en savoir plus, consultez cette page.

  • Client OAuth par plate-forme

    Vous devez créer un client OAuth distinct pour chaque plate-forme sur laquelle votre application s'exécute (par exemple, Web, Android, iOS), le tout dans le même projet Google Cloud. Il est essentiel d'utiliser le bon type de client pour chaque plate-forme, pour deux raisons principales :

    • Sécurité renforcée : chaque type de client active des fonctionnalités de sécurité spécifiques à la plate-forme. Par exemple, un client Android peut être verrouillé par son nom de package et son certificat de signature, ce qui empêche l'utilisation non autorisée de votre ID client.
    • Fonctionnalité appropriée : elle garantit que votre application s'intègre correctement aux SDK et fonctionnalités spécifiques à la plate-forme, comme Credential Manager sur Android ou le SDK Se connecter avec Google pour iOS.

    Cette structure simplifie également l'expérience utilisateur. Étant donné que le consentement est géré au niveau du projet Google Cloud, les utilisateurs n'ont besoin de l'accorder qu'une seule fois à votre application sur toutes les plates-formes. Pour en savoir plus, consultez les Règles OAuth 2.0 officielles.

  • Valider une application OAuth

    Pour que le nom et le logo de votre application de production s'affichent, elle doit être validée. Le type de validation dépend des données que vous demandez à l'utilisateur.

    • Comme S'identifier avec Google ne demande que des scopes d'authentification (email, profile et openid), il est soumis à une validation de la marque plus simple. Ce processus est généralement plus rapide et vise à confirmer l'identité de votre marque.

    Pour vous aider à planifier votre calendrier de lancement, Google fournit une présentation des différents types de validation et de leurs délais d'examen prévus. Pour en savoir plus sur les règles de validation, consultez le Centre d'aide sur la validation des applications OAuth.

Sécurité et gestion des jetons

Cette section se concentre sur les exigences d'exécution et les mesures de sécurité que les développeurs doivent implémenter sur leurs serveurs backend.

  • Intégrer les jetons d'identité Google à votre backend

    • Validez le jeton d'identité : validez toujours l'intégrité du jeton d'identité Google sur votre serveur backend. Ne faites jamais confiance à un jeton simplement parce qu'il est envoyé depuis votre client. Nous vous recommandons d'utiliser une bibliothèque cliente d'API Google pour cette validation. Pour en savoir plus, consultez Valider le jeton d'identification Google côté serveur.
    • Utilisez la revendication sub : utilisez uniquement le champ Jeton d'ID Google sub comme identifiant de l'utilisateur, car il est unique et stable pour tous les comptes Google, et n'est jamais réutilisé. Vous devez stocker le champ sub et l'associer à l'utilisateur dans votre système de gestion de compte. Bien que vous puissiez utiliser l'adresse e-mail du jeton d'identité pour vérifier si l'utilisateur possède déjà un compte, n'utilisez pas l'adresse e-mail comme identifiant, car un compte Google peut avoir plusieurs adresses e-mail à différents moments.
  • Révoquer les jetons lors de la suppression du compte

    Il est fortement recommandé de permettre aux utilisateurs qui se connectent avec Google de dissocier leur compte Google de votre application. Si un utilisateur choisit de supprimer son compte, vous devez révoquer tous les jetons d'accès et d'actualisation obtenus par votre application.

    Pour en savoir plus sur la révocation de jetons côté client, consultez la documentation Web, Android et iOS. Pour la révocation côté serveur, consultez Utiliser OAuth 2.0 pour les applications de serveur Web.

  • Séparer l'authentification de l'autorisation

    Les SDK Se connecter avec Google ne demandent que les scopes requis pour l'authentification. Si votre application a besoin d'accéder à d'autres services Google (comme Google Agenda ou Drive), vous devez demander ces autorisations séparément et uniquement lorsque l'utilisateur tente d'effectuer une action qui les nécessite. Pour en savoir plus, consultez Moments d'authentification et d'autorisation distincts.

  • Bonnes pratiques concernant la sécurité

    Pour une intégration sécurisée, vérifiez toujours le jeton d'identification sur votre serveur backend à l'aide de la bibliothèque cliente des API Google. Pour une protection plus complète contre diverses menaces, implémentez le pack de sécurité et la protection multicompte (RISC). De plus, pour les applications iOS, il est fortement recommandé d'intégrer App Check afin de s'assurer que les requêtes proviennent bien de votre application authentique.

Expérience utilisateur

Cette section se concentre sur l'optimisation des éléments visibles par l'utilisateur et des flux de connexion/inscription.

  • Affichez le bouton de manière bien visible : le bouton "Se connecter avec Google" doit être clairement visible et accessible sur votre page de connexion et d'inscription.

  • Respectez les consignes relatives à la marque : utilisez les boutons de connexion officiels de la marque Google pour offrir une expérience utilisateur cohérente et fiable. Consultez les Consignes de branding pour Se connecter avec Google officielles.

  • Inscription fluide : pour les nouveaux utilisateurs, créez automatiquement un compte ou redirigez-les vers le nouveau flux de création de compte lors de leur première connexion réussie avec Google. Dans le backend, vérifiez si un utilisateur avec l'ID sub donné existe. Si ce n'est pas le cas, créez un compte. Cela réduit l'effort d'enregistrement.

  • Connexion simplifiée : pour les utilisateurs connus, utilisez l'ID sub pour les identifier et les authentifier dans leur compte existant. Implémentez des fonctionnalités telles que la connexion automatique pour Web et Android afin de les réintégrer rapidement et de manière sécurisée dans votre application.

  • Gérer les méthodes de connexion aux réseaux sociaux : fournit une section "Comptes associés" centralisée dans les paramètres utilisateur, où les utilisateurs peuvent gérer différentes méthodes de connexion aux réseaux sociaux (par exemple, Google).

    • Association : fournissez un bouton "Se connecter avec Google" aux utilisateurs existants qui utilisent d'autres méthodes (par exemple, un nom d'utilisateur et un mot de passe). En cliquant dessus, l'utilisateur lance le processus d'authentification pour associer son compte Google à son profil existant.

    • Dissociation : proposez une option permettant de dissocier le compte. Pour ce faire, vous devez révoquer les jetons et supprimer l'association Google de votre base de données.

Implémentation Android (applications et jeux)

Applications Android standards

Pour les implémentations Android, vous devez utiliser le Gestionnaire d'identifiants. Il s'agit de l'approche recommandée pour gérer les identifiants utilisateur. Elle offre une expérience de connexion unifiée, sécurisée et cohérente sur Android.

Utilisez l'ID client OAuth pour Android pour l'implémentation. Si vous avez déjà implémenté Se connecter avec Google sur d'autres plates-formes (par exemple, Web ou iOS), vous devez créer un ID client OAuth de type Android dans le même projet Google Cloud.

Flux d'implémentation

Une implémentation robuste doit inclure à la fois l'UI de la bottom sheet du Gestionnaire d'identifiants et un bouton "Se connecter avec Google".

  • Bottom sheet : il s'agit d'une invite à faible friction, gérée par les développeurs et présentée par le Gestionnaire d'identifiants lorsqu'un utilisateur accède à votre écran de connexion.
  • Bouton "Se connecter avec Google" : il s'agit du flux de connexion explicite initié par l'utilisateur sur lequel il peut appuyer pour démarrer.
  • Une configuration précise du projet Google Cloud est essentielle. Cela implique de créer les types d'ID client OAuth appropriés et de fournir des informations spécifiques, comme l'empreinte du certificat SHA-1 de votre application. Pour vous assurer d'une configuration correcte, suivez précisément le guide officiel du développeur Android.

Vous devez toujours inclure le flux de bouton, car un utilisateur peut fermer la feuille BottomSheet ou l'avoir désactivée dans ses préférences. Le bouton permet à l'utilisateur de toujours pouvoir lancer le processus de connexion.

Stratégie d'emplacements

  • Bouton "Se connecter avec Google" :

    • Emplacement : affichez le bouton "Se connecter avec Google" sur vos pages d'inscription ou de connexion dédiées.
    • Visibilité : placez-le bien en évidence à côté des autres méthodes de connexion, comme les champs de nom d'utilisateur et de mot de passe, ou d'autres fournisseurs de connexion à un réseau social.
  • Feuille BottomSheet du Gestionnaire d'identifiants :

    • Déclencheur : la bottom sheet doit être appelée automatiquement lorsque votre page de connexion se lance ou lorsque l'application démarre. Il ne doit pas être déclenché par un utilisateur appuyant sur un bouton.
    • Connexion automatique : pour les utilisateurs connus, il est fortement recommandé d'activer l'option Connexion automatique dans Credential Manager. Cela permet aux utilisateurs connus (qui ont déjà donné leur consentement) de se reconnecter à votre application sans aucune interaction.

Jeux Android

Pour les jeux Android, Credential Manager n'est pas l'approche recommandée. Les développeurs de jeux doivent plutôt utiliser l'approche Services de jeux Google Play (PGS), qui se concentre sur l'identité Google multiplate-forme à l'aide de la connexion avec Google. Pour en savoir plus, consultez la documentation sur l'identité Google multiplate-forme à l'aide de Se connecter avec Google.

Implémentation iOS

Utiliser le SDK officiel Se connecter avec Google

Pour les applications iOS, vous devez utiliser le SDK Se connecter avec Google pour iOS et macOS officiel. Cette bibliothèque offre le moyen le plus sécurisé et le plus simple d'intégrer S'identifier avec Google.

Utilisez l'ID client OAuth pour iOS pour l'implémentation. Si vous avez déjà implémenté Se connecter avec Google sur d'autres plates-formes (par exemple, Web ou Android), vous devez créer un ID client OAuth de type iOS dans le même projet Google Cloud.

Ajouter le bouton "Se connecter avec Google"

  • Emplacement : ajoutez le bouton "Se connecter avec Google" à la vue de connexion de votre application, sur les pages d'inscription et de connexion. Placez-le bien en évidence à côté des autres méthodes de connexion, comme les champs de nom d'utilisateur et de mot de passe, ou d'autres fournisseurs de connexion à un réseau social.
  • Utiliser les composants recommandés : utilisez les composants button officiels fournis par le SDK pour SwiftUI et UIKit. Ces composants génèrent automatiquement un bouton conforme aux consignes de Google concernant l'image de marque. Il s'agit de la méthode recommandée pour afficher le bouton.

Renforcer la sécurité avec App Check

Protégez vos ressources de backend contre toute utilisation abusive en vérifiant que les requêtes envoyées à votre client OAuth 2.0 proviennent bien de votre application authentique. App Check utilise un fournisseur d'attestation pour vérifier que les requêtes proviennent d'une instance authentique et non modifiée de votre application, et rejette celles qui ne le sont pas. Pour en savoir plus, consultez App Check pour Google Sign-In sur iOS.

Implémentation Web

Consignes pour les sites Web et les applications Web.

Utiliser la bibliothèque JavaScript officielle Se connecter avec Google

Pour les implémentations Web, vous devez utiliser la bibliothèque JavaScript Se connecter avec Google officielle. Il s'agit de la dernière génération de bibliothèques d'identité Google pour le Web, qui inclut les fonctionnalités Bouton et One Tap.

Utilisez l'ID client OAuth pour Web pour l'implémentation. Si vous avez déjà implémenté Se connecter avec Google sur d'autres plates-formes (Android, iOS, par exemple), vous devez créer un ID client OAuth de type Web dans le même projet Google Cloud.

Implémenter les flux de bouton et d'authentification en un clic

Il est recommandé d'implémenter à la fois le bouton "Se connecter avec Google" et l'expérience de connexion One Tap.

  • Bouton "Se connecter avec Google" : il s'agit du flux de connexion/d'inscription explicite initié par l'utilisateur.
  • One Tap : invite à se connecter ou à s'inscrire de manière fluide et peu intrusive.
  • Utilisez le même ID client OAuth pour Web pour les deux implémentations.

Vous devez toujours inclure le bouton comme option de connexion principale. Les utilisateurs peuvent fermer ou désactiver la connexion en un clic dans les paramètres de leur compte Google, mais le bouton sera toujours disponible, ce qui leur permettra de se connecter à tout moment.

Stratégie d'emplacements

  • Bouton "Se connecter avec Google" :

    • Emplacement : affichez le bouton personnalisé "Se connecter avec Google" sur vos pages d'inscription ou de connexion dédiées.
      • Notez qu'il n'existe pas de modèle unique qui fonctionne le mieux pour tous les sites (par exemple, redirection par rapport à pop-up). Votre équipe de conception Web ou UX doit tester et optimiser ces flux pour maximiser les taux de finalisation des inscriptions et des connexions.
    • Visibilité : placez-le bien en évidence à côté des autres méthodes de connexion, comme les champs de nom d'utilisateur et de mot de passe, ou d'autres fournisseurs de connexion à un réseau social.
    • Examinez la section Points à prendre en compte concernant le bouton "Se connecter avec Google" pour une configuration et des performances optimales.
  • Requête One Tap :

    • Emplacement : affichez l'invite One Tap sur plusieurs pages de votre site Web, comme les pages de produits individuels, les pages d'articles ou même la page d'accueil. L'avantage principal de One Tap est de permettre aux utilisateurs de se connecter ou de créer un compte sans quitter la page sur laquelle ils se trouvent.
    • Connexion automatique : pour les utilisateurs connus, il est fortement recommandé d'activer l'option Connexion automatique dans One Tap. Cela permet aux utilisateurs connus (qui ont déjà donné leur consentement) de se reconnecter à votre application sans aucune interaction.
    • Examinez la section Points à prendre en compte pour l'authentification en un clic pour une configuration et des performances optimales.