En savoir plus sur l'authentification et l'autorisation

L'authentification et l'autorisation sont des mécanismes utilisés pour vérifier respectivement 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 le niveau d'accès dont il dispose. L'authentification est une condition préalable à l'autorisation. Il est impossible de déterminer les ressources auxquelles accéder sans établir au préalable l'identité du demandeur. Pour obtenir une définition plus détaillée, consultez la section Terminologie importante.

Prenons l'exemple simplifié suivant de réservation d'hôtel. À votre arrivée à l'hôtel, la réception vous demande votre pièce d'identité pour valider votre réservation. Votre pièce d'identité vous permet de vous authentifier auprès de l'hôtel. La réception vous donne une clé d'hôtel. Cette clé vous donne accès à certaines ressources de l'hôtel, telles que votre chambre d'hôtel, votre salle de sport et votre centre d'affaires. La clé d'hôtel vous autorise à accéder à ces ressources.

Présentation du processus

Le schéma suivant illustre les grandes étapes de l'authentification et de l'autorisation pour les API Google Workspace:

Étapes générales de la mise en œuvre de l'authentification et de l'autorisation
Figure 1. Étapes générales de la mise en œuvre de l'authentification et de l'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 les champs d'application d'autorisation et les identifiants d'accès pour authentifier votre application avec une clé API, des identifiants d'utilisateur final ou de compte de service.

  2. Authentifiez votre application pour 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 demande à Google en utilisant les champs d'application d'accès pertinents 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'accorder à votre application l'accès aux données demandées.

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

  6. Google renvoie un jeton d'accès:le jeton d'accès contient la liste des niveaux d'accès accordés. Si la liste de 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 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 champs d'application d'accès, ce qui entraîne une nouvelle demande d'obtention d'un jeton d'accès (étapes 3 à 6).

Terminologie importante

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

Authentification

S'assurer qu'un entité principale, qui peut être un utilisateur ou une application agissant pour le compte d'un utilisateur, est bien qui il prétend être. Lorsque vous développez des applications Google Workspace, vous devez connaître les types d'authentification suivants:

Authentification des utilisateurs
Acte d'un utilisateur qui s'authentifie (se connecte) à votre application. L'authentification de l'utilisateur s'effectue généralement via un processus de connexion dans lequel l'utilisateur valide son identité auprès de l'application à l'aide d'une combinaison de nom d'utilisateur et de mot de passe. Il est possible d'intégrer l'authentification de l'utilisateur dans une application à l'aide de Se connecter avec Google.
Authentification des applications
Acte d'une application s'authentifiant directement auprès des services Google pour le compte de l'utilisateur qui l'exécute. L'authentification d'une application s'effectue généralement à l'aide d'identifiants prédéfinis dans le code de votre application.
Autorisation

Les autorisations ou "autorité" dont le compte principal dispose pour accéder aux données ou effectuer des opérations. L'acte d'autorisation est réalisé au moyen d'un code que vous écrivez dans votre application. Ce code informe l'utilisateur que l'application souhaite agir en son nom et, si cela est autorisé, utilise les identifiants uniques de votre application pour obtenir de Google un jeton d'accès qui lui 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, un justificatif d'identité est 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 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 à des données publiques, telles que les données fournies à l'aide de l'API Google Maps ou les fichiers Google Workspace partagés à l'aide du paramètre "Tous les internautes disposant de ce lien" dans les paramètres de partage de Google Workspace.
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é lorsque vous demandez l'accès aux données à l'aide des API Google Workspace. Cet identifiant nécessite 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 code secret du client protège les données de l'utilisateur en n'accordant des jetons qu'aux demandeurs autorisés. Vous ne devez jamais inclure le code secret non chiffré du client dans votre application. Nous vous recommandons de le stocker 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 de serveur à serveur, comme une application sans visage 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 opérations dans le cloud. Toutefois, s'ils sont utilisés avec une délégation d'autorité au niveau du domaine, ils peuvent être utilisés pour accéder aux données utilisateur.
Scope (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 du champ d'application d'autorisation contiennent le nom de l'application Google Workspace, le type de données auquel elle accède et le niveau d'accès. Les utilisateurs de votre application peuvent examiner les champs d'application demandés et choisir l'accès à accorder. Le serveur d'authentification de Google renvoie ensuite les champs d'application autorisés à 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 de Google permettant d'accorder 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 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 accordant l'accès à une API Google Workspace. Un même jeton d'accès peut accorder différents degrés, appelés champs d'application, d'accès à 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 permettant à votre application de lui fournir un "accès délégué sécurisé" ou un accès aux données et 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é, pouvant se voir accorder l'accès à une ressource. 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 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. Ces données sont généralement accessibles à l'aide d'une clé API.
Données de l'utilisateur final
Données appartenant à un utilisateur final ou à un groupe spécifique, par exemple 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 ou d'un compte de service OAuth 2.
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

Une é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 votre type d'application. Les types d'applications sont les suivants: application Web (JavaScript), Android, application Chrome, iOS, téléviseurs et périphériques d'entrée limitée, application de bureau (é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 être autorisé à 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 seuls ne permettent pas d'accéder aux données utilisateur. Celles-ci sont généralement accessibles à l'aide des API Workspace. Toutefois, un compte de service peut accéder aux données utilisateur en mettant en œuvre 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 qui peut autoriser une application à accéder aux données utilisateur au nom 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 ce faire, 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 une autorité à l'échelle 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 l'accès de votre application à leurs données.