En savoir plus sur l'authentification et l'autorisation

L'authentification et l'autorisation sont des mécanismes utilisés pour vérifier l'identité et l'accès aux ressources, respectivement. Ce document identifie les termes clés que vous devez connaître avant d'implémenter l'authentification et l'autorisation dans votre application.

L'authentification identifie qui effectue la demande. L'autorisation identifie les ressources auxquelles le demandeur peut accéder et le niveau d'accès dont il dispose. L'authentification est une condition préalable à l'autorisation. Vous ne pouvez pas déterminer les ressources auxquelles accéder sans avoir d'abord établi l'identité du demandeur. Pour une définition plus détaillée, consultez la section Terminologie importante.

Prenons l'exemple simplifié suivant d'une réservation d'hôtel. Lorsque vous arrivez à l'hôtel, le réceptionniste vous demande votre pièce d'identité pour vérifier votre réservation. Votre pièce d'identité vous authentifie auprès de l'hôtel. Le réceptionniste vous remet une clé d'hôtel. Cette clé vous donne accès à certaines ressources de l'hôtel, comme votre chambre, la salle de sport et le centre d'affaires. La clé d'hôtel vous autorise à accéder à ces ressources.

Présentation du processus

Le diagramme suivant présente les étapes générales d'authentification et d'autorisation pour les API Google Workspace :

Étapes générales de l'implémentation de l'authentification et de l'autorisation
Figure 1. Étapes générales de l'implémentation de l'authentification et de l'autorisation
  1. Configurez votre projet et votre application Google Cloud : pendant le développement, enregistrez votre application dans la console Google Cloud en définissant des niveaux d'autorisation et des identifiants d'accès pour authentifier votre application avec une clé API, un identifiant d'utilisateur final ou un identifiant de compte de service.

  2. Authentifiez votre application pour y accéder : lorsque votre application s'exécute, les identifiants d'accès enregistrés sont évalués. Si votre application s'authentifie en tant qu'utilisateur final, une invite de connexion peut s'afficher.

  3. Demander des ressources : lorsque votre application a besoin d'accéder à des ressources Google, elle les demande à Google à l'aide des niveaux d'accès appropriés que vous avez enregistrés précédemment.

  4. Demander le consentement de l'utilisateur : si votre application s'authentifie en tant qu'utilisateur final, Google affiche l'écran de consentement OAuth afin que l'utilisateur puisse décider d'autoriser ou non votre application à accéder aux données demandées.

  5. Envoyez une demande approuvée pour les ressources : si l'utilisateur accepte les niveaux d'accès, votre application regroupe les identifiants et les niveaux d'accès approuvés par l'utilisateur dans une demande. La requête est envoyée au serveur d'autorisation Google pour obtenir un jeton d'accès.

  6. Google renvoie un jeton d'accès : le jeton d'accès contient une liste des niveaux d'accès accordés. Si la liste des niveaux d'accès renvoyée est plus limitée que les niveaux d'accès demandés, votre application désactive toutes les fonctionnalités limitées par le jeton.

  7. Accéder aux ressources demandées : votre application utilise le jeton d'accès de Google pour appeler les API concernées et accéder aux ressources.

  8. Obtenez un jeton d'actualisation (facultatif) : si votre application a besoin d'accéder à une API Google au-delà de la durée de vie d'un jeton d'accès unique, elle peut obtenir un jeton d'actualisation.

  9. Demander plus de ressources : si un accès supplémentaire est nécessaire, votre application demande à l'utilisateur d'accorder de nouveaux niveaux d'accès, ce qui entraîne une nouvelle demande d'obtention d'un jeton d'accès (étapes 3 à 6).

Terminologie importante

La liste suivante identifie les termes liés à l'authentification et à l'autorisation :

Authentification

Processus permettant de s'assurer qu'un principal, qui peut être un utilisateur ou une application agissant au nom d'un utilisateur, est bien celui qu'il prétend être. Lorsque vous écrivez des applications Google Workspace, vous devez connaître les types d'authentification suivants :

