image
image
image
image
image
image

Jeton daccès google api

Utilisation d’OAuth 2.0 pour accéder aux API Google

Remarque : L’utilisation de l’implémentation d’OAuth 2.0 par Google est régie par les règles OAuth 2.0.

Les API Google utilisent le protocole OAuth 2.0 pour l’authentification et l’autorisation. Google prend en charge les scénarios OAuth 2.0 courants, tels que ceux pour le serveur Web, les applications côté client, les applications installées et les applications de périphérique à entrée limitée.

Pour commencer, obtenez les informations d’identification du client OAuth 2.0 à partir de la console API Google. Ensuite, votre application cliente demande un jeton d’accès au serveur d’autorisation Google, extrait un jeton de la réponse et envoie le jeton à l’API Google à laquelle vous souhaitez accéder. Pour une démonstration interactive de l’utilisation d’OAuth 2.0 avec Google (y compris la possibilité d’utiliser vos propres informations d’identification client), testez le Playground OAuth 2.0.

Cette page donne une vue d’ensemble des scénarios d’autorisation OAuth 2.0 pris en charge par Google. Fournit des liens vers du contenu plus détaillé. Pour plus d’informations sur l’utilisation d’OAuth 2.0 pour l’authentification, consultez OpenID Connect.

Remarque : Compte tenu des implications en matière de sécurité d’une implémentation correcte, nous vous encourageons vivement à utiliser les bibliothèques OAuth 2.0 lorsque vous interagissez avec les points de terminaison OAuth 2.0 de Google. Il est recommandé d’utiliser du code bien débogué fourni par d’autres, et cela vous aidera à vous protéger et à protéger vos utilisateurs. Pour plus d’informations, consultez Bibliothèques clientes.

Toutes

les applications suivent un modèle de base lorsqu’elles accèdent à une API Google à l’aide d’OAuth 2.0. À un niveau élevé, vous suivez cinq étapes :

1. Obtenez les informations d’identification OAuth 2.0 à partir de la console API Google.

Rendez-vous sur la console API Google pour obtenir des informations d’identification OAuth 2.0, telles qu’un ID client et une clé secrète client, qui sont connues de Google et de votre application. L’ensemble de valeurs varie en fonction du type d’application que vous construisez.

Vous devez créer un client OAuth adapté à la plate-forme sur laquelle votre application s’exécutera, par exemple :

2. Obtenez un jeton d’accès auprès du serveur d’autorisation Google.

Pour que votre application puisse accéder aux données privées à l’aide d’une API Google, elle doit obtenir un jeton d’accès qui lui donne accès à cette API. Un seul jeton d’accès peut accorder différents degrés d’accès à plusieurs API. Un paramètre variable appelé contrôle l’ensemble des ressources et des opérations autorisées par un jeton d’accès. Lors de la demande de jeton d’accès, votre application envoie une ou plusieurs valeurs dans le paramètre.

Il existe plusieurs façons d’effectuer cette demande, et elles varient en fonction du type d’application que vous créez.

Certaines requêtes nécessitent une étape d’authentification au cours de laquelle l’utilisateur se connecte avec son compte Google. Après s’être connecté, il est demandé à l’utilisateur s’il est prêt à accorder un ou plusieurs autorisations demandées par votre application. Ce processus s’appelle .

Si l’utilisateur accorde au moins une autorisation, le serveur d’autorisation Google envoie à votre application un jeton d’accès (ou un code d’autorisation que votre application peut utiliser pour obtenir un jeton d’accès) ainsi qu’une liste des étendues d’accès accordées par ce jeton. Si l’utilisateur n’accorde pas l’autorisation, le serveur renvoie une erreur.

Il est généralement recommandé de demander des étendues de manière incrémentielle, au moment où l’accès est requis, plutôt qu’en amont. Par exemple, une application qui souhaite prendre en charge l’enregistrement d’un événement dans un calendrier ne doit pas demander l’accès à Google Agenda tant que l’utilisateur n’a pas appuyé sur le bouton « Ajouter au calendrier ». voir Autorisation incrémentielle.

3. Accès Examinez les étendues d’accès accordées par l’utilisateur.

Comparez les étendues incluses dans la réponse du jeton d’accès aux étendues requises pour accéder aux fonctions et fonctionnalités de votre application dépendant de l’accès à une API Google associée. Désactivez toutes les fonctionnalités de votre application qui ne peuvent pas fonctionner sans accès à l’API associée.

