Autenticação e autorização são mecanismos usados para verificar a identidade e o acesso aos recursos, respectivamente. Este documento descreve como a autenticação e a autorização funcionam para apps do Chat e solicitações da API do Chat.
Visão geral do processo
O diagrama a seguir mostra as etapas gerais de autenticação e autorização do Google Chat:
Configure um projeto do Google Cloud, ative a API Chat e configure o app do Chat:durante o desenvolvimento, você cria um projeto do Google Cloud. No projeto do Google Cloud, você ativa a API Chat, configura o app do Chat e configura a autenticação. Para mais informações, consulte Desenvolver no Google Workspace e Criar um app do Chat.
Chamar a API Chat: quando seu app chama a API Chat, ele envia credenciais de autenticação para a API Chat. Se o app for autenticado com uma conta de serviço, as credenciais serão enviadas como parte do código do app. Se o app exigir a chamada da API Chat usando a autenticação de um usuário que ainda não foi concedida, ele vai solicitar que o usuário faça login.
Solicitar recursos: o app solicita acesso com escopos especificados ao configurar a autenticação.
Solicitar consentimento: se o app estiver se autenticando como um usuário, o Google vai mostrar uma tela de consentimento OAuth para que o usuário decida se quer conceder ao app acesso aos dados solicitados. A autenticação com uma conta de serviço não exige o consentimento do usuário.
Enviar solicitação aprovada de recursos:se o usuário consentir com os escopos de autorização, o app vai agrupar as credenciais e os escopos aprovados pelo usuário em uma solicitação. A solicitação é enviada ao servidor de autorização do Google para receber um token de acesso.
O Google retorna um token de acesso:contém uma lista de escopos concedidos. Se a lista de escopos retornada for mais restritiva que os escopos solicitados, o app desativará todos os recursos limitados pelo token.
Acessar os recursos solicitados: o app usa o token de acesso do Google para invocar a API Chat e acessar os recursos da API Chat.
Receber um token de atualização (opcional): se o app precisar acessar a API Google Chat além do ciclo de vida de um único token de acesso, ele poderá receber um token de atualização. Para mais informações, consulte Usar o OAuth 2.0 para acessar as APIs do Google.
Solicitar mais recursos: se o app precisar de mais acesso, ele pedirá ao usuário para conceder novos escopos, resultando em uma nova solicitação para receber um token de acesso (etapas 3 a 6).
Quando os apps de chat exigem autenticação
Os apps de chat podem enviar mensagens em resposta a uma interação do usuário ou de forma assíncrona. Eles também podem concluir tarefas em nome de um usuário, como criar um espaço do Chat ou receber uma lista de pessoas em um espaço do Chat.
Os apps do Chat não exigem autenticação para responder a uma interação do usuário, a menos que chamem a API Chat ou outra API do Google ao processar uma resposta.
Para enviar mensagens assíncronas ou realizar tarefas em nome de um usuário, os apps do Chat fazem solicitações RESTful para a API Chat, que exigem autenticação e autorização.
As respostas às interações do usuário não exigem autenticação
Os apps do Google Chat não precisam se autenticar como um usuário ou um app do Chat para receber e responder de forma síncrona a eventos de interação.
Os apps do Google Chat recebem eventos de interação sempre que um usuário interage ou invoca um app do Chat, incluindo o seguinte:
- Um usuário envia uma mensagem para um app do Chat.
- Um usuário @menciona um app do Chat.
- Um usuário invoca um dos comandos de barra do app do Chat.
O diagrama a seguir mostra uma sequência de solicitação-resposta entre um usuário do Chat e o app do Chat:
- O usuário envia uma mensagem para o app Chat no Google Chat.
- O Google Chat encaminha a mensagem para o app.
- O app recebe a mensagem, a processa e retorna uma resposta ao Google Chat.
- O Google Chat renderiza a resposta para o usuário ou em um espaço.
Essa sequência é repetida para cada evento de interação com o app do Chat.
Mensagens assíncronas exigem autenticação
As mensagens assíncronas ocorrem quando um app do Chat faz uma solicitação à API Chat, que exige autenticação e autorização.
Ao chamar a API Chat, os apps do Chat podem postar mensagens no Google Chat ou concluir tarefas e acessar dados em nome de um usuário. Por exemplo, depois de detectar uma falha no servidor, um app de chat pode chamar a API Chat para:
- Crie um espaço do Chat dedicado a investigar e corrigir a interrupção do serviço.
- Adicionar pessoas ao espaço do Chat.
- Poste uma mensagem no espaço do Chat para dar detalhes sobre a interrupção.
O diagrama a seguir mostra uma sequência assíncrona de mensagens entre um app e um espaço do Chat:
- Um app do Chat cria uma mensagem chamando a
API Chat usando o
método
spaces.messages.create
e inclui credenciais do usuário na solicitação HTTP. - O Google Chat autentica o app do Chat com as credenciais da conta de serviço ou do usuário.
- O Google Chat renderiza a mensagem do app em um espaço especificado do Chat.
Escopos da API Chat
Configure a tela de permissão OAuth e escolha os escopos para definir quais informações serão exibidas aos usuários e revisores, além de registrar o app para que você possa publicá-lo mais tarde.
Para definir o nível de acesso concedido ao app, é necessário identificar e declarar os escopos de autorização. Um escopo de autorização é uma string de URI do OAuth 2.0 que contém o nome do app do Google Workspace, o tipo de dados que ele acessa e o nível de acesso.
Escopos não confidenciais
Código do escopo | Descrição |
---|---|
https://www.googleapis.com/auth/chat.bot
|
Permite que os apps de chat vejam os chats e enviem mensagens. Este escopo só oferece suporte à autenticação de apps com contas de serviço. Não é possível autenticar com credenciais de usuário ou com a delegação em todo o domínio usando esse escopo. |
Escopos confidenciais
Código do escopo | Descrição |
---|---|
https://www.googleapis.com/auth/chat.spaces
|
Crie conversas e espaços e confira ou edite metadados (incluindo as configurações do histórico e de acesso) no Chat. |
https://www.googleapis.com/auth/chat.spaces.create
|
Criar novas conversas no Chat. |
https://www.googleapis.com/auth/chat.spaces.readonly
|
Acessar o chat e os espaços no Chat. |
https://www.googleapis.com/auth/chat.memberships
|
Visualizar, adicionar, atualizar e remover participantes de conversas no Chat. |
https://www.googleapis.com/auth/chat.memberships.app
|
Adicionar e remover o app de conversas no Google Chat. |
https://www.googleapis.com/auth/chat.memberships.readonly
|
Ver os participantes nas conversas do Chat. |
https://www.googleapis.com/auth/chat.messages.create
|
Escrever e enviar mensagens no Chat. |
https://www.googleapis.com/auth/chat.messages.reactions
|
Confira, adicione e exclua reações a mensagens no Chat. |
https://www.googleapis.com/auth/chat.messages.reactions.create
|
Adicione reações a uma mensagem no Chat. |
https://www.googleapis.com/auth/chat.messages.reactions.readonly
|
Confira as reações a uma mensagem no Chat. |
https://www.googleapis.com/auth/chat.users.readstate
|
Acessar e modificar o horário da última leitura de conversas do Chat. |
https://www.googleapis.com/auth/chat.users.readstate.readonly
|
Conferir o horário da última leitura das conversas do Chat. |
https://www.googleapis.com/auth/chat.admin.spaces.readonly
|
Acessar as conversas e os espaços do domínio do administrador no Chat. |
https://www.googleapis.com/auth/chat.admin.spaces
|
Acessar ou editar chats e espaços que pertencem ao domínio do administrador no Chat. |
https://www.googleapis.com/auth/chat.admin.memberships.readonly
|
Acessar os participantes e gerentes em conversas do domínio do administrador no Chat. |
https://www.googleapis.com/auth/chat.admin.memberships
|
Acessar, adicionar, atualizar e remover participantes e gerentes em conversas do domínio do administrador no Chat. |
https://www.googleapis.com/auth/chat.app.spaces
|
Crie conversas e espaços e confira ou atualize metadados (incluindo configurações do histórico e de acesso) no Chat. Exige aprovação do administrador. Este escopo só oferece suporte à autenticação de apps com contas de serviço. Não é possível autenticar com credenciais do usuário ou com a delegação em todo o domínio usando esse escopo. |
https://www.googleapis.com/auth/chat.app.spaces.create
|
Criar conversas e espaços no Chat. Exige aprovação do administrador. Este escopo só oferece suporte à autenticação de apps com contas de serviço. Não é possível autenticar com credenciais do usuário ou com a delegação em todo o domínio usando esse escopo. |
https://www.googleapis.com/auth/chat.app.memberships
|
Ver, adicionar, atualizar e remover participantes de conversas e espaços no Chat. Exige aprovação do administrador. Esse escopo só oferece suporte à autenticação de apps com contas de serviço. Não é possível autenticar com credenciais de usuário ou com a delegação em todo o domínio usando esse escopo. |
https://www.googleapis.com/auth/chat.customemojis
|
Confira, crie e exclua emojis personalizados no Chat. |
https://www.googleapis.com/auth/chat.customemojis.readonly
|
Confira emojis personalizados no Chat. |
https://www.googleapis.com/auth/chat.users.spacesettings
|
Acessar e atualizar as configurações do espaço do usuário do Chat.
Consulte as APIs de configurações de usuário do espaço: getSpaceNotificationSetting, updateSpaceNotificationSetting. |
Escopos restritos
Código do escopo | Descrição |
---|---|
https://www.googleapis.com/auth/chat.delete
|
Excluir conversas e espaços e remover o acesso aos arquivos associados no Chat. |
https://www.googleapis.com/auth/chat.import
|
Importe espaços, mensagens e assinaturas para o Chat. Para mais informações, consulte Autorizar apps do Chat a importar dados. |
https://www.googleapis.com/auth/chat.messages
|
Ver, escrever, enviar, atualizar e excluir mensagens, além de adicionar, visualizar e excluir reações a elas. |
https://www.googleapis.com/auth/chat.messages.readonly
|
Acessar mensagens e reações no Chat. |
https://www.googleapis.com/auth/chat.admin.delete
|
Excluir conversas e espaços do domínio do administrador e remover o acesso aos arquivos associados no Chat. |
https://www.googleapis.com/auth/chat.app.delete
|
Exclua conversas e espaços e remova o acesso aos arquivos associados no Chat. Exige a aprovação do administrador. Esse escopo só oferece suporte à autenticação de apps com contas de serviço. Não é possível autenticar com credenciais de usuário ou com a delegação em todo o domínio usando esse escopo. |
Os escopos nas tabelas anteriores indicam a sensibilidade, de acordo com as definições a seguir:
Não confidencial: esses escopos oferecem a menor esfera de acesso de autorização e exigem apenas a verificação básica do app. Para informações sobre esse requisito, consulte Etapas de preparação para a verificação.
Confidenciais: esses escopos oferecem ao app acesso aos dados do Google de um usuário específico depois de receber autorização do usuário. É necessário fazer outra verificação do app. Para saber mais sobre esse requisito, consulte Etapas para apps que solicitam escopos sensíveis.
Restrito: esses escopos oferecem amplo acesso aos dados de usuários do Google e exigem que você passe pelo processo de verificação de escopo restrito. Para informações sobre esse requisito, consulte Serviços de API do Google: política de dados do usuário e Requisitos adicionais para escopos específicos da API. Consulte também Etapas para apps que solicitam escopos restritos.
Caso seu app exija acesso a outras APIs do Google, também é possível adicionar esses escopos. Para mais informações sobre os escopos da API do Google, consulte Como usar o OAuth 2.0 para acessar as APIs do Google.
Para saber mais sobre os escopos das APIs do Google Workspace, consulte Configurar a tela de consentimento OAuth e escolher escopos.
Tipos de autenticação exigida
Há duas maneiras de autenticar e autorizar apps do Chat com a API Chat:
- Autenticação do usuário A
- autenticação do usuário permite que um app de chat acesse dados do usuário e realize ações em nome dele. Os escopos do OAuth especificam as ações e os dados autorizados. A menos que o app Chat tenha sido instalado pelo administrador ou tenha recebido delegação em todo o domínio, na primeira vez que o app Chat realizar uma ação em nome de um usuário, o usuário precisará autorizar o app Chat usando a tela de consentimento do OAuth.
- Autenticação de apps
A autenticação de apps permite que um app do Chat use credenciais da conta de serviço, acesse dados e conclua ações por conta própria. Como o app Chat usa as próprias credenciais para acessar e trabalhar com recursos, os usuários finais não precisam aprovar as chamadas de API do app Chat. Além disso, não é possível adicionar escopos de autorização OAuth que oferecem suporte à autorização de app à tela de consentimento do OAuth.
Dois tipos de escopos de autorização OAuth são compatíveis com a autenticação de apps:
https://www.googleapis.com/auth/chat.bot
: seu app do Chat pode chamar métodos da API Google Chat com suporte a esse escopo de autorização para criar, atualizar, receber, listar ou excluir recursos a que tem acesso, como mensagens em espaços a que os usuários finais adicionam seu app do Chat. Seu app de chat pode conceder esse escopo de autorização por conta própria, sem a necessidade de autorização do administrador ou do usuário final.https://www.googleapis.com/auth/chat.app.*
(Prévia para desenvolvedores): o uso desses escopos exige a aprovação única do administrador. Para receber a aprovação do administrador, prepare a conta de serviço do app Chat para receber a aprovação do administrador criando um cliente OAuth compatível com o Google Workspace Marketplace e configurando o app no SDK do Google Workspace Marketplace. Esses escopos permitem que o app do Chat chame métodos específicos da API Google Chat. Por exemplo,chat.app.spaces.create
permite que os apps criem espaços do Chat.
Se um método oferecer suporte à autenticação do usuário ou do app, a API Chat retornará resultados diferentes com base no tipo de autenticação usado:
- Com a autenticação de apps, os métodos retornam apenas os recursos que o app do Chat pode acessar.
- Com a autenticação do usuário, os métodos retornam apenas recursos que o usuário pode acessar.
Por exemplo, chamar o método spaces.list()
com a autorização do app retorna
a lista de espaços de que o app do Chat faz parte.
Chamar spaces.list()
com
a autorização do usuário retorna a lista de espaços em que o usuário é membro. Na
prática, é possível usar os dois tipos de
autenticação ao chamar a API Chat, dependendo do design
e dos recursos do app Chat.
Para chamadas assíncronas da API Chat
A tabela a seguir lista os métodos da API Chat e os escopos de autorização com suporte:
Método | Compatível com autenticação do usuário | Autenticação de apps compatível | Escopos de autorização compatíveis | |
---|---|---|---|---|
Espaços | ||||
Criar um espaço |
Com a Autenticação do usuário:
|
|||
Configurar um espaço | — |
Com a autenticação de usuários:
|
||
Acessar os detalhes de um espaço |
Com a autenticação de usuários:
|
|||
Listar espaços |
Com a Autenticação do usuário:
|
|||
Pesquisar espaços | — |
Com a Autenticação do usuário usando privilégios de administrador:
|
||
Atualizar um espaço |
Com a autenticação de usuários:
|
|||
Excluir um espaço |
Com a autenticação de usuários:
|
|||
Concluir o processo de importação de um espaço | — |
Com a autenticação do usuário:
|
||
Encontrar uma mensagem direta |
Com a autenticação de usuários:
|
|||
Membros | ||||
Criar uma associação |
Com a Autenticação do usuário:
|
|||
Receber um membro |
Com a Autenticação do usuário:
|
|||
Listar participantes |
Com a Autenticação do usuário:
|
|||
Excluir um membro |
Com a Autenticação do usuário:
|
|||
Atualizar um participante |
Com a autenticação do usuário:
|
|||
Mensagens | ||||
Criar uma mensagem |
Com a autenticação de usuários:
|
|||
Receber uma mensagem |
Com a autenticação de usuários:
|
|||
Listar mensagens | — |
Com a autenticação do usuário:
|
||
Atualizar uma mensagem |
Com a autenticação de usuários:
|
|||
Excluir uma mensagem |
Com a autenticação do usuário:
|
|||
Reações | ||||
Criar uma reação | — |
Com a Autenticação do usuário:
|
||
Listar reações | — |
Com a autenticação de usuários:
|
||
Excluir uma reação | — |
Com a Autenticação do usuário:
|
||
Emojis personalizados | ||||
Criar um emoji personalizado | — |
Com a Autenticação do usuário:
|
||
Excluir um emoji personalizado | — |
Com a autenticação do usuário:
|
||
Receber um emoji personalizado | — |
Com a Autenticação do usuário:
|
||
Listar emojis personalizados | — |
Com a Autenticação do usuário:
|
||
Mídia e anexos | ||||
Fazer upload de mídia como um anexo de arquivo | — |
Com a autenticação do usuário:
|
||
Fazer o download de mídia |
Com a autenticação de usuários:
|
|||
Receber um anexo de mensagem | — |
Com a Autenticação de apps:
|
||
Estados de leitura do usuário | ||||
Receber o estado de leitura do espaço de um usuário | — |
Com a Autenticação do usuário:
|
||
Atualizar o estado de leitura do espaço de um usuário | — |
Com a autenticação de usuários:
|
||
Ver o estado de leitura da linha de execução de um usuário | — |
Com a Autenticação do usuário:
|
||
Configurações do espaço do usuário | ||||
Acessar a configuração de notificação do espaço de um usuário | — |
Com a autenticação de usuários:
|
||
Atualizar a configuração de notificação de espaço de um usuário | — |
Com a autenticação de usuários:
|
||
Eventos espaciais | ||||
Receber eventos de espaço | — |
Com a Autenticação de usuário,
é necessário usar um escopo com base no
tipo de evento:
|
||
Listar eventos do espaço | — |
Com a autenticação do usuário,
você precisa usar um escopo para cada
tipo de evento incluído na solicitação:
|
Para eventos de interação com o app do Chat
Na tabela a seguir, listamos as formas comuns de interação dos usuários com os apps do Chat e se a autenticação é necessária ou compatível:
Cenário | Nenhuma autenticação necessária | Compatível com autenticação do usuário | Autenticação de apps compatível | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Receber mensagens de: |
|
|||||||||||||||
Responder a mensagens: |
|
|||||||||||||||
Enviar novas mensagens: |
|
Temas relacionados
- Para uma visão geral da autenticação e autorização no Google Workspace, consulte Saiba mais sobre autenticação e autorização.
- Para ter uma visão geral da autenticação e autorização no Google Cloud, consulte Visão geral da autenticação.
- Para saber mais sobre contas de serviço, consulte Contas de serviço.
- Para saber mais sobre como as APIs do Google usam o OAuth 2.0, consulte Como usar o OAuth 2.0 para acessar as APIs do Google.
- Configure a autenticação e a autorização com credenciais do usuário ou uma conta de serviço.