Authentification des utilisateurs
Action par laquelle un utilisateur s'authentifie (se connecte) à votre application. L'authentification de l'utilisateur est généralement effectuée par le biais d'un processus de connexion dans lequel l'utilisateur utilise une combinaison nom d'utilisateur/mot de passe pour vérifier son identité auprès de l'application. L'authentification de l'utilisateur peut être intégrée à une application à l'aide de Se connecter avec Google.
Authentification des applications
Processus d'authentification d'une application directement auprès des services Google au nom de l'utilisateur qui exécute l'application. L'authentification de l'application est généralement effectuée à l'aide d'identifiants précréés dans le code de l'application.
Autorisation

Autorisations ou "autorité" dont dispose le principal pour accéder aux données ou effectuer des opérations. Votre application demande l'autorisation en informant l'utilisateur qu'elle souhaite agir en son nom. Si l'utilisateur autorise la requête, l'application utilise ses identifiants uniques pour obtenir un jeton d'accès auprès de Google.

Credential (Identifiant)

Forme d'identification utilisée dans la sécurité des logiciels. En termes d'authentification, un identifiant est souvent une combinaison nom d'utilisateur/mot de passe. En termes d'autorisation pour les API Google Workspace, un identifiant est généralement une forme d'identification, telle qu'une chaîne secrète unique, connue uniquement entre le développeur de l'application et le serveur d'authentification. Google accepte les identifiants d'authentification suivants : clé API, ID client OAuth 2.0 et comptes de service.

Clé API
Identifiant utilisé pour demander l'accès aux données publiques, telles que les données fournies à l'aide de l'API Maps. Les fichiers Google Workspace publics partagés avec le paramètre "Toute personne sur Internet disposant du lien" sont également accessibles de cette manière, mais la plupart des données Google Workspace nécessitent OAuth 2.0.
ID client OAuth 2
Identifiant utilisé pour demander l'accès aux données appartenant à l'utilisateur. Il s'agit de l'identifiant principal utilisé pour demander l'accès aux données à l'aide des API Google Workspace. Ces identifiants nécessitent le consentement de l'utilisateur.
Code secret du client
 Chaîne de caractères qui ne doit être connue que par votre application et le serveur d'autorisation. Le secret client protège les données de l'utilisateur en n'accordant des jetons qu'aux demandeurs autorisés. Vous ne devez jamais inclure votre code secret client non chiffré dans votre application. Nous vous recommandons de stocker le code secret client de manière sécurisée. Pour en savoir plus, consultez Gérer les identifiants client de manière sécurisée.
Clés de compte de service
Utilisé par les comptes de service pour obtenir l'autorisation d'accéder à un service Google.
Compte de service
 Identifiant utilisé pour les interactions entre serveurs, comme une application sans interface utilisateur qui s'exécute en tant que processus pour accéder aux données ou effectuer des opérations. Les comptes de service sont généralement utilisés pour accéder aux données et aux opérations basées dans le cloud. Toutefois, lorsqu'elles sont utilisées avec la délégation au niveau du domaine, elles peuvent servir à accéder aux données utilisateur.
Portée

Chaîne URI OAuth 2.0 qui définit un niveau d'accès aux ressources ou aux actions accordé à une application. Pour Google Workspace, les URI de champ d'application d'autorisation contiennent le nom de l'application Google Workspace, le type de données auxquelles elle accède et le niveau d'accès. Les utilisateurs de votre application peuvent examiner les niveaux d'accès demandés et choisir ceux qu'ils souhaitent accorder. Le serveur d'authentification de Google renvoie ensuite les niveaux d'accès autorisés à votre application dans un jeton d'accès. Pour en savoir plus, consultez Choisir des champs d'application pour votre application.

Serveur d'autorisation

Serveur Google qui accorde l'accès, à l'aide d'un jeton d'accès, aux données et opérations demandées par une application.