L’étendue incluse dans votre demande peut ne pas correspondre à l’étendue incluse dans votre réponse, même si l’utilisateur a accordé toutes les étendues demandées. Reportez-vous à la documentation de chaque API Google pour connaître les étendues requises pour l’accès. Une API peut mapper plusieurs valeurs de chaîne d’étendue à une seule étendue d’accès, en renvoyant la même chaîne d’étendue pour toutes les valeurs autorisées dans la demande. Exemple : l’API Google People peut renvoyer une portée de lorsqu’une application a demandé à un utilisateur d’autoriser une portée de ; la méthode de l’API Google People nécessite une portée de .

4. Épisode 4 Envoyez le jeton d’accès à une API.

Une fois qu’une application a obtenu un jeton d’accès, elle l’envoie à une API Google dans un en-tête de demande d’autorisation HTTP. Il est possible d’envoyer des jetons en tant que paramètres de chaîne de requête URI, mais ce n’est pas le cas Je le recommande, car les paramètres d’URI peuvent se retrouver dans des fichiers journaux qui ne sont pas totalement sécurisés. En outre, il est recommandé d’éviter de créer des noms de paramètres d’URI inutiles.

Les jetons d’accès ne sont valides que pour l’ensemble des opérations et des ressources décrites dans la demande de jeton. Par exemple, si un jeton d’accès est émis pour l’API Google Agenda, il n’accorde pas l’accès à l’API Google Contacts. Vous pouvez toutefois envoyer ce jeton d’accès à l’API Google Agenda plusieurs fois pour des opérations similaires.

5. Planche à billets Actualisez le jeton d’accès, si nécessaire.

Les jetons d’accès ont une durée de vie limitée. Si votre application a besoin d’accéder à une API Google au-delà de la durée de vie d’un seul jeton d’accès, elle peut obtenir un jeton d’actualisation. Un jeton d’actualisation permet à votre application d’obtenir de nouveaux jetons d’accès.

Remarque : Enregistrez les jetons d’actualisation dans un stockage sécurisé à long terme et continuez à les utiliser tant que Ils restent valides. Les limites s’appliquent au nombre de jetons d’actualisation émis par combinaison client-utilisateur et par utilisateur sur tous les clients, et ces limites sont différentes. Si votre application demande suffisamment de jetons d’actualisation pour dépasser l’une des limites, les anciens jetons d’actualisation cessent de fonctionner.

Le

point de terminaison Google OAuth 2.0 prend en charge les applications de serveur Web qui utilisent des langages et des frameworks tels que PHP, Java, Go, Python, Ruby, ASP.NET.

La séquence d’autorisation commence lorsque votre application redirige un navigateur vers une URL Google. L’URL inclut des paramètres de requête qui indiquent le type d’accès demandé. Google gère l’authentification de l’utilisateur, la sélection de session et le consentement de l’utilisateur. Le résultat est un code d’autorisation, que l’application peut échanger contre un jeton d’accès et un jeton d’actualisation.

L’application doit stocker l’actualisation token pour une utilisation ultérieure et utilisez le jeton d’accès pour accéder à une API Google. Une fois le jeton d’accès expiré, l’application utilise le jeton d’actualisation pour en obtenir un nouveau.

Pour plus d’informations, consultez Utilisation d’OAuth 2.0 pour les applications Web Server.

Le

point de terminaison Google OAuth 2.0 prend en charge les applications installées sur des appareils tels que des ordinateurs, des appareils mobiles et des tablettes. Lorsque vous créez un ID client via la console API Google, spécifiez qu’il s’agit d’une application installée, puis sélectionnez Android, application Chrome, iOS, UWP (Universal Windows Platform) ou application de bureau comme type d’application.

Le processus aboutit à un ID client et, dans certains cas, à une clé secrète client, que vous intégrez dans le code source de votre application. (Dans ce contexte, la clé secrète client n’est évidemment pas traitée comme une clé secrète.)

La séquence d’autorisation commence lorsque votre l’application redirige un navigateur vers une URL Google ; l’URL inclut des paramètres de requête qui indiquent le type d’accès demandé. Google gère l’authentification de l’utilisateur, la sélection de session et le consentement de l’utilisateur. Le résultat est un code d’autorisation, que l’application peut échanger contre un jeton d’accès et un jeton d’actualisation.

