Autoriser pour le Web

Les applications Web doivent obtenir un jeton d'accès pour appeler les API Google de manière sécurisée.

La bibliothèque JavaScript Google Identity Services est compatible avec l'authentification pour la connexion des utilisateurs et l'autorisation permettant d'obtenir un jeton d'accès à utiliser avec les API Google. La bibliothèque est destinée à être utilisée uniquement dans les navigateurs.

L'authentification permet d'établir l'identité d'une personne. Elle est généralement appelée "inscription" ou "connexion" d'un utilisateur. L'autorisation est le processus qui consiste à accorder ou refuser l'accès à des données ou des ressources. Cela inclut l'obtention et la gestion du consentement utilisateur, la limitation de la quantité de données ou de ressources partagées avec les champs d'application, et la récupération d'un jeton d'accès à utiliser avec les Google APIs.

Ces guides couvrent les sujets liés à l'autorisation et au partage de données.

Fonctionnement de l'autorisation des utilisateurs décrit en détail les étapes individuelles de l'autorisation des utilisateurs et inclut des exemples de boîtes de dialogue utilisateur.

Si vous avez besoin d'aide pour l'authentification et l'implémentation de l'inscription et de la connexion des utilisateurs, consultez Se connecter avec Google.

Cette bibliothèque n'est pas destinée à être utilisée avec des frameworks JavaScript côté serveur tels que Node.js. Utilisez plutôt la bibliothèque cliente Node.js de Google.

Modifications apportées

Pour les utilisateurs, la bibliothèque Google Identity Services offre de nombreuses améliorations en termes d'usabilité par rapport aux bibliothèques JavaScript précédentes, y compris :

  • L'authentification pour la connexion des utilisateurs et l'autorisation permettant d'obtenir un jeton d'accès pour appeler les API Google disposent désormais de deux flux utilisateur distincts : l'un pour la connexion et l'autre pour le consentement lors de l'autorisation. Ces flux utilisateur distincts permettent de différencier clairement votre identité de ce qu'une application peut faire.
  • Visibilité améliorée et contrôle précis du partage de données lors du consentement de l'utilisateur.
  • Des boîtes de dialogue basées sur le navigateur pour réduire les frictions et qui ne nécessitent pas que les utilisateurs quittent votre site pour :
    • obtenir un jeton d'accès de Google ;
    • envoyer un code d'autorisation à votre plate-forme de backend.

Pour les développeurs, nous nous sommes concentrés sur la réduction de la complexité, l'amélioration de la sécurité et la simplification de l'intégration. Voici quelques exemples de ces modifications :

  • L'authentification des utilisateurs pour la connexion et l'autorisation utilisée pour obtenir un jeton d'accès afin d'appeler les API Google sont deux ensembles distincts d'objets et de méthodes JavaScript. Cela réduit la complexité et la quantité de détails nécessaires pour implémenter l'authentification ou l'autorisation.
  • Une seule bibliothèque JavaScript est désormais compatible avec les éléments suivants :
    • Flux implicite OAuth 2.0, utilisé pour obtenir un jeton d'accès à utiliser dans le navigateur
    • Le flux avec code d'autorisation OAuth 2.0, également appelé accès hors connexion, lance la diffusion sécurisée d'un code d'autorisation sur votre plate-forme de backend, où il peut être échangé contre un jeton d'accès et un jeton d'actualisation. Auparavant, ces flux n'étaient disponibles qu'en utilisant plusieurs bibliothèques et en appelant directement les points de terminaison OAuth 2.0. Une seule bibliothèque réduit le temps et les efforts d'intégration. Au lieu d'inclure et d'apprendre plusieurs bibliothèques et concepts OAuth 2.0, vous pouvez vous concentrer sur une seule interface unifiée.
  • L'indirection via des fonctions de style getter a été supprimée pour plus de simplicité et de lisibilité.
  • Lorsque vous traitez des réponses d'autorisation, vous choisissez d'utiliser ou non une Promise pour répondre aux requêtes, au lieu que cette décision soit prise pour vous.
  • La bibliothèque cliente des API Google pour JavaScript a été mise à jour avec les modifications suivantes :
    • Le module gapi.auth2, ainsi que les objets et méthodes associés, ne sont plus chargés automatiquement en arrière-plan. Ils ont été remplacés par des objets et méthodes de la bibliothèque Google Identity Services plus explicites.
    • L'actualisation automatique des jetons d'accès expirés a été supprimée pour améliorer la sécurité et la sensibilisation des utilisateurs. Une fois qu'un jeton d'accès a expiré, votre application doit gérer les réponses d'erreur de l'API Google, demander et obtenir un nouveau jeton d'accès valide.
    • Pour bien séparer les moments d'authentification et d'autorisation, il n'est plus possible de connecter simultanément un utilisateur à votre application et à son compte Google tout en émettant un jeton d'accès. Auparavant, la demande d'un jeton d'accès connectait également les utilisateurs à leur compte Google et renvoyait un identifiant JWT pour l'authentification des utilisateurs.
  • Pour renforcer la sécurité et la confidentialité des utilisateurs, les identifiants par utilisateur émis pour l'autorisation suivent le principe du moindre privilège en n'incluant qu'un jeton d'accès et les informations nécessaires à sa gestion.