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 avançadas de autenticação e autorização para o Google Chat:
Configure um projeto do Google Cloud, ative a API Chat e configure seu app do Chat: durante o desenvolvimento, você cria um projeto do Google Cloud. No projeto do Google Cloud, você ativa a API Chat, configurar o app do Chat e 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 seu app é autenticado com uma conta de serviço, as credenciais são enviadas como parte do código do seu app. Se o app exigir a chamada da API Chat usando uma autenticação do usuário que ainda não foi concedida, ele solicita faça login.
Solicitar recursos: seu app solicita acesso com escopos especificados ao configurar a autenticação.
Pedir consentimento:se o app estiver sendo autenticado como usuário, o Google exibirá Uma tela de permissão OAuth para que o usuário possa decidir se quer conceder acesso ao app acesso aos dados solicitados. A autenticação com uma conta de serviço exigem o consentimento do usuário.
Enviar solicitação aprovada de recursos:se o usuário consentir com o escopos de autorização, o app agrupa as credenciais e os escopos 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: o token de acesso contém uma lista de escopos concedidos. Se a lista de escopos retornada for mais restritiva do que os solicitados, o app vai desativar todos os recursos limitados pelo token.
Acesso a recursos solicitados:seu app usa o token de acesso do Google para invocar a API Chat e acessar os recursos dela
Receba um token de atualização (opcional): se o app precisar acessar o além do ciclo de vida de um token de acesso único, ela pode receber 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 solicitará que o usuário para conceder novos escopos, resultando em uma nova solicitação para obter um token de acesso (etapas 3 a 6).
Quando os apps do 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 acessar uma lista das pessoas em um Espaço do Chat.
Os apps de chat não exigem autenticação para responder a uma interação do usuário, a menos que o app do Chat chame o API Chat ou outra API do Google durante o processamento de 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 Chat.
O diagrama a seguir mostra uma sequência de solicitação/resposta entre uma Usuário e app do Chat:
- O usuário envia uma mensagem para o app do Chat em Google Chat
- O Google Chat encaminha a mensagem para o app.
- O aplicativo 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 se repete para cada evento de interação no app Chat.
Mensagens assíncronas exigem autenticação
As mensagens assíncronas ocorrem quando um app do Chat faz ao API Chat, que requer autenticação e autorização.
Ao chamar a API Chat, os apps do Chat podem postar mensagens Google Chat ou concluir tarefas e acessar dados em nome de um usuário. Para por exemplo, após detectar uma interrupção do serviço, um app de chat pode chamar o API Chat para:
- Criar um espaço do Chat dedicado a investigar e corrigir o problema a interrupção do serviço.
- Adicionar participantes ao espaço do Chat.
- Poste uma mensagem no espaço do Chat para dar detalhes sobre a a interrupção do serviço.
O diagrama a seguir mostra uma sequência de mensagens assíncronas entre um app de chat e um espaço de chat:
- Um app do Chat cria uma mensagem chamando
da API Chat usando a
spaces.messages.create
método, e inclui credenciais de usuário na solicitação HTTP. - O Google Chat autentica o app com conta de serviço ou credenciais do usuário.
- O Google Chat renderiza a mensagem de um app para uma conversa especificada espaço.
Escopos da API Chat
Configurar a tela de permissão OAuth e escolher escopos para definir quais informações são exibidas aos usuários e revisores do app e registrar seu app para poder publicá-lo mais tarde.
Para definir o nível de acesso concedido ao app, é preciso identificar e declarar 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 do Chat acessem conversas e enviem mensagens. Este escopo só oferece suporte à autenticação de apps com contas de serviço. Você não consegue autenticar com credenciais de usuário 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 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
|
Ver, adicionar, atualizar e remover participantes em 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
|
Conferir 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
|
Confira o horário da última leitura das conversas do Chat. |
https://www.googleapis.com/auth/chat.admin.spaces.readonly
|
Acessar o chat 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
|
Veja 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
|
Criar conversas e espaços e conferir ou atualizar metadados (incluindo configurações do histórico e de acesso) 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 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
|
Crie novas conversas e espaços no Chat. Requer aprovação do administrador. Este escopo só oferece suporte à autenticação de apps com contas de serviço. Você não consegue autenticar com credenciais de usuário delegação em todo o domínio usando esse escopo. |
https://www.googleapis.com/auth/chat.app.memberships
|
Confira, adicione, atualize e remova participantes de conversas e espaços no Chat. Exige a aprovação do administrador. Este escopo só oferece suporte à autenticação de apps com contas de serviço. Você não consegue autenticar com credenciais de usuário 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. |
Escopos restritos
Código do escopo | Descrição |
---|---|
https://www.googleapis.com/auth/chat.delete
|
Excluir conversas e espaços e remover o acesso a arquivos associados no Chat. |
https://www.googleapis.com/auth/chat.import
|
Importar 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
|
Confira 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
|
Excluir conversas e espaços e remover o acesso aos arquivos associados no Chat. Exige aprovação do administrador. Esse escopo só oferece suporte à autenticação de apps com contas de serviço. Você não consegue autenticar com credenciais de usuário delegação em todo o domínio usando esse escopo. |
Os escopos nas tabelas anteriores indicam sua sensibilidade, de acordo com a definições a seguir:
Não sensível: esses escopos fornecem 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 para se preparar para a verificação.
Sensíveis: esses escopos fornecem ao app acesso a um dados do Google do usuário depois de receber a autorização dele. Ele exige você passe pela verificação adicional de apps. Para mais informações sobre requisito, consulte as Etapas para aplicativos que solicitam dados escopos.
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 da API do Google: dados do usuário Política e Outros requisitos para APIs específicas Escopos. Consulte também Etapas para apps que solicitam acesso escopos.
Caso seu app exija acesso a outras APIs do Google, adicione esses escopos . Para mais informações sobre os escopos da API do Google, consulte 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 permissão OAuth e escolher os escopos
Tipos de autenticação exigida
Os apps do Chat têm duas maneiras de autenticar e autorizar usando: a API Chat:
- Autenticação de usuários
- Autenticação de usuários permite que um app do Chat acesse dados do usuário e conclua ações em nome de um usuário. Os escopos do OAuth especificam as ações e os dados autorizados. A menos que o app do Chat fosse administrador instalado ou deu delegação em todo o domínio, na primeira vez que o app do Chat realizar uma ação em uma em nome do usuário, ele precisa autorizar o app do Chat usando a tela de consentimento do OAuth.
- Autenticação de apps
A autenticação de app permite que um app de chat use credenciais de conta de serviço e acesse dados e realize ações como se fosse ele mesmo. 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
: o app do Chat pode chamar métodos da API Google Chat que oferecem suporte a esse escopo de autorização para criar, atualizar, acessar, listar ou excluir recursos a que ele tem acesso, como mensagens em espaços a que os usuários finais adicionam o app do Chat. Seu O app do Chat pode conceder esse escopo de autorização por conta própria. nenhuma autorização de administrador ou usuário final é necessária.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 permitir que o app do Chat chame a API Google Chat específica métodos. 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 retorna resultados diferentes com base no tipo de autenticação usado:
- Com a autenticação de aplicativos, os métodos retornam apenas os recursos que o App Chat pode acessar.
- Com a autenticação do usuário, os métodos retornam apenas os recursos que o usuário podem 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 participa.
Ligando para spaces.list()
com
A autorização do usuário retorna a lista de espaços de que o usuário participa. Em
você pode usar os dois tipos de
autenticação ao chamar a API Chat, dependendo do design
e recursos do seu app do Chat.
Para chamadas assíncronas da API Chat
A tabela a seguir lista os métodos da API Chat e os métodos compatíveis escopos de autorização:
Método | Compatível com autenticação de usuários | Autenticação de apps compatível | Escopos de autorização compatíveis | |
---|---|---|---|---|
Espaços | ||||
Criar um espaço |
Com a autenticação de usuários:
|
|||
Configurar um espaço | — |
Com a Autenticação do usuário:
|
||
Acessar os detalhes de um espaço |
Com a autenticação de usuários:
|
|||
Listar espaços |
Com a autenticação de usuários:
|
|||
Espaços de pesquisa | — |
Com a Autenticação de 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 do usuário:
|
|||
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 um membro |
Com a autenticação de usuários:
|
|||
Acessar os detalhes de uma associação |
Com a Autenticação do usuário:
|
|||
Listar participantes |
Com a autenticação de usuários:
|
|||
Excluir um participante |
Com a autenticação de usuários:
|
|||
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 de usuários:
|
||
Atualizar uma mensagem |
Com a Autenticação do usuário:
|
|||
Excluir uma mensagem |
Com a autenticação de usuários:
|
|||
Reações | ||||
Criar uma reação | — |
Com a autenticação de usuários:
|
||
Listar reações | — |
Com a autenticação de usuários:
|
||
Excluir uma reação | — |
Com a autenticação de usuários:
|
||
Emojis personalizados | ||||
Criar um emoji personalizado | — |
Com a autenticação de usuários:
|
||
Excluir um emoji personalizado | — |
Com a Autenticação do usuário:
|
||
Receber um emoji personalizado | — |
Com a autenticação de usuários:
|
||
Listar emojis personalizados | — |
Com a autenticação de usuários:
|
||
Mídia e anexos | ||||
Fazer upload de mídia como um anexo de arquivo | — |
Com a autenticação de usuários:
|
||
Fazer o download de mídia |
Com a Autenticação do usuário:
|
|||
Receber um anexo de mensagem | — |
Com a autenticação de aplicativos:
|
||
Estados de leitura do usuário | ||||
Conferir 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 do usuário:
|
||
Ver o estado de leitura da linha de execução de um usuário | — |
Com a autenticação de usuários:
|
||
Eventos do espaço | ||||
Receber eventos espaciais | — |
Com a Autenticação do usuário,
use um escopo com base no
tipo de evento:
|
||
Lista de eventos do espaço | — |
Com a Autenticação de usuário,
é necessário usar um escopo para cada
tipo de evento incluído na solicitação:
|
Para eventos de interação com o app do Chat
A tabela a seguir lista maneiras comuns pelas quais os usuários interagem Apps de chat e se a autenticação é necessária ou compatível:
Cenário | Nenhuma autenticação necessária | Compatível com autenticação de usuários | Autenticação de apps compatível | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Receber mensagens de: |
|
|||||||||||||||
Responder a mensagens: |
|
|||||||||||||||
Enviar novas mensagens: |
|
Temas relacionados
- Para ter uma visão geral da autenticação e autorização no Google Workspace, ver 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 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.