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 décrit le fonctionnement de l'authentification et de 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:lors du 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.
Call Chat API:lorsque votre application appelle l'API Chat, elle envoie des identifiants d'authentification à l'API Chat. Si votre application s'authentifie avec un compte de service, les identifiants sont envoyés dans le cadre de son code. 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 l'invite à se connecter.
Demander des ressources: votre application demande l'accès avec les niveaux d'accès que vous spécifiez lors de la configuration de l'authentification.
Demander le consentement:si votre application s'authentifie en tant qu'utilisateur, Google affiche un écran de consentement OAuth pour que l'utilisateur puisse décider d'autoriser ou non votre application à accéder aux données demandées. L'authentification avec un compte de service ne nécessite pas le consentement de l'utilisateur.
Envoyez une demande approuvée pour des ressources:si l'utilisateur accepte les niveaux d'autorisation, 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 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ès 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 cette API.
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 jeton d'accès unique, elle peut obtenir un jeton d'actualisation. Pour en savoir plus, consultez la section 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 génère une nouvelle requête pour obtenir un jeton d'accès (étapes 3 à 6).
Lorsque les applications Chat nécessitent une authentification
Les applications de chat peuvent envoyer des messages en réponse à une interaction de l'utilisateur, ou de manière asynchrone. Ils peuvent également effectuer des tâches pour le compte d'un utilisateur, comme créer un espace Chat ou obtenir la liste des personnes dans 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 pour le compte d'un utilisateur, les applications Chat envoient des requêtes RESTful à l'API Chat, ce qui nécessite 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 événements d'interaction et y répondre de manière synchrone.
Les applications Google Chat reçoivent des événements d'interaction chaque fois qu'un utilisateur interagit ou appelle une application Chat, y compris les suivants:
- Un utilisateur envoie un message à une application Chat.
- Un utilisateur mentionne @une application Chat.
- Un utilisateur appelle l'une des commandes à barre oblique de l'application Chat.
Le schéma suivant illustre une séquence requête-réponse entre un utilisateur Chat et une application Chat:
- L'utilisateur envoie un message à l'application Chat dans Google Chat.
- Google Chat transfère le message vers 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 événement d'interaction avec l'application Chat.
Les messages asynchrones nécessitent une authentification
Des 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 ou effectuer des tâches et accéder aux données pour le compte 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'enquête et à la résolution de la panne.
- Ajoutez des personnes à l'espace Chat.
- Publiez un message dans l'espace Chat pour fournir des détails sur l'indisponibilité.
Le schéma suivant illustre une séquence de messages asynchrone 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.create
et 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 des API Chat
Configurez l'écran de consentement OAuth et choisissez des niveaux d'accès pour définir les informations à présenter aux utilisateurs et aux examinateurs d'applications, 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 les niveaux d'autorisation. Un champ d'application 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
|
Le champ d'application Permet aux applications Chat d'afficher les discussions et d'envoyer des messages. Donne accès à toutes les fonctionnalités disponibles pour les applications Chat. |
Champs d'application sensibles
Code du champ d'application | Description |
---|---|
https://www.googleapis.com/auth/chat.spaces
|
Créez des conversations et des espaces, et consultez ou modifiez 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
|
Affichez le chat et les espaces dans Chat. |
https://www.googleapis.com/auth/chat.memberships
|
Affichez les participants aux conversations dans Chat, ajoutez-en, modifiez-les et supprimez-en. |
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
|
Affichez les participants dans les conversations Chat. |
https://www.googleapis.com/auth/chat.messages.create
|
Rédigez et envoyez des messages dans Chat. |
https://www.googleapis.com/auth/chat.messages.reactions
|
Affichez, ajoutez et supprimez des réactions aux messages dans Chat. |
https://www.googleapis.com/auth/chat.messages.reactions.create
|
Ajoutez des réactions à un message dans Chat. |
https://www.googleapis.com/auth/chat.messages.reactions.readonly
|
Affichez les réactions à un message dans Chat. |
https://www.googleapis.com/auth/chat.users.readstate
|
Affichez et modifiez 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
|
Affichez les participants et les gestionnaires dans les conversations appartenant au domaine de l'administrateur dans Chat. |
https://www.googleapis.com/auth/chat.admin.memberships
|
Affichez, ajoutez, modifiez et supprimez des participants et des gestionnaires dans les conversations appartenant au domaine de l'administrateur dans Chat. |
Champs d'application restreints
Code du champ d'application | Description |
---|---|
https://www.googleapis.com/auth/chat.delete
|
Supprimez des conversations et des espaces, et supprimez 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 des messages, et ajouter, afficher et supprimer les réactions aux messages. |
https://www.googleapis.com/auth/chat.messages.readonly
|
Consultez les messages et les réactions dans Chat. |
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. |
Les champs d'application des tableaux précédents indiquent leur sensibilité, conformément aux définitions suivantes:
Non sensibles : ces champs d'application fournissent la plus petite sphère d'accès aux autorisations et ne nécessitent qu'une validation de base de l'application. Pour en savoir plus sur cette exigence, consultez la section Étapes pour préparer la validation.
Sensible : ces champs d'application permettent à votre application d'accéder aux données Google d'un utilisateur spécifique après avoir reçu l'autorisation de celui-ci. Vous devez effectuer une validation supplémentaire de l'application. Pour en savoir plus sur cette exigence, consultez la section Procédure pour les applications demandant des champs d'application sensibles.
Limité : ces niveaux d'accès fournissent un large accès aux données utilisateur Google et nécessitent que vous soumettiez la procédure de validation restreinte des champs d'application. Pour plus d'informations sur cette exigence, consultez les pages Services d'API Google: règles sur les données utilisateur et Exigences supplémentaires pour les champs d'application d'API spécifiques. Consultez également la procédure à suivre pour les applications demandant des niveaux d'accès 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 la page 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 les niveaux d'accès.
Types d'authentification requises
Il existe deux façons pour les applications Chat de s'authentifier et d'autoriser l'API Chat: les identifiants utilisateur ou les comptes de service.
Avec l'autorisation d'identification de l'utilisateur, une application Chat peut accéder aux données utilisateur et effectuer des actions au nom de l'utilisateur. Les champs d'application OAuth spécifient les données et les actions autorisées.
Avec l'autorisation d'application, une application de chat accède à l'API en tant qu'application à l'aide des identifiants du compte de service. L'autorisation de l'application utilise toujours le champ d'application d'autorisation chat.bot
.
Lorsque vous décidez du type d'identifiant à utiliser pour une requête API particulière, n'oubliez pas que certaines méthodes d'API n'acceptent qu'un type particulier d'identifiants. Si une méthode API accepte les deux identifiants, le type d'identifiant utilisé dans l'appel a une incidence sur le résultat renvoyé:
- Avec l'autorisation de l'application, les méthodes ne renvoient que les ressources auxquelles l'application peut accéder.
- Avec l'autorisation de l'utilisateur, les méthodes ne renvoient que les ressources auxquelles l'utilisateur peut accéder dans l'interface utilisateur Chat.
Par exemple, appeler la méthode ListSpaces
avec l'autorisation de l'application renvoie la liste des espaces dont l'application est membre. L'appel de ListSpaces
avec l'autorisation de l'utilisateur renvoie la liste des espaces dont l'utilisateur est membre. En pratique, votre application peut utiliser les deux types d'autorisation lors de l'appel de l'API Chat, en fonction de la fonctionnalité souhaitée.
Pour les appels d'API Chat asynchrones
Le tableau suivant répertorie les méthodes de l'API Chat et leurs champs d'application d'autorisation compatibles:
Méthode | Compatible avec l'authentification des utilisateurs | Compatibilité avec l'authentification des applications | Champs d'application d'autorisation compatibles | |
---|---|---|---|---|
Espaces | ||||
Créer un espace | — |
Avec Authentification des utilisateurs :
|
||
Configurer un espace | — |
Avec Authentification des utilisateurs :
|
||
Obtenir un espace |
Avec Authentification des utilisateurs :
|
|||
Lister les espaces |
Avec Authentification des utilisateurs :
|
|||
Rechercher dans les espaces |
Avec l'authentification des utilisateurs avec des droits d'administrateur :
|
|||
Modifier un espace | — |
Avec Authentification des utilisateurs :
|
||
Supprimer un espace | — |
Avec Authentification des utilisateurs :
|
||
Terminer le processus d'importation d'un espace | — |
Avec Authentification des utilisateurs :
|
||
Rechercher un message privé |
Avec Authentification des utilisateurs :
|
|||
Membres | ||||
Créer un membre | — |
Avec Authentification des utilisateurs :
|
||
Récupérer un membre |
Avec Authentification des utilisateurs :
|
|||
Membres de la liste |
Avec Authentification des utilisateurs :
|
|||
Supprimer un membre | — |
Avec Authentification des utilisateurs :
|
||
Mettre à jour un membre | — |
Avec Authentification des utilisateurs :
|
||
Messages | ||||
Créer un message |
Avec Authentification des utilisateurs :
|
|||
Recevoir un message |
Avec Authentification des utilisateurs :
|
|||
Lister les messages | — |
Avec Authentification des utilisateurs :
|
||
Modifier un message |
Avec Authentification des utilisateurs :
|
|||
Supprimer un message |
Avec Authentification des utilisateurs :
|
|||
Réactions | ||||
Créer une réaction | — |
Avec Authentification des utilisateurs :
|
||
Lister les réactions | — |
Avec Authentification des utilisateurs :
|
||
Supprimer une réaction | — |
Avec Authentification des utilisateurs :
|
||
Contenus multimédias et pièces jointes | ||||
Importer un fichier multimédia en pièce jointe | — |
Avec Authentification des utilisateurs :
|
||
Télécharger des contenus multimédias |
Avec Authentification des utilisateurs :
|
|||
Recevoir une pièce jointe | — |
Avec Authentification des applications :
|
||
États de lecture par l'utilisateur | ||||
Obtenir l'état de lecture d'un espace utilisateur | — |
Avec Authentification des utilisateurs :
|
||
Mettre à jour l'état de lecture d'un espace utilisateur | — |
Avec Authentification des utilisateurs :
|
||
Obtenir l'état de lecture d'un fil de discussion d'un utilisateur | — |
Avec Authentification des utilisateurs :
|
||
Événements de l'espace | ||||
Recevoir les événements de l'espace | — |
Avec Authentification des utilisateurs :
|
||
Lister les événements d'espace | — |
Avec Authentification des utilisateurs :
|
Pour les événements d'interaction avec l'application Chat
Le tableau suivant liste les interactions courantes des utilisateurs avec les applications Chat, et indique si une authentification est requise ou compatible:
Scénario | Aucune authentification requise | Compatible avec l'authentification des utilisateurs | Compatibilité avec l'authentification des applications | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Recevoir les messages de: |
|
|||||||||||||||
Répondre aux messages: |
|
|||||||||||||||
Pour envoyer de nouveaux messages: |
|
Articles associés
- Pour en savoir plus sur l'authentification et l'autorisation dans Google Workspace, consultez la section En savoir plus sur l'authentification et l'autorisation.
- Pour en savoir plus sur l'authentification et l'autorisation dans Google Cloud, consultez la page Présentation de l'authentification.
- Pour en savoir plus sur les comptes de service, consultez la page Comptes de service.
- Pour en savoir plus sur la manière dont les API Google exploitent OAuth 2.0, consultez la page Utiliser OAuth 2.0 pour accéder aux API Google.
- Configurez l'authentification et l'autorisation à l'aide d'identifiants utilisateur ou d'un compte de service.