Per le app Google Chat create su endpoint HTTP, questa sezione spiega come verificare che le richieste al tuo endpoint provengano da Chat.
Per inviare eventi di interazione all'endpoint
dell'app Chat, Google effettua richieste al tuo servizio. Per verificare che la richiesta provenga da Google, Chat include un token di autenticazione nell'intestazione Authorization
di ogni richiesta HTTPS al tuo endpoint. Ad
esempio:
POST
Host: yourappurl.com
Authorization: Bearer AbCdEf123456
Content-Type: application/json
User-Agent: Google-Dynamite
La stringa AbCdEf123456
nell'esempio precedente è il token di autorizzazione
bearer. Si tratta di un token crittografico prodotto da Google. Il tipo di token di autenticazione e il valore del campo audience
dipendono dal tipo di pubblico di autenticazione selezionato durante la configurazione dell'app Chat.
Se hai implementato la tua app Chat utilizzando Cloud Functions o Cloud Run, Cloud IAM gestisce automaticamente la verifica dei token. Devi solo aggiungere l'account di servizio Google Chat come chiamante autorizzato. Se la tua app implementa un proprio server HTTP, puoi verificare il token bearer utilizzando una libreria client delle API di Google open source:
- 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 il token non viene verificato per l'app di chat, il tuo
servizio deve rispondere alla richiesta con un codice di risposta HTTPS
401 (Unauthorized)
.
Autenticare le richieste utilizzando Cloud Functions o Cloud Run
Se la logica della funzione è implementata utilizzando Cloud Functions o Cloud Run, devi selezionare URL endpoint HTTP nel campo Pubblico di autenticazione dell'impostazione di connessione dell'app Chat e assicurarti che l'URL endpoint HTTP nella configurazione corrisponda all'URL dell'endpoint Cloud Functions o Cloud Run.
Dopodiché, devi autorizzare il service account Google Chat
chat@system.gserviceaccount.com
come chiamante.
I seguenti passaggi mostrano come utilizzare Cloud Functions (1ª gen.):
Console
Dopo aver eseguito il deployment della funzione su Google Cloud:
Nella console Google Cloud, vai alla pagina Cloud Functions:
Nell'elenco Cloud Functions, fai clic sulla casella di controllo accanto alla funzione di ricezione. Non fare clic sulla funzione stessa.
Fai clic su Autorizzazioni nella parte superiore dello schermo. Si apre il riquadro Autorizzazioni.
Fai clic su Aggiungi entità.
Nel campo Nuove entità, inserisci
chat@system.gserviceaccount.com
.Seleziona il ruolo Cloud Functions > Cloud Functions Invoker dal menu a discesa Seleziona un ruolo.
Fai clic su Salva.
gcloud
Utilizza il 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'
Sostituisci RECEIVING_FUNCTION
con il nome della funzione
dell'app di chat.
I passaggi seguenti mostrano come utilizzare i servizi Cloud Functions (2nd gen) o Cloud Run:
Console
Dopo aver eseguito il deployment della funzione o del servizio su Google Cloud:
Nella console Google Cloud, vai alla pagina Cloud Run:
Nell'elenco dei servizi Cloud Run, fai clic sulla casella di controllo accanto alla funzione di ricezione. Non fare clic sulla funzione stessa.
Fai clic su Autorizzazioni nella parte superiore dello schermo. Si apre il riquadro Autorizzazioni.
Fai clic su Aggiungi entità.
Nel campo Nuove entità, inserisci
chat@system.gserviceaccount.com
.Seleziona il ruolo Cloud Run > Cloud Run Invoker dal menu a discesa Seleziona un ruolo.
Fai clic su Salva.
gcloud
Utilizza il comando gcloud functions add-invoker-policy-binding
:
gcloud functions add-invoker-policy-binding RECEIVING_FUNCTION \
--member='serviceAccount:chat@system.gserviceaccount.com'
Sostituisci RECEIVING_FUNCTION
con il nome della funzione
dell'app di chat.
Autenticare le richieste HTTP con un token ID
Se il campo Destinatario autenticazione dell'impostazione di connessione dell'app Chat è impostato su URL endpoint HTTP, il token di autorizzazione bearer nella richiesta è un token ID OpenID Connect (OIDC) firmato da Google.
Il campo email
è impostato su chat@system.gserviceaccount.com
. Il campo
Pubblico di autenticazione è impostato sull'URL che hai configurato in Google Chat
per inviare richieste alla tua app Chat. Ad esempio, se l'endpoint
configurato della tua app Chat è
https://example.com/app/
, il campo Pubblico di autenticazione nel token ID
èhttps://example.com/app/
.
Questo è il metodo di autenticazione consigliato se l'endpoint HTTP non è ospitato su un servizio che supporta l'autenticazione basata su IAM (come Cloud Functions o Cloud Run). Se utilizzi questo metodo, il tuo servizio HTTP ha bisogno di informazioni sull'URL dell'endpoint in cui è in esecuzione, ma non del numero di progetto Cloud.
I seguenti esempi mostrano come verificare che il token di autenticazione sia stato emesso da Google Chat e sia destinato alla tua app utilizzando la libreria client Google OAuth.
Java
Python
Node.js
Autenticare le richieste con un JWT del numero di progetto
Se il campo Authentication Audience (Pubblico autenticazione) dell'impostazione di connessione dell'app Chat è impostato su Project
Number
, il token di autorizzazione bearer nella richiesta è un token web JSON (JWT) autofirmato, emesso e firmato da chat@system.gserviceaccount.com
.
Il campo audience
è impostato sul numero di progetto Google Cloud che hai utilizzato per creare l'app Chat. Ad esempio, se il numero di progetto Cloud dell'app Chat è 1234567890
, il campo audience
nel JWT è 1234567890
.
Questo metodo di autenticazione è consigliato solo se preferisci utilizzare il
numero di progetto Cloud per verificare le richieste anziché l'URL
dell'endpoint HTTP. Ad esempio, se vuoi modificare l'URL dell'endpoint nel tempo mantenendo lo stesso numero di progetto Cloud o se vuoi utilizzare lo stesso endpoint per più numeri di progetto Cloud e vuoi confrontare il campo audience
con un elenco di numeri di progetto Cloud.
Gli esempi seguenti mostrano come verificare che il token bearer sia stato emesso da Google Chat e indirizzato al tuo progetto utilizzando la libreria client Google OAuth.
Java
Python
Node.js
Argomenti correlati
- Per una panoramica dell'autenticazione e dell'autorizzazione in Google Workspace, vedi Informazioni su autenticazione e autorizzazione.
- Per una panoramica dell'autenticazione e dell'autorizzazione in Chat, vedi Panoramica dell'autenticazione.
- Configura l'autenticazione e l'autorizzazione con credenziali utente o un service account.