L’application doit stocker le jeton d’actualisation pour une utilisation ultérieure et utiliser le jeton d’accès pour accéder à une API Google. Une fois le jeton d’accès expiré, l’application utilise le jeton d’actualisation pour en obtenir un nouveau.

Pour plus d’informations, consultez Utilisation d’OAuth 2.0 pour les applications installées.

L’OAuth 2.

La séquence d’autorisation commence lorsque votre application redirige un navigateur vers une URL Google. L’URL inclut des paramètres de requête qui indiquent le type d’accès demandé. Google gère l’authentification de l’utilisateur, la sélection de session et le consentement de l’utilisateur.

Le résultat est un jeton d’accès, que le client doit valider avant de l’inclure dans une requête d’API Google. Lorsque le jeton expire, l’application répète le processus.

Pour plus d’informations, consultez Utilisation d’OAuth 2.0 pour les applications côté client.

Applications sur des appareils à entrée limitée

Le point de terminaison Google OAuth 2.0 prend en charge les applications qui s’exécutent sur des appareils à entrée limitée, tels que les consoles de jeux, les caméras vidéo et les imprimantes.

La séquence d’autorisation commence lorsque l’application envoie une requête de service Web à une URL Google pour obtenir un code d’autorisation. La réponse contient plusieurs paramètres, dont une URL et un code que l’application montre à l’utilisateur.

L’utilisateur obtient l’URL et le code de l’appareil, puis bascule vers un autre appareil ou ordinateur avec des capacités de saisie plus riches. L’utilisateur lance un navigateur, navigue jusqu’à l’URL spécifiée, se connecte et entre le code.

Pendant ce temps, l’application interroge une URL Google à un intervalle spécifié. Une fois que l’utilisateur a approuvé l’accès, la réponse du serveur Google contient un jeton d’accès et un jeton d’actualisation. L’application doit stocker le jeton d’actualisation pour une utilisation ultérieure et utiliser le jeton d’accès pour accéder à une API Google. Une fois le jeton d’accès expiré, l’application utilise le jeton d’actualisation pour en obtenir un nouveau.

Pour plus d’informations, consultez Utilisation d’OAuth 2.0 pour les appareils.

Les API

Google, telles que l’API Prediction et Google Cloud Storage, peuvent agir au nom de votre application sans accéder aux informations de l’utilisateur. Dans ces situations, votre application doit prouver sa propre identité à l’API, mais aucun consentement de l’utilisateur n’est nécessaire. De même, dans les scénarios d’entreprise, votre application peut demander un accès délégué à certaines ressources.

Pour ces types Pour les interactions de serveur à serveur, vous avez besoin d’un compte de service , c’est-à-dire un compte qui appartient à votre application plutôt qu’à un utilisateur final individuel. Votre application appelle les API Google au nom du compte de service, et le consentement de l’utilisateur n’est pas requis. (Dans les scénarios n’impliquant pas de compte de service, votre application appelle les API Google pour le compte des utilisateurs finaux, et le consentement de l’utilisateur est parfois requis.

Remarque : Ces scénarios de compte de service nécessitent que les applications créent et signent de chiffrement des jetons Web JSON (JWT). Nous vous encourageons vivement à utiliser une bibliothèque pour effectuer ces tâches. Si vous écrivez ce code sans utiliser une bibliothèque qui fait abstraction de la création et de la signature de jetons, vous risquez de commettre des erreurs qui auront un impact important sur la sécurité de votre application. Pour obtenir la liste des bibliothèques qui prennent en charge ce scénario, consultez la documentation service-account.

Les informations d’identification d’un compte de service, que vous obtenez à partir de la console API Google, inclure une adresse e-mail unique générée, un ID client et au moins une paire de clés publique/privée. Vous utilisez l’ID client et une clé privée pour créer un JWT signé et construire une demande de jeton d’accès dans le format approprié. Votre application envoie ensuite la demande de jeton au serveur d’autorisation Google OAuth 2.0, qui renvoie un jeton d’accès. L’application utilise le jeton pour accéder à une API Google. Lorsque le jeton expire, l’application répète le processus.

Pour plus d’informations, consultez la documentation du compte de service.

Remarque : Bien que vous puissiez utiliser des comptes de service dans des applications qui s’exécutent à partir d’un domaine Google Workspace, ceux-ci ne sont pas membres de votre compte Google Workspace et ne sont pas soumis aux règles de domaine définies par les administrateurs Google Workspace. Par exemple, une règle définie dans la console d’administration Google Workspace pour restreindre l' la possibilité pour les utilisateurs finaux de Google Workspace de partager des documents en dehors du domaine ne s’applique pas aux comptes de service.

La

taille des jetons peut varier, jusqu’aux limites suivantes :

  • Codes d’autorisation : 256 octets
  • Jetons d’accès : 2048 octets
  • Jetons d’actualisation : 512 octets
Les

jetons d’accès renvoyés par l’API du service de jeton de sécurité de Google Cloud sont structurés de la même manière que les jetons d’accès OAuth 2.0 de l’API Google, mais ont des limites de taille de jeton différentes. Pour plus de détails, consultez la documentation de l’API.

Google se réserve le droit de modifier la taille des jetons dans ces limites, et votre application doit prendre en charge les tailles variables des jetons en conséquence.

Expiration du jeton d’actualisation

Vous devez écrire votre code pour anticiper la possibilité qu’un jeton d’actualisation accordé ne fonctionne plus. Un jeton d’actualisation peut cesser de fonctionner pour l’un d’entre eux raisons :

un jeton d’actualisation émis pour un jeton d’actualisation expirant dans 7 jours est un jeton OAuth avec un écran de consentement OAuth configuré pour un type d’utilisateur externe et dont l’état de publication est « Test ».

À l’heure actuelle, il y a une limite de 100 jetons d’actualisation par compte Google et par ID client OAuth 2.0. Si la limite est atteinte, la création d’un jeton d’actualisation invalide automatiquement le jeton d’actualisation le plus ancien sans avertissement. Cette limite ne s’applique pas aux comptes de service.

Il existe également une limite plus importante sur le nombre total de jetons d’actualisation qu’un compte d’utilisateur ou de service peut avoir sur tous les clients. La plupart des utilisateurs normaux ne dépasseront pas cette limite, mais le compte d’un développeur utilisé pour tester une implémentation pourrait le faire.

Si vous avez besoin d’autoriser plusieurs programmes, ou appareils, une solution consiste à limiter le nombre de clients que vous autorisez par compte Google à 15 ou 20. Si vous êtes administrateur Google Workspace, vous pouvez créer des utilisateurs supplémentaires disposant de privilèges d’administration et les utiliser pour autoriser certains clients.

Gestion des règles de contrôle de session pour les organisations Google Cloud Platform (GCP)

Les administrateurs des organisations GCP peuvent nécessiter une nouvelle authentification fréquente des utilisateurs lorsqu’ils accèdent aux ressources GCP à l’aide de la fonctionnalité de contrôle de session Google Cloud. Cette règle a un impact sur l’accès à Google Cloud Console, au SDK Google Cloud (également appelé interface de ligne de commande gcloud) et à toute application OAuth tierce nécessitant l’étendue Cloud Platform. Si un utilisateur a mis en place une politique de contrôle de session, à l’expiration de la durée de la session, vos appels d’API entraîneront une erreur similaire à ce qui se passerait si le jeton d’actualisation était révoqué - l’appel échouera avec un type d’erreur ; Ce champ permet de faire la distinction entre un jeton révoqué et un échec dû à une politique de contrôle de session (par exemple, ). Comme les durées de session peuvent être très limitées (entre 1 heure et 24 heures), ce scénario doit être géré correctement en redémarrant une session d’authentification.

De même, vous ne devez pas utiliser ou encourager l’utilisation des informations d’identification de l’utilisateur pour le déploiement de serveur à serveur. Si les informations d’identification de l’utilisateur sont déployées sur un serveur pour des travaux ou des opérations de longue durée et qu’un client applique des stratégies de contrôle de session sur ces utilisateurs, l’application serveur échoue car il n’y a aucun moyen de réauthentifier l’utilisateur à l’expiration de la durée de la session.

Pour plus d’informations sur la façon d’aider vos clients à déployer cette fonctionnalité, reportez-vous à cet article d’aide axé sur l’administration.

Les

bibliothèques clientes suivantes s’intègrent aux frameworks les plus courants, ce qui simplifie l’implémentation d’OAuth 2.0. D’autres fonctionnalités seront ajoutées aux bibliothèques au fil du temps.