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 effectue 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. Vous ne pouvez pas déterminer les ressources auxquelles accéder sans avoir préalablement établi 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, l'employé de 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. L'employé de 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, 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 schéma suivant illustre les principales étapes d'authentification et d'autorisation pour les API Google Workspace:
![Principales étapes de la mise en œuvre de l'authentification et de l'autorisation](https://developers-dot-devsite-v2-prod.appspot.com/workspace/images/auth-overview.png?authuser=19&hl=fr)
Configurez votre projet et votre application Google Cloud:pendant le 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 à l'aide d'une clé API, des identifiants de l'utilisateur final ou des identifiants du compte de service.
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.
Demander des ressources:lorsque votre application a besoin d'accéder aux ressources Google, elle demande à Google en utilisant les niveaux d'accès pertinents que vous avez précédemment enregistrés.
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 ou non à votre application l'accès aux données demandées.
Envoyer 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 Google pour obtenir un jeton d'accès.
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 niveaux d'accès affiché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.
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.
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.
Demande de ressources supplémentaires:si un accès supplémentaire est nécessaire, votre application demande à l'utilisateur d'accorder de nouveaux niveaux d'accès, ce qui déclenche une nouvelle demande de 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 ce qu'elle prétend être. Lorsque vous développez des applications Google Workspace, vous devez connaître ces types d'authentification:
- Authentification des utilisateurs
- Acte d'authentification d'un utilisateur (connexion) à votre application. L'authentification de l'utilisateur s'effectue généralement via un processus de connexion au cours duquel 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 des utilisateurs dans une application à l'aide de Se connecter avec Google.
- Authentification des applications
- Acte d'authentification d'une application 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 effectué par le biais 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 permettant 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 justificatif 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 des données fournies à l'aide de l'API Google Maps ou des fichiers Google Workspace partagés à l'aide du paramètre "Tous les internautes disposant de ce lien" dans les paramètres de partage 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 de votre application et du 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é 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, par exemple 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 basées dans le cloud. Toutefois, lorsqu'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.
- Niveau d'accès
Chaîne d'URI OAuth 2.0 qui définit un niveau d'accès aux ressources ou aux actions accordés à 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 auxquelles 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 Choisir des champs d'application pour votre application.
- Serveur d'autorisation
Serveur de Google pour accorder l'accès aux données et opérations demandées par une application, à l'aide d'un jeton d'accès.
- 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 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é, 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, telles que 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, 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 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
Étape d'autorisation nécessitant que l'utilisateur de votre application autorise l'application à accéder aux données et à effectuer des opérations au nom de l'utilisateur.
- 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 appareils d'entrée limités, 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 ne permettent pas, eux-mêmes, d'accéder aux données utilisateur, qui sont habituellement accessibles via les 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
Une 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 déléguer cette autorité, 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 page Déléguer une 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 l'accès de votre application à leurs données.