En savoir plus sur l'authentification et l'autorisation

L'authentification et l'autorisation sont des mécanismes utilisés respectivement pour vérifier l'identité et l'accès aux ressources. 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 envoie la requête. L'autorisation identifie les ressources auxquelles le demandeur peut accéder et son niveau d'accès. L'authentification est une condition préalable à l'autorisation. Vous ne pouvez pas déterminer les ressources auxquelles accéder sans d'abord établir 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 valider 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 permet d'accéder à certaines ressources de l'hôtel, comme votre chambre, la salle de sport et le centre d'affaires. La clé de l'hôtel vous autorise à accéder à ces ressources.

Présentation du processus

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

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

  2. Authentifiez votre application pour l'accès: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 aux ressources Google, elle le demande à Google à l'aide des niveaux d'accès appropriés que vous avez précédemment enregistrés.

  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. Envoyer une requête approuvée pour les ressources:si l'utilisateur accepte les portées d'accès, votre application regroupe les identifiants et les portées d'accès approuvées par l'utilisateur dans une requête. 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 champs d'application d'accès accordés. Si la liste des champs d'application renvoyée est plus limitée que les champs d'application d'accès demandés, votre application désactive toutes les fonctionnalités limitées par le jeton.

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

  8. Obtenir 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 seul jeton d'accès, 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 champs d'application, ce qui génère une nouvelle requête pour obtenir un jeton d'accès (étapes 3 à 6).

Terminologie importante

Voici une liste de termes liés à l'authentification et à l'autorisation:

Authentification

Acte consistant à 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 d'un utilisateur qui s'authentifie (se connecte) à votre application. L'authentification de l'utilisateur est généralement effectuée via un processus de connexion au cours duquel l'utilisateur utilise une combinaison de nom d'utilisateur et de mot de passe pour valider 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 de l'application
Action d'une application qui s'authentifie 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 votre application.
Autorisation

Autorisations ou "autorités" dont dispose le principal pour accéder aux données ou effectuer des opérations. L'acte d'autorisation est effectué via le code que vous écrivez dans votre application. Ce code informe l'utilisateur que l'application souhaite agir en son nom et, si autorisé, utilise les identifiants uniques de votre application pour obtenir un jeton d'accès auprès de Google, qui permet d'accéder aux données ou d'effectuer des opérations.

Credential (Identifiant)

Forme d'identification utilisée dans la sécurité logicielle. En termes d'authentification, les identifiants sont souvent une combinaison de nom d'utilisateur et de 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 par 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
Identifiants utilisés pour demander l'accès à des données publiques, telles que les données fournies à l'aide de l'API Maps ou les fichiers Google Workspace partagés à l'aide du paramètre "Toute personne sur Internet disposant de ce lien" dans les paramètres de partage Google Workspace.
ID client OAuth 2
Identifiants utilisés pour demander l'accès aux données appartenant à l'utilisateur. Il s'agit des identifiants principaux utilisés lorsque vous demandez 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 la section 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 qui s'exécute en tant que processus pour accéder à certaines données ou effectuer une opération. Les comptes de service sont généralement utilisés pour accéder aux données et aux opérations cloud. Toutefois, lorsqu'ils sont utilisés avec la délégation d'autorité au niveau du domaine, ils peuvent être utilisés pour accéder aux données utilisateur.
Portée

Chaîne d'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 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 portées demandées et choisir les accès à accorder. Le serveur d'authentification de Google renvoie ensuite les portées autorisées à votre application dans un jeton d'accès. Pour en savoir plus, consultez la section Choisir des champs d'application pour votre application.

Serveur d'autorisation

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

Code d'autorisation

Code envoyé par le serveur d'autorisation 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 seul jeton d'accès peut accorder différents niveaux d'accès (appelés étendues) à 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 au nom 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 d'entités principales: les comptes utilisateur et les comptes de service. Pour en savoir plus, consultez la section 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é propriétaire des données auxquelles votre application tente d'accéder. Il existe trois types de données:

Données du domaine public
Données accessibles par 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écifique, comme les fichiers Google Drive d'un utilisateur spécifique. L'accès à ce type de données se fait généralement à 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 oblige l'utilisateur de votre application à autoriser l'application à 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 sont les suivants: application Web (JavaScript), Android, application Chrome, iOS, téléviseurs et appareils à entrée limitée, application pour ordinateur (également appelée "application installée") et plate-forme Windows universelle (UWP).

Compte de service

Type de compte Google spécial 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. Les comptes de service ne peuvent pas être utilisés seuls pour accéder aux données utilisateur, auxquelles on accède généralement à l'aide des API Workspace. Toutefois, un compte de service peut accéder aux données utilisateur en implémentant une délégation d'autorité au niveau du domaine. Pour en savoir plus, consultez la page Comprendre les comptes de service.

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

Fonctionnalité d'administration permettant 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 la section 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 peuvent comprendre et approuver les droits d'accès de votre application à leurs données.