Autenticazione e autorizzazione sono meccanismi utilizzati rispettivamente per verificare l'identità e l'accesso alle risorse. Questo documento illustra il funzionamento dell'autenticazione e dell'autorizzazione per le app e le richieste API di Chat.
Panoramica della procedura
Il seguente diagramma mostra i passaggi generali dell'autenticazione e dell'autorizzazione per Google Chat:

Configura un progetto Google Cloud, abilita l'API Chat e configura la tua app di chat:durante lo sviluppo, crei un progetto Google Cloud. Nel progetto Google Cloud, devi attivare l'API Chat, configurare l'app di chat e configurare l'autenticazione.
API Chat Chat:quando l'app chiama l'API REST di Chat (che in genere si verifica dopo che un utente in Google Chat richiama l'app inviandoti un messaggio, facendo clic su un pulsante su una scheda o inviando un comando slash) invia le credenziali di autenticazione all'API Chat. Se la tua app si autentica con un account di servizio, le credenziali vengono inviate come parte del codice dell'app. Se la tua app viene autenticata come utente, quest'ultimo potrebbe ricevere una richiesta di accesso.
Richiedi risorse: la tua app richiede l'accesso con gli ambiti specificati da te durante la configurazione dell'autenticazione.
Chiedere il consenso:se la tua app viene autenticata come utente, Google mostra una schermata per il consenso OAuth che può decidere di concedere alla tua app l'accesso ai dati richiesti. L'autenticazione con un account di servizio non richiede il consenso dell'utente.
Invia una richiesta di risorse approvata: se l'utente dà il consenso agli ambiti di autorizzazione, la tua app raggruppa le credenziali e gli ambiti approvati dall'utente in una richiesta. La richiesta viene inviata al server di autorizzazione di Google per ottenere un token di accesso.
Google restituisce un token di accesso: il token di accesso contiene un elenco di ambiti concessi. Se l'elenco di ambiti restituito è più limitato degli ambiti richiesti, l'app disattiva tutte le funzionalità limitate dal token.
Accesso alle risorse richieste:la tua app utilizza il token di accesso di Google per richiamare l'API Chat e accedere alle risorse dell'API Chat.
(Facoltativo) Ricevi un token di aggiornamento: se la tua app deve accedere all'API Google Chat per tutta la durata di un singolo token di accesso, può ricevere un token di aggiornamento.
Richiedi più risorse: se l'app richiede un accesso maggiore, chiede all'utente di concedere nuovi ambiti, il che comporta una nuova richiesta per ottenere un token di accesso (passaggi 3-6).
Quando le app di chat richiedono l'autenticazione
Le app di chat possono inviare messaggi a Google Chat in modo sincrono o asincrono. Possono anche completare attività, come creare uno spazio di Chat, per conto di un utente.
I messaggi sincroni non richiedono l'autenticazione, a meno che l'app Chat non chiami l'API REST di Chat o un'altra API di Google durante l'elaborazione di una risposta.
Per inviare messaggi asincroni o lavorare per conto di un utente, le app di chat inviano richieste RESTful all'API REST di Chat, che richiede autenticazione e autorizzazione.
I messaggi sincroni non richiedono l'autenticazione
I messaggi sincroni sono risposte agli eventi di Chat. Le app di Google Chat possono ricevere e rispondere agli eventi dopo essere state configurate e pubblicate nella pagina di configurazione dell'app di chat e non richiedono autenticazione o autorizzazione.
Esempi di eventi di Chat sincroni includono:
- Un utente invia un messaggio a un'app di chat in Google Chat.
- Un utente menziona un'app di chat.
- Un utente richiama uno dei comandi tramite barra dell'app Chat.
Il seguente diagramma mostra una sequenza di richiesta-risposta sincrona di base tra un utente e un'app di Chat:

- L'utente invia un messaggio all'app Chat in Google Chat.
- Google Chat inoltra il messaggio all'app.
- L'app riceve il messaggio, lo elabora e restituisce una risposta a Google Chat.
- Google Chat visualizza la risposta per l'utente o in uno spazio.
Questa sequenza si ripete per ogni evento di Chat.
I messaggi asincroni richiedono l'autenticazione
I messaggi asincroni si verificano quando un'app di chat invia una richiesta all'API REST di Chat, che richiede autenticazione e autorizzazione.
Chiamando l'API REST, le app di Chat possono pubblicare messaggi in Google Chat o completare attività e accedere ai dati per conto di un utente. Ad esempio, dopo aver rilevato un'interruzione del server, un'app di chat può chiamare l'API Chat per:
- Creare uno spazio di Chat dedicato alle indagini e alla correzione dell'interruzione.
- Aggiungi persone allo spazio di Chat.
- Pubblica un messaggio nello spazio di Chat per fornire dettagli sull'interruzione.
Il seguente diagramma mostra una sequenza di messaggi asincroni di base tra un'app di Chat e uno spazio di Chat:

- Un'app di chat crea un messaggio chiamando l'API REST di Chat con il metodo spaces.messages.create e include le credenziali dell'account di servizio nella richiesta HTTP.
- Google Chat autentica l'app Chat con account di servizio o credenziali utente.
- Google Chat visualizza il messaggio dell'app in uno spazio di Chat specificato.
Ambiti API Chat
Per definire il livello di accesso concesso all'app, devi identificare e dichiarare gli ambiti di autorizzazione. Un ambito di autorizzazione è una stringa URI OAuth 2.0 contenente il nome dell'app Google Workspace, il tipo di dati a cui accede e il livello di accesso.
Google Chat supporta i seguenti ambiti:
Ambito API di Google Chat | Descrizione |
---|---|
https://www.googleapis.com/auth/chat.bot
|
Consente alle app di chat di visualizzare le chat e di inviare messaggi. |
https://www.googleapis.com/auth/chat.delete
|
Eliminare conversazioni e spazi e rimuovere l'accesso ai file associati in Google Chat. |
Abbonamenti | |
https://www.googleapis.com/auth/chat.memberships
|
Visualizzare, aggiungere e rimuovere membri dalle conversazioni in Google Chat. |
https://www.googleapis.com/auth/chat.memberships.app
|
Consente all'app di chat di aggiungere e rimuoversi (ma non altre app) da e verso le conversazioni in Google Chat. |
Messaggi | |
https://www.googleapis.com/auth/chat.messages
|
Creare, ricevere, aggiornare, eliminare ed elencare i messaggi in Google Chat. |
https://www.googleapis.com/auth/chat.messages.reactions
|
Visualizzare, aggiungere ed eliminare reazioni ai messaggi in Google Chat. |
https://www.googleapis.com/auth/chat.messages.reactions.create
|
Aggiungere reazioni ai messaggi in Google Chat. |
https://www.googleapis.com/auth/chat.messages.reactions.readonly
|
Visualizzare le reazioni ai messaggi in Google Chat. |
https://www.googleapis.com/auth/chat.messages.readonly
|
Ricevere ed elencare i messaggi in Google Chat. |
Spazi | |
https://www.googleapis.com/auth/chat.spaces
|
Creare conversazioni e spazi, nonché visualizzare o aggiornare i metadati (incluse le impostazioni della cronologia) in Google Chat. |
https://www.googleapis.com/auth/chat.spaces.create
|
Creare conversazioni in Google Chat. |
https://www.googleapis.com/auth/chat.spaces.readonly
|
Visualizzare la chat e gli spazi in Google Chat. |
Per saperne di più sugli ambiti per le API Google Workspace, vedi Come scegliere gli ambiti per l'app.
Per un elenco degli ambiti disponibili, vedi Ambiti OAuth 2.0 per le API di Google.
Tipi di autenticazione richiesti
Esistono due modi per autenticare e autorizzare le app di chat mediante l'API Chat: le credenziali utente o gli account di servizio.
Con l'autorizzazione delle credenziali utente, un'app di Chat può accedere a dati utente specifici e completare determinate azioni per conto di un utente. I dati e le azioni autorizzati vengono specificati dagli ambiti.
Con l'autorizzazione dell'account di servizio, un'app di Chat accede all'API come app utilizzando le credenziali dell'account di servizio.
Se sei un amministratore di dominio, puoi concedere la delega dell'autorità a livello di dominio per autorizzare l'account di servizio di un'applicazione ad accedere ai dati degli utenti senza che sia necessario il loro consenso. Dopo aver configurato la delega a livello di dominio, puoi effettuare chiamate API utilizzando il tuo account di servizio per impersonare un account utente. Anche se un account di servizio viene utilizzato per l'autenticazione, la delega a livello di dominio impersona un utente e pertanto viene considerata autenticazione utente. Puoi utilizzare la delega a livello di dominio per tutte le funzionalità che richiedono l'autenticazione.
Nella tabella seguente sono elencati gli scenari comuni riscontrati dalle app di Chat indipendentemente dal fatto che richiedano l'autenticazione e, in tal caso, quale tipo:
Scenario | Nessuna autenticazione richiesta | Autenticazione utente supportata | Account di servizio supportato | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Ricevi messaggi da: |
|
|||||||||||||||
Rispondere ai messaggi: |
|
|||||||||||||||
Invia nuovi messaggi: |
|
|||||||||||||||
Creare uno spazio di Chat: |
|
|||||||||||||||
Aggiungere utenti e app a uno spazio di Chat: |
|
Risorse correlate
- Per una panoramica sull'autenticazione e sull'autorizzazione in Google Workspace, vedi Informazioni su autenticazione e autorizzazione in Google Workspace for Developers.
- Per una panoramica dell'autenticazione e dell'autorizzazione in Google Cloud, consulta l'articolo Panoramica dell'autenticazione nella documentazione di Google Cloud.
- Per scoprire di più sugli account di servizio, consulta Account di servizio nella documentazione di Google Cloud Identity and Access Management (IAM).
- Per saperne di più su come le API di Google sfruttano OAuth 2.0, consulta Utilizzare OAuth 2.0 per accedere alle API di Google nella documentazione di Google Identity.
Passaggio successivo
Configura l'autenticazione e l'autorizzazione con le credenziali utente o un account di servizio.