Per le app Google Chat basate su endpoint HTTP, questa sezione spiega come e verificare che le richieste al tuo endpoint provengano da Chat.
Per inviare eventi di interazione all'app Chat
endpoint, Google effettua richieste al tuo servizio. Per verificare che la richiesta provenga da Google, Chat include un token bearer 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 del portatore. Si tratta di un token crittografico prodotto da Google. Il tipo di token di accesso e il valore del campo audience
dipendono dal tipo di pubblico di autenticazione selezionato durante la configurazione dell'app Chat.
Se hai implementato l'app di 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 invocatore autorizzato. Se la tua app implementa il proprio server HTTP, puoi verificare il token di connessione Utilizzando una libreria client 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 Chat,
deve rispondere alla richiesta con un codice di risposta HTTPS
401 (Unauthorized)
.
Autentica le richieste utilizzando Cloud Functions o Cloud Run
Se la logica della funzione viene implementata utilizzando Cloud Functions o Cloud Run, è necessario selezionare URL endpoint HTTP nel campo Authentication Audience di l'app Chat l'impostazione di connessione e assicurati che L'URL dell'endpoint HTTP nella configurazione corrisponde all'URL della funzione Cloud Functions oppure l'endpoint Cloud Run.
Poi, devi autorizzare l'account di servizio Google Chatchat@system.gserviceaccount.com
come invocatore.
I passaggi seguenti mostrano come utilizzare Cloud Functions (1a gen.):
Console
Dopo aver eseguito il deployment della funzione in 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 in sé.
Fai clic su Autorizzazioni nella parte superiore dello schermo. Riquadro Autorizzazioni si apre.
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
Usa 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 del tuo
Funzione dell'app di chat.
I passaggi seguenti mostrano come utilizzare i servizi Cloud Functions (2a gen.) o Cloud Run:
Console
Dopo aver eseguito il deployment della funzione o del servizio in Google Cloud:
Nella console Google Cloud, vai alla pagina Cloud Run:
Nell'elenco dei servizi Cloud Run, fai clic sulla casella di controllo accanto personalizzata. Non fare clic sulla funzione in sé.
Fai clic su Autorizzazioni nella parte superiore dello schermo. Riquadro Autorizzazioni si apre.
Fai clic su Aggiungi entità.
Nel campo Nuove entità, inserisci
chat@system.gserviceaccount.com
.Seleziona il ruolo Cloud Run > Invoker di Cloud Run 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 della tua app Chat.
Autentica le richieste HTTP con un token ID
Se il campo Authentication Audience dell'impostazione di connessione dell'app Chat è impostato su URL endpoint HTTP, il token di autorizzazione con il ruolo di portatore nella richiesta è un token ID OpenID Connect (OIDC) firmato da Google.
Il campo email
è impostato su chat@system.gserviceaccount.com
.
Il campo Authentication Audience è impostato sull'URL configurato
Google Chat per inviare richieste alla tua app Chat.
Ad esempio, se l'endpoint configurato del tuo
l'app di chat è https://example.com/app/
, quindi
Il campo Authentication Audience del token ID è https://example.com/app/
.
Gli esempi riportati di seguito mostrano come verificare che il token di connessione sia stato emesso da Google Chat e che hanno come target la tua app utilizzando la libreria client OAuth di Google.
Java
Python
Node.js
Autentica le richieste con un JWT con numero di progetto
Se il campo Pubblico autenticazione dell'app Chat
l'impostazione di connessione è impostata su Project
Number
, il token di autorizzazione di connessione nella richiesta è un token autofirmato
JSON Web Token (JWT),
rilasciato e firmato da chat@system.gserviceaccount.com
.
Il campo audience
è impostato sul numero di progetto Google Cloud utilizzato per creare l'app Chat. Ad esempio, se il numero di progetto Cloud dell'app Chat è 1234567890
, il campo audience
nel JWT è 1234567890
.
Gli esempi riportati di seguito mostrano come verificare che il token di accesso sia stato emesso da Google Chat e abbia come target il tuo progetto utilizzando la libreria client OAuth di Google.
Java
Python
Node.js
Argomenti correlati
- Per una panoramica dell'autenticazione e dell'autorizzazione in Google Workspace, vedi Scopri di più su autenticazione e autorizzazione.
- Per una panoramica dell'autenticazione e dell'autorizzazione in Chat, consulta la Panoramica dell'autenticazione.
- Configura l'autenticazione e l'autorizzazione con credenziali utente o un account di servizio.