Para apps do Google Chat criados em endpoints HTTP, esta seção explica como Verifique se as solicitações para o endpoint vêm do Chat.
Para enviar eventos de interação para o
endpoint, o Google faz solicitações ao seu serviço. Para verificar se a solicitação é
vindo do Google, o Chat inclui
token do portador
no cabeçalho Authorization
de cada solicitação HTTPS para seu endpoint. Por
exemplo:
POST
Host: yourappurl.com
Authorization: Bearer AbCdEf123456
Content-Type: application/json
User-Agent: Google-Dynamite
A string AbCdEf123456
no exemplo anterior é a autorização do portador.
com base no token correto anterior. Esse é um token criptográfico produzido pelo Google. Tipo do portador
token e o valor do atributo
audience
dependem do tipo de público de autenticação selecionado ao
configurar o app Chat.
Se você implementou seu app do Chat usando o Cloud Functions ou o Cloud Run, o Cloud IAM lida com a verificação de tokens automaticamente. Você basta adicionar a conta de serviço do Google Chat como um invocador autorizado. Se o app implementar o próprio servidor HTTP, você poderá verificar o token do portador usando uma biblioteca de cliente das APIs do Google de código aberto:
- Java: https://github.com/google/google-api-java-client
- Python: https://github.com/google/google-api-python-client
- Node.js: https://github.com/google/google-api-nodejs-client
- .NET: https://github.com/google/google-api-dotnet-client
Se o token não for verificado para o app do Chat, seu
deve responder à solicitação com um código de resposta HTTPS
401 (Unauthorized)
:
Autenticar solicitações usando o Cloud Functions ou o Cloud Run
Se a lógica da função for implementada usando o Cloud Functions ou o Cloud Run,
precisa selecionar App URL
no campo Authentication Audience do
App Chat
configuração de conexão e verifique se
o URL do app na configuração corresponde ao URL da função do Cloud ou
endpoint do Cloud Run.
Em seguida, você precisa autorizar a conta de serviço do Google Chat
chat@system.gserviceaccount.com
como invocador.
As etapas a seguir mostram como usar o Cloud Functions (1a geração):
Console
Após implantar a função no Google Cloud:
No console do Google Cloud, acesse a página Cloud Functions:
Na lista do Cloud Functions, clique na caixa de seleção ao lado do nome função. (Não clique na função em si.)
Clique em Permissões na parte superior da tela. O painel Permissões é aberto.
Clique em Adicionar principal.
No campo Novos participantes, insira
chat@system.gserviceaccount.com
.Selecione o papel Cloud Functions > Chamador do Cloud Functions do Menu suspenso Selecionar um papel.
Clique em Save.
gcloud
Use o comando gcloud functions add-iam-policy-binding
:
gcloud functions add-iam-policy-binding RECEIVING_FUNCTION \
--member='serviceAccount:chat@system.gserviceaccount.com' \
--role='roles/cloudfunctions.invoker'
Substitua RECEIVING_FUNCTION
pelo nome do seu
Função do app de chat.
As etapas a seguir mostram como usar os serviços do Cloud Functions (2a geração) ou do Cloud Run:
Console
Após implantar a função ou serviço no Google Cloud:
No console do Google Cloud, acesse a página do Cloud Run:
Na lista de serviços do Cloud Run, clique na caixa de seleção ao lado dos função. (Não clique na função em si.)
Clique em Permissões na parte superior da tela. O painel Permissões é aberto.
Clique em Adicionar principal.
No campo Novos participantes, insira
chat@system.gserviceaccount.com
.Selecione o papel Cloud Run > Invocador do Cloud Run pelo Menu suspenso Selecionar um papel.
Clique em Salvar.
gcloud
Use o comando gcloud functions add-invoker-policy-binding
:
gcloud functions add-invoker-policy-binding RECEIVING_FUNCTION \
--member='serviceAccount:chat@system.gserviceaccount.com'
Substitua RECEIVING_FUNCTION
pelo nome do seu
Função do app de chat.
Autenticar solicitações com um token de ID do URL do aplicativo
Se o campo "Authentication Audience" do app do Chat
configuração de conexão definida como App URL
,
o token de autorização do portador na solicitação é um OpenID Connect assinado pelo Google
(OIDC) Token de ID.
O campo email
é definido como chat@system.gserviceaccount.com
.
O campo audience
é definido como o URL que você configurou para enviar pelo Google Chat.
para seu app do Chat. Por exemplo, se o
que o endpoint configurado do seu app do Chat seja
https://example.com/app/
, o campo audience
no token de ID será
https://example.com/app/
.
Os exemplos a seguir mostram como verificar se o token do portador foi emitido pela Google Chat e direcionados ao seu app usando a biblioteca de cliente OAuth do Google.
Java
Python
Node.js
Autenticar solicitações com um JWT de número de projeto
Se o campo "Authentication Audience" do app do Chat
a configuração de conexão estiver definida como Project
Number
, o token de autorização do portador na solicitação é um token autoassinado
JSON Web Token (JWT),
emitido e assinado por chat@system.gserviceaccount.com
.
O campo audience
está definido como o número do projeto do Google Cloud que você usou
para criar seu app do Chat. Por exemplo, se sua
O número do projeto na nuvem do app do Chat é
1234567890
, o campo audience
no JWT será 1234567890
.
Os exemplos a seguir mostram como verificar se o token do portador foi emitido pela Google Chat e direcionado ao seu projeto com a biblioteca de cliente OAuth do Google.
Java
Python
Node.js
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 Chat, ver Visão geral da autenticação.
- Configure a autenticação e a autorização com o credenciais do usuário ou um conta de serviço.