Code d'autorisation

Code envoyé par le serveur d'autorisation et utilisé pour obtenir un jeton d'accès. Un code n'est nécessaire que si votre type d'application est une application de serveur Web ou une application installée.

Jeton d'accès

Jeton permettant d'accéder à une API Google Workspace. Un même jeton d'accès peut accorder différents degrés d'accès, appelés scopes, à plusieurs API. Le code d'autorisation de votre application demande des jetons d'accès et les utilise pour appeler les API Google Workspace.

Serveur de ressources

Serveur hébergeant l'API que votre application souhaite appeler.

Framework OAuth 2.0

Norme que votre application peut utiliser pour lui fournir un "accès délégué sécurisé" ou un accès aux données et aux opérations pour le compte de l'utilisateur de l'application. Les mécanismes d'authentification et d'autorisation que vous utilisez dans votre application représentent votre implémentation du framework OAuth 2.0.

Principal

Entité, également appelée identité, à laquelle l'accès à une ressource peut être accordé. Les API Google Workspace sont compatibles avec deux types de comptes principaux : les comptes utilisateur et les comptes de service. Pour en savoir plus, consultez Comptes principaux.

Type de données

Dans le contexte de l'authentification et de l'autorisation, le type de données fait référence à l'entité qui possède les données auxquelles votre application tente d'accéder. Il existe trois types de données :

Données du domaine public
 Données accessibles à tous, comme certaines données Google Maps. L'accès à ces données se fait généralement à l'aide d'une clé API.
Données utilisateur final
 Données appartenant à un utilisateur final ou à un groupe spécifiques, comme les fichiers Google Drive d'un utilisateur spécifique. Ce type de données est généralement accessible à l'aide d'un ID client OAuth 2 ou d'un compte de service.
Données cloud
 : données appartenant à un projet Google Cloud. Ce type de données est généralement accessible par un compte de service.
Consentement de l'utilisateur

Étape d'autorisation qui exige que l'utilisateur de votre application autorise celle-ci à accéder aux données et à effectuer des opérations en son nom.

Type d'application

Type d'application que vous allez créer. Lorsque vous créez des identifiants à l'aide de la console Google Cloud, vous êtes invité à sélectionner le type d'application. Les types d'applications incluent : application Web (JavaScript), Android, application Chrome, iOS, téléviseurs et appareils à saisie limitée, application pour ordinateur (également appelée "application installée") et plate-forme Windows universelle (UWP).

Compte de service

Type spécial de compte Google destiné à représenter un utilisateur non humain qui doit s'authentifier et obtenir les autorisations permettant d'accéder aux données. Votre application revêt l'identité du compte de service pour appeler les API Google, afin que les utilisateurs ne soient pas directement impliqués. En soi, les comptes de service ne peuvent pas être utilisés pour accéder aux données utilisateur habituellement accessibles à l'aide des API Google Workspace. Toutefois, un compte de service peut accéder aux données utilisateur en implémentant la délégation d'autorité au niveau du domaine. Pour en savoir plus, consultez Comprendre les comptes de service.

Délégation d'autorité au niveau du domaine

Fonctionnalité d'administration qui permet d'autoriser une application à accéder aux données utilisateur pour le compte des utilisateurs de l'organisation Google Workspace. La délégation au niveau du domaine peut être utilisée pour effectuer des tâches d'administration sur les données utilisateur. Pour déléguer l'autorité de cette manière, les administrateurs Google Workspace utilisent des comptes de service avec OAuth 2.0. En raison de la puissance de cette fonctionnalité, seuls les super-administrateurs peuvent activer la délégation d'autorité au niveau du domaine. Pour en savoir plus, consultez Déléguer l'autorité au niveau du domaine à un compte de service.

Étape suivante

Configurez l'écran de consentement OAuth de votre application pour vous assurer que les utilisateurs comprennent et approuvent l'accès de votre application à leurs données.