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 explique comment fonctionnent l'authentification et l'autorisation pour les applications Chat et les requêtes API Chat.
Présentation du processus
Le schéma suivant illustre les étapes générales d'authentification et d'autorisation pour Google Chat :
Configurez un projet Google Cloud, activez l'API Chat et configurez votre application Chat : pendant le développement, vous créez un projet Google Cloud. Dans le projet Google Cloud, vous activez l'API Chat, configurez votre application Chat et configurez l'authentification. Pour en savoir plus, consultez Développer sur Google Workspace et Créer une application Chat.
Appeler l'API Chat : lorsque votre application appelle l'API Chat, elle lui envoie des identifiants d'authentification. Si votre application s'authentifie avec un compte de service, les identifiants sont envoyés dans le code de votre application. Si votre application nécessite d'appeler l'API Chat à l'aide de l'authentification d'un utilisateur qui n'a pas encore été accordée, elle invite l'utilisateur à se connecter.
Demande de ressources : votre application demande l'accès avec les champs d'application que vous spécifiez lors de la configuration de l'authentification.
Demander l'autorisation : si votre application s'authentifie en tant qu'utilisateur, Google affiche un écran de consentement OAuth pour que l'utilisateur puisse décider d'accorder ou non à votre application l'accès aux données demandées. L'authentification avec un compte de service ne nécessite pas le consentement de l'utilisateur.
Envoyer une demande approuvée pour les ressources : si l'utilisateur accepte les champs d'application d'autorisation, votre application regroupe les identifiants et les champs d'application 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.
Google renvoie un jeton d'accès : le jeton d'accès contient une liste des champs d'application accordés. Si la liste de champs d'application renvoyée est plus restrictive que les champs d'application demandés, votre application désactive toutes les fonctionnalités limitées par le jeton.
Accéder aux ressources demandées : votre application utilise le jeton d'accès de Google pour appeler l'API Chat et accéder aux ressources de l'API Chat.
Obtenir un jeton d'actualisation (facultatif) : si votre application doit accéder à l'API Google Chat au-delà de la durée de vie d'un seul jeton d'accès, elle peut obtenir un jeton d'actualisation. Pour en savoir plus, consultez Utiliser OAuth 2.0 pour accéder aux API Google.
Demander plus de ressources : si votre application a besoin d'un accès plus étendu, elle demande à l'utilisateur d'accorder de nouveaux champs d'application, ce qui entraîne une nouvelle demande d'obtention d'un jeton d'accès (étapes 3 à 6).
Lorsque les applications Chat nécessitent une authentification
Les applications Chat peuvent envoyer des messages en réponse à une interaction de l'utilisateur ou de manière asynchrone. Elles peuvent également effectuer des tâches au nom d'un utilisateur, comme créer un espace Chat ou obtenir la liste des personnes d'un espace Chat.
Les applications Chat ne nécessitent pas d'authentification pour répondre à une interaction utilisateur, sauf si l'application Chat appelle l'API Chat ou une autre API Google lors du traitement d'une réponse.
Pour envoyer des messages asynchrones ou effectuer des tâches au nom d'un utilisateur, les applications Chat envoient des requêtes RESTful à l'API Chat, qui nécessitent une authentification et une autorisation.
Les réponses aux interactions des utilisateurs ne nécessitent pas d'authentification
Les applications Google Chat n'ont pas besoin de s'authentifier en tant qu'utilisateur ou application Chat pour recevoir des interactions utilisateur et y répondre de manière synchrone.
Les applications Google Chat reçoivent des objets d'événement chaque fois qu'un utilisateur interagit avec une application Chat ou l'appelle, y compris dans les cas suivants :
- Un utilisateur envoie un message à une application Chat.
- Un utilisateur @mentionne une application Chat.
- Un utilisateur appelle l'une des commandes de l'application Chat.
Le schéma suivant illustre une séquence de requête-réponse entre un utilisateur de Chat et une application Chat :
- L'utilisateur envoie un message à l'application Chat dans Google Chat.
- Google Chat transfère le message à l'application.
- L'application reçoit le message, le traite et renvoie une réponse à Google Chat.
- Google Chat affiche la réponse pour l'utilisateur ou dans un espace.
Cette séquence se répète pour chaque interaction de l'utilisateur avec l'application Chat.
Les messages asynchrones nécessitent une authentification
Les messages asynchrones se produisent lorsqu'une application Chat envoie une requête à l'API Chat, ce qui nécessite une authentification et une autorisation.
En appelant l'API Chat, les applications Chat peuvent publier des messages dans Google Chat, effectuer des tâches et accéder aux données au nom d'un utilisateur. Par exemple, après avoir détecté une panne de serveur, une application Chat peut appeler l'API Chat pour :
- Créez un espace Chat dédié à l'investigation et à la résolution de la panne.
- Ajoutez des personnes à l'espace Chat.
- Publiez un message dans l'espace Chat pour donner des détails sur la panne.
Le schéma suivant illustre une séquence de messages asynchrones entre une application Chat et un espace Chat :
- Une application Chat crée un message en appelant l'API Chat à l'aide de la méthode
spaces.messages.createet inclut les identifiants de l'utilisateur dans la requête HTTP. - Google Chat authentifie l'application Chat à l'aide d'un compte de service ou d'identifiants utilisateur.
- Google Chat affiche le message de l'application dans un espace Chat spécifié.
Champs d'application de l'API Chat
Configurez l'écran de consentement OAuth et choisissez des champs d'application pour définir les informations affichées aux utilisateurs et aux examinateurs de l'application, puis enregistrez votre application pour pouvoir la publier ultérieurement.
Pour définir le niveau d'accès accordé à votre application, vous devez identifier et déclarer des champs d'application d'autorisation. Un niveau d'accès d'autorisation est une chaîne d'URI OAuth 2.0 qui contient le nom de l'application Google Workspace, le type de données auxquelles elle accède et le niveau d'accès.
Champs d'application non sensibles
| Code du champ d'application | Description |
|---|---|
https://www.googleapis.com/auth/chat.bot
|
Permet aux applications Chat d'afficher les discussions et d'envoyer des messages. Ce champ d'application n'est compatible qu'avec l'authentification des applications avec des comptes de service. Vous ne pouvez pas vous authentifier avec des identifiants utilisateur ni avec la délégation au niveau du domaine à l'aide de ce champ d'application. |
Niveaux d'accès sensibles
| Code du champ d'application | Description |
|---|---|
https://www.googleapis.com/auth/chat.spaces
|
Créer des conversations et des espaces, et afficher ou modifier les métadonnées (y compris les paramètres d'historique et d'accès) dans Chat. |
https://www.googleapis.com/auth/chat.spaces.create
|
Créer des conversations dans Chat |
https://www.googleapis.com/auth/chat.spaces.readonly
|
Afficher le chat et les espaces dans Chat. |
https://www.googleapis.com/auth/chat.memberships
|
Afficher les participants aux conversations dans Chat, en ajouter, les modifier ou en supprimer |
https://www.googleapis.com/auth/chat.memberships.app
|
S'ajouter aux conversations dans Google Chat et s'en supprimer. |
https://www.googleapis.com/auth/chat.memberships.readonly
|
Afficher les participants aux conversations Chat. |
https://www.googleapis.com/auth/chat.messages.create
|
Rédiger et envoyer des messages dans Chat |
https://www.googleapis.com/auth/chat.messages.reactions
|
Afficher, ajouter et supprimer des réactions à des messages dans Chat. |
https://www.googleapis.com/auth/chat.messages.reactions.create
|
Ajouter des réactions à un message dans Chat |
https://www.googleapis.com/auth/chat.messages.reactions.readonly
|
Afficher les réactions à un message dans Chat. |
https://www.googleapis.com/auth/chat.users.readstate
|
Afficher et modifier l'heure de dernière lecture des conversations Chat |
https://www.googleapis.com/auth/chat.users.readstate.readonly
|
Afficher l'heure de dernière lecture des conversations Chat. |
https://www.googleapis.com/auth/chat.admin.spaces.readonly
|
Afficher les discussions et les espaces appartenant au domaine de l'administrateur dans Chat. |
https://www.googleapis.com/auth/chat.admin.spaces
|
Afficher ou modifier les discussions et les espaces appartenant au domaine de l'administrateur dans Chat. |
https://www.googleapis.com/auth/chat.admin.memberships.readonly
|
Afficher les participants et les gestionnaires dans les conversations appartenant au domaine de l'administrateur dans Chat. |
https://www.googleapis.com/auth/chat.admin.memberships
|
Afficher, ajouter, modifier et supprimer les membres et les gestionnaires dans les conversations appartenant au domaine de l'administrateur dans Chat. |
https://www.googleapis.com/auth/chat.app.spaces
|
Créer des conversations et des espaces, et afficher ou modifier les métadonnées (y compris les paramètres d'historique et d'accès) dans Chat en tant qu'application Chat. Nécessite l'approbation de l'administrateur. Ce champ d'application n'est compatible qu'avec l'authentification des applications avec des comptes de service. Vous ne pouvez pas vous authentifier avec des identifiants utilisateur ni avec la délégation au niveau du domaine à l'aide de ce champ d'application. |
https://www.googleapis.com/auth/chat.app.spaces.readonly
|
Afficher les métadonnées (y compris les paramètres d'historique) dans Chat en tant qu'application Chat. Nécessite l'approbation de l'administrateur. Ce champ d'application n'est compatible qu'avec l'authentification des applications avec des comptes de service. Vous ne pouvez pas vous authentifier avec des identifiants utilisateur ni avec la délégation au niveau du domaine à l'aide de ce champ d'application. |
https://www.googleapis.com/auth/chat.app.spaces.create
|
Créer des conversations et des espaces dans Chat en tant qu'application Chat. Nécessite l'approbation d'un administrateur. Ce champ d'application n'est compatible qu'avec l'authentification des applications avec des comptes de service. Vous ne pouvez pas vous authentifier avec des identifiants utilisateur ni avec la délégation au niveau du domaine à l'aide de ce champ d'application. |
https://www.googleapis.com/auth/chat.app.memberships
|
Afficher les membres des conversations et des espaces dans Chat, en ajouter, en modifier et en supprimer en tant qu'application Chat. Nécessite l'approbation d'un administrateur. Ce champ d'application n'est compatible qu'avec l'authentification des applications avec des comptes de service. Vous ne pouvez pas vous authentifier avec des identifiants utilisateur ni avec la délégation au niveau du domaine à l'aide de ce champ d'application. |
https://www.googleapis.com/auth/chat.app.memberships.readonly
|
Afficher les membres des conversations et des espaces dans Chat en tant qu'application Chat. Nécessite l'approbation d'un administrateur. Ce champ d'application n'est compatible qu'avec l'authentification des applications avec des comptes de service. Vous ne pouvez pas vous authentifier avec des identifiants utilisateur ni avec la délégation au niveau du domaine à l'aide de ce champ d'application. |
https://www.googleapis.com/auth/chat.customemojis
|
Afficher, créer et supprimer des emoji personnalisés dans Chat. |
https://www.googleapis.com/auth/chat.customemojis.readonly
|
Consulter les emoji personnalisés dans Chat |
https://www.googleapis.com/auth/chat.users.spacesettings
|
Afficher et modifier les paramètres d'espace utilisateur Chat. |
https://www.googleapis.com/auth/chat.users.sections
|
Consulter, créer, modifier et supprimer vos sections dans Chat ; déplacer et lister les éléments de vos sections dans Chat. |
https://www.googleapis.com/auth/chat.users.sections.readonly
|
Consulter vos sections et leurs éléments dans Chat. |
Champs d'application restreints
| Code du champ d'application | Description |
|---|---|
https://www.googleapis.com/auth/chat.delete
|
Supprimer des conversations et des espaces, et supprimer l'accès aux fichiers associés dans Chat |
https://www.googleapis.com/auth/chat.import
|
Importer des espaces, des messages et des membres dans Chat Pour en savoir plus, consultez Autoriser les applications Chat à importer des données. |
https://www.googleapis.com/auth/chat.messages
|
Afficher, rédiger, envoyer, mettre à jour et supprimer les messages, et ajouter, afficher et supprimer les réactions aux messages. |
https://www.googleapis.com/auth/chat.messages.readonly
|
Afficher les messages et les réactions dans Chat. |
https://www.googleapis.com/auth/chat.app.messages.readonly
|
Afficher les messages et les réactions dans Chat en tant qu'application Chat. Nécessite l'approbation d'un administrateur. Ce champ d'application n'est compatible qu'avec l'authentification des applications avec des comptes de service. Vous ne pouvez pas vous authentifier avec des identifiants utilisateur ni avec la délégation au niveau du domaine à l'aide de ce champ d'application. |
https://www.googleapis.com/auth/chat.admin.delete
|
Supprimer des conversations et des espaces appartenant au domaine de l'administrateur, et supprimer l'accès aux fichiers associés dans Chat. |
https://www.googleapis.com/auth/chat.app.delete
|
Supprimer des conversations et des espaces, et supprimer l'accès aux fichiers associés dans Chat en tant qu'application Chat. Nécessite l'approbation d'un administrateur. Ce champ d'application n'est compatible qu'avec l'authentification des applications avec des comptes de service. Vous ne pouvez pas vous authentifier avec des identifiants utilisateur ni avec la délégation au niveau du domaine à l'aide de ce champ d'application. |
Les champs d'application des tableaux précédents indiquent leur sensibilité, selon les définitions suivantes :
Non sensibles : ces champs d'application fournissent la plus petite sphère d'accès d'autorisation et ne nécessitent qu'une validation de base de l'application. Pour en savoir plus sur cette exigence, consultez Étapes de préparation de la validation.
Sensibles : ces champs d'application permettent à votre application d'accéder aux données Google d'un utilisateur spécifique après avoir reçu son autorisation. Vous devez passer par une validation supplémentaire de l'application. Pour en savoir plus sur cette exigence, consultez Étapes pour les applications demandant des champs d'application sensibles.
Restreints : ces champs d'application fournissent un accès étendu aux données utilisateur Google et nécessitent que vous suiviez la procédure de validation des champs d'application restreints. Pour en savoir plus sur cette exigence, consultez les Règles sur les données utilisateur pour les services des API Google et les Exigences supplémentaires pour des champs d'application d'API spécifiques. Consultez également Étapes pour les applications demandant des champs d'application restreints.
Si votre application nécessite l'accès à d'autres API Google, vous pouvez également ajouter ces champs d'application. Pour en savoir plus sur les champs d'application des API Google, consultez Utiliser OAuth 2.0 pour accéder aux API Google.
Pour en savoir plus sur les champs d'application des API Google Workspace, consultez Configurer l'écran de consentement OAuth et choisir des champs d'application.
Types d'authentification requis
Les applications Chat peuvent s'authentifier et s'autoriser auprès de l'API Chat de deux manières :
- Authentification des utilisateurs
- L'authentification des utilisateurs permet à une application Chat d'accéder aux données utilisateur et d'effectuer des actions au nom d'un utilisateur. Les champs d'application OAuth spécifient les données et les actions autorisées. Sauf si l'application Chat a été installée par l'administrateur ou si elle a reçu une délégation au niveau du domaine, la première fois que l'application Chat effectue une action au nom d'un utilisateur, celui-ci doit l'autoriser à l'aide de l'écran de consentement OAuth.
- Authentification de l'application
L'authentification de l'application permet à une application Chat d'utiliser les identifiants d'un compte de service, d'accéder aux données et d'effectuer des actions en son nom. Comme l'application Chat utilise ses propres identifiants pour accéder aux ressources et les utiliser, les utilisateurs finaux n'ont pas besoin d'approuver les appels d'API de l'application Chat, et vous ne pouvez pas ajouter de champs d'application d'autorisation OAuth compatibles avec l'autorisation de l'application à l'écran de consentement OAuth.
Deux types de champs d'application d'autorisation OAuth sont compatibles avec l'authentification des applications :
https://www.googleapis.com/auth/chat.bot: votre application Chat peut appeler des méthodes de l'API Google Chat compatibles avec ce champ d'application d'autorisation pour créer, mettre à jour, obtenir, lister ou supprimer des ressources auxquelles elle a accès, comme les messages dans les espaces auxquels les utilisateurs finaux ajoutent votre application Chat. Votre application Chat peut s'accorder elle-même ce champ d'application d'autorisation, sans qu'aucune autorisation d'administrateur ou d'utilisateur final ne soit requise.https://www.googleapis.com/auth/chat.app.*: l'utilisation de ces champs d'application nécessite une approbation ponctuelle de l'administrateur. Pour recevoir l'approbation de l'administrateur, vous devez préparer le compte de service de l'application Chat à recevoir l'approbation de l'administrateur en créant un client OAuth compatible avec Google Workspace Marketplace et en configurant l'application dans le SDK Google Workspace Marketplace. Ces champs d'application permettent à votre application Chat d'appeler des méthodes spécifiques de l'API Google Chat. Par exemple,chat.app.spaces.createpermet aux applications de créer des espaces Chat.
Si une méthode est compatible avec l'authentification de l'utilisateur ou de l'application, l'API Chat renvoie des résultats différents en fonction du type d'authentification que vous utilisez :
- Avec l'authentification par application, les méthodes ne renvoient que les ressources auxquelles l'application Chat peut accéder.
- Avec l'authentification des utilisateurs, les méthodes ne renvoient que les ressources auxquelles l'utilisateur peut accéder.
Par exemple, l'appel de la méthode spaces.list() avec l'autorisation de l'application renvoie la liste des espaces dont l'application Chat est membre.
L'appel de spaces.list() avec l'autorisation de l'utilisateur renvoie la liste des espaces dont l'utilisateur est membre. En pratique, vous pouvez utiliser les deux types d'authentification lorsque vous appelez l'API Chat, en fonction de la conception et des fonctionnalités de votre application Chat.
Pour les appels d'API Chat asynchrones
Le tableau suivant liste les méthodes de l'API Chat et leurs champs d'application d'autorisation compatibles :
Pour les événements d'interaction avec l'application Chat
Le tableau suivant répertorie les façons courantes dont les utilisateurs interagissent avec les applications Chat, et indique si l'authentification est requise ou acceptée :
| Scénario | Aucune authentification requise | Authentification des utilisateurs compatible | Authentification par l'application acceptée | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Recevoir des messages de : |
|
|||||||||||||||
| Répondre aux messages : |
|
|||||||||||||||
| Envoyer de nouveaux messages : |
|
|||||||||||||||
Articles associés
- Pour en savoir plus sur l'authentification et l'autorisation dans Google Workspace, consultez En savoir plus sur l'authentification et l'autorisation.
- Pour en savoir plus sur l'authentification et l'autorisation dans Google Cloud, consultez la présentation de l'authentification.
- Pour en savoir plus sur les comptes de service, consultez Comptes de service.
- Pour en savoir plus sur l'utilisation d'OAuth 2.0 par les API Google, consultez Utiliser OAuth 2.0 pour accéder aux API Google.
- Configurez l'authentification et l'autorisation avec des identifiants utilisateur ou un compte de service.
- Pour gérer les autorisations OAuth précises, consultez Gérer les autorisations OAuth précises pour les applications Google Chat.