L'autenticazione e l'autorizzazione sono meccanismi utilizzati per verificare rispettivamente l'identità e l'accesso alle risorse. Questo documento descrive come funzionano l'autenticazione e l'autorizzazione per le app di Chat e le richieste API di Chat.
Panoramica sulla procedura
Il seguente diagramma mostra i passaggi di alto livello di autenticazione e autorizzazione per Google Chat:
Configura un progetto Google Cloud, attiva l'API Chat e configura la tua app di Chat: durante lo sviluppo, crei un progetto Google Cloud. Nel progetto Google Cloud, attivi l'API Chat, configuri l'app di Chat e imposti l'autenticazione. Per saperne di più, consulta Sviluppa su Google Workspace e Crea un'app di Chat.
Chiama l'API Chat:quando l'app chiama l'API Chat, invia le credenziali di autenticazione all'API Chat. Se la tua app esegue l'autenticazione con un service account, le credenziali vengono inviate come parte del codice dell'app. Se la tua app richiede di chiamare l'API Chat utilizzando l'autenticazione di un utente che non è stata ancora concessa, viene chiesto all'utente di accedere.
Richiesta di risorse: la tua app richiede l'accesso con gli ambiti che specifichi durante la configurazione dell'autenticazione.
Richiesta di consenso:se l'app esegue l'autenticazione come utente, Google mostra una schermata per il consenso OAuth in modo che l'utente possa decidere se concedere all'app l'accesso ai dati richiesti. L'autenticazione con un service account non richiede il consenso dell'utente.
Invia la richiesta approvata per le risorse:se l'utente acconsente 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ù restrittivo degli ambiti richiesti, l'app disattiva tutte le funzionalità limitate dal token.
Accedi 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.
Ottieni un token di aggiornamento (facoltativo): se la tua app deve accedere all'API Google Chat oltre la durata di un singolo token di accesso, può ottenere un token di aggiornamento. Per saperne di più, consulta Utilizza OAuth 2.0 per accedere alle API di Google.
Richiedi più risorse:se la tua app ha bisogno di un accesso più ampio, chiede all'utente di concedere nuovi ambiti, il che genera 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 in risposta a un'interazione dell'utente o in modo asincrono. Possono anche completare attività per conto di un utente, ad esempio creare uno spazio di Chat o recuperare un elenco di persone in uno spazio di Chat.
Le app di Chat non richiedono l'autenticazione per rispondere a un'interazione dell'utente, a meno che non chiamino l'API Chat o un'altra API di Google durante l'elaborazione di una risposta.
Per inviare messaggi asincroni o eseguire attività per conto di un utente, le app di Chat inviano richieste RESTful all'API Chat, che richiedono autenticazione e autorizzazione.
Le risposte alle interazioni degli utenti non richiedono l'autenticazione
Le app Google Chat non devono autenticarsi come utente o app di Chat per ricevere e rispondere in modo sincrono alle interazioni degli utenti.
Le app Google Chat ricevono oggetti evento ogni volta che un utente interagisce con un'app Chat o la richiama, tra cui:
- Un utente invia un messaggio a un'app di Chat.
- Un utente @menziona un'app di Chat.
- Un utente richiama uno dei comandi dell'app Chat.
Il seguente diagramma mostra una sequenza di richiesta-risposta tra un utente di Chat e un'app di Chat:
- L'utente invia un messaggio all'app di 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 mostra la risposta all'utente o in uno spazio.
Questa sequenza si ripete per ogni interazione dell'utente con l'app di Chat.
I messaggi asincroni richiedono l'autenticazione
I messaggi asincroni si verificano quando un'app di Chat effettua una richiesta all'API Chat, che richiede l'autenticazione e l'autorizzazione.
Chiamando l'API Chat, le app di Chat possono pubblicare messaggi su 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:
- Crea uno spazio di Chat dedicato all'analisi e alla risoluzione 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 tra un'app di Chat e uno spazio di Chat:
- Un'app Chat crea un messaggio chiamando l'API Chat utilizzando il metodo
spaces.messages.createe include le credenziali utente nella richiesta HTTP. - Google Chat autentica l'app di Chat con le credenziali dell'utente o del service account.
- Google Chat esegue il rendering del messaggio dell'app in uno spazio di Chat specificato.
Ambiti API Chat
Configura la schermata per il consenso OAuth e scegli gli ambiti per definire quali informazioni vengono mostrate agli utenti e ai revisori delle app e registra la tua app in modo da poterla pubblicare in un secondo momento.
Per definire il livello di accesso concesso alla tua app, devi identificare e dichiarare gli ambiti di autorizzazione. Un ambito di autorizzazione è una stringa URI OAuth 2.0 che contiene il nome dell'app Google Workspace, il tipo di dati a cui accede e il livello di accesso.
Ambiti non sensibili
| Codice ambito | Descrizione |
|---|---|
https://www.googleapis.com/auth/chat.bot
|
Consente alle app di Chat di visualizzare le chat e inviare messaggi. Questo ambito supporta solo l'autenticazione delle app con i service account. Non puoi eseguire l'autenticazione con le credenziali utente o con la delega a livello di dominio utilizzando questo ambito. |
Ambiti sensibili
| Codice ambito | Descrizione |
|---|---|
https://www.googleapis.com/auth/chat.spaces
|
Creare conversazioni e spazi e visualizzare o modificare metadati (incluse le impostazioni della cronologia e di accesso) in Chat. |
https://www.googleapis.com/auth/chat.spaces.create
|
Creare nuove conversazioni in Chat. |
https://www.googleapis.com/auth/chat.spaces.readonly
|
Visualizzare la chat e gli spazi in Chat. |
https://www.googleapis.com/auth/chat.memberships
|
Visualizzare, aggiungere, aggiornare e rimuovere membri dalle conversazioni in Chat. |
https://www.googleapis.com/auth/chat.memberships.app
|
Aggiungersi e rimuoversi dalle conversazioni in Google Chat. |
https://www.googleapis.com/auth/chat.memberships.readonly
|
Visualizzare i membri delle conversazioni di Chat. |
https://www.googleapis.com/auth/chat.messages.create
|
Scrivere e inviare messaggi in Chat. |
https://www.googleapis.com/auth/chat.messages.reactions
|
Visualizzare, aggiungere ed eliminare reazioni ai messaggi in Chat. |
https://www.googleapis.com/auth/chat.messages.reactions.create
|
Aggiungi reazioni a un messaggio in Chat. |
https://www.googleapis.com/auth/chat.messages.reactions.readonly
|
Visualizzare le reazioni a un messaggio in Chat. |
https://www.googleapis.com/auth/chat.users.readstate
|
Visualizzare e modificare l'ora dell'ultima lettura per le conversazioni di Chat. |
https://www.googleapis.com/auth/chat.users.readstate.readonly
|
Visualizzare l'ora dell'ultima lettura delle conversazioni di Chat. |
https://www.googleapis.com/auth/chat.admin.spaces.readonly
|
Visualizzare la chat e gli spazi di proprietà del dominio dell'amministratore in Chat. |
https://www.googleapis.com/auth/chat.admin.spaces
|
Visualizzare o modificare le chat e gli spazi di proprietà del dominio dell'amministratore in Chat. |
https://www.googleapis.com/auth/chat.admin.memberships.readonly
|
Visualizzare membri e gestori nelle conversazioni di proprietà del dominio dell'amministratore in Chat. |
https://www.googleapis.com/auth/chat.admin.memberships
|
Visualizzare, aggiungere, aggiornare e rimuovere membri e gestori nelle conversazioni di proprietà del dominio dell'amministratore in Chat. |
https://www.googleapis.com/auth/chat.app.spaces
|
Creare conversazioni e spazi e visualizzare o aggiornare metadati (incluse le impostazioni della cronologia e le impostazioni di accesso) in Chat come app di Chat. Richiede l'approvazione dell'amministratore. Questo ambito supporta solo l'autenticazione delle app con i service account. Non puoi eseguire l'autenticazione con le credenziali utente o con la delega a livello di dominio utilizzando questo ambito. |
https://www.googleapis.com/auth/chat.app.spaces.readonly
|
Visualizzare i metadati (incluse le impostazioni della cronologia) in Chat come app di Chat. Richiede l'approvazione dell'amministratore. Questo ambito supporta solo l'autenticazione delle app con i service account. Non puoi eseguire l'autenticazione con le credenziali utente o con la delega a livello di dominio utilizzando questo ambito. |
https://www.googleapis.com/auth/chat.app.spaces.create
|
Creare nuove conversazioni e nuovi spazi in Chat come app di Chat. Richiede l'approvazione dell'amministratore. Questo ambito supporta solo l'autenticazione delle app con i service account. Non puoi eseguire l'autenticazione con le credenziali utente o con la delega a livello di dominio utilizzando questo ambito. |
https://www.googleapis.com/auth/chat.app.memberships
|
Visualizzare, aggiungere, aggiornare e rimuovere membri dalle conversazioni e dagli spazi in Chat come app di Chat. Richiede l'approvazione dell'amministratore. Questo ambito supporta solo l'autenticazione delle app con i service account. Non puoi eseguire l'autenticazione con le credenziali utente o con la delega a livello di dominio utilizzando questo ambito. |
https://www.googleapis.com/auth/chat.app.memberships.readonly
|
Visualizzare i membri delle conversazioni e degli spazi in Chat come app di Chat. Richiede l'approvazione dell'amministratore. Questo ambito supporta solo l'autenticazione delle app con i service account. Non puoi eseguire l'autenticazione con le credenziali utente o con la delega a livello di dominio utilizzando questo ambito. |
https://www.googleapis.com/auth/chat.customemojis
|
Visualizzare, creare ed eliminare emoji personalizzate in Chat. |
https://www.googleapis.com/auth/chat.customemojis.readonly
|
Visualizzare emoji personalizzate in Chat. |
https://www.googleapis.com/auth/chat.users.spacesettings
|
Visualizzare e aggiornare le impostazioni dello spazio utente di Chat. |
https://www.googleapis.com/auth/chat.users.sections
|
Visualizzare, creare, aggiornare ed eliminare le sezioni in Chat; spostare ed elencare gli elementi delle sezioni in Chat. |
https://www.googleapis.com/auth/chat.users.sections.readonly
|
Visualizzare le sezioni e i relativi elementi in Chat. |
Ambiti con restrizioni
| Codice ambito | Descrizione |
|---|---|
https://www.googleapis.com/auth/chat.delete
|
Eliminare conversazioni e spazi e rimuovere l'accesso ai file associati in Chat. |
https://www.googleapis.com/auth/chat.import
|
Importare spazi, messaggi e abbonamenti in Chat. Per maggiori informazioni, vedi Autorizza le app di Chat a importare dati. |
https://www.googleapis.com/auth/chat.messages
|
Visualizzare, scrivere, inviare, aggiornare ed eliminare messaggi, nonché aggiungere, visualizzare ed eliminare reazioni ai messaggi |
https://www.googleapis.com/auth/chat.messages.readonly
|
Visualizzare messaggi e reazioni in Chat. |
https://www.googleapis.com/auth/chat.app.messages.readonly
|
Visualizzare messaggi e reazioni in Chat come app di Chat. Richiede l'approvazione dell'amministratore. Questo ambito supporta solo l'autenticazione delle app con i service account. Non puoi eseguire l'autenticazione con le credenziali utente o con la delega a livello di dominio utilizzando questo ambito. |
https://www.googleapis.com/auth/chat.admin.delete
|
Eliminare le conversazioni e gli spazi di proprietà del dominio dell'amministratore e rimuovere l'accesso ai file associati in Chat. |
https://www.googleapis.com/auth/chat.app.delete
|
Eliminare conversazioni e spazi e rimuovere l'accesso ai file associati in Chat come app di Chat. Richiede l'approvazione dell'amministratore. Questo ambito supporta solo l'autenticazione delle app con i service account. Non puoi eseguire l'autenticazione con le credenziali utente o con la delega a livello di dominio utilizzando questo ambito. |
Gli ambiti nelle tabelle precedenti indicano la loro sensibilità, in base alle seguenti definizioni:
Non sensibili: questi ambiti forniscono la sfera di accesso di autorizzazione più piccola e richiedono solo la verifica app di base. Per informazioni su questo requisito, consulta Passaggi per prepararsi alla verifica.
Sensibili: questi ambiti forniscono alla tua app l'accesso ai dati di Google di un utente specifico dopo aver ricevuto l'autorizzazione dall'utente. Richiede la verifica app aggiuntiva. Per informazioni su questo requisito, consulta Passaggi per le app che richiedono ambiti sensibili.
Con restrizioni: questi ambiti forniscono un ampio accesso ai dati utente di Google e richiedono di completare la procedura di verifica degli ambiti con restrizioni. Per informazioni su questo requisito, consulta le Norme relative ai dati utente dei servizi API di Google e i Requisiti aggiuntivi per ambiti API specifici. Consulta anche Passaggi per le app che richiedono ambiti con limitazioni.
Se la tua app richiede l'accesso ad altre API di Google, puoi aggiungere anche questi ambiti. Per saperne di più sugli ambiti delle API di Google, consulta Utilizzare OAuth 2.0 per accedere alle API di Google.
Per scoprire di più sugli ambiti per le API di Google Workspace, consulta Configura la schermata per il consenso OAuth e scegli gli ambiti.
Tipi di autenticazione richiesti
Esistono due modi in cui le app di Chat possono autenticarsi e autorizzarsi con l'API Chat:
- Autenticazione utente L'autenticazione utente di
- consente a un'app di Chat di accedere ai dati utente e di completare azioni per conto di un utente. Gli ambiti OAuth specificano i dati e le azioni autorizzati. A meno che l'app di Chat non sia stata installata dall'amministratore o non le sia stata concessa la delega a livello di dominio, la prima volta che l'app di Chat esegue un'azione per conto di un utente, quest'ultimo deve autorizzare l'app di Chat utilizzando la schermata per il consenso OAuth.
- Autenticazione dell'app
L'autenticazione dell'app consente a un'app di Chat di utilizzare le credenziali del service account, accedere ai dati e completare le azioni come se stessa. Poiché l'app di Chat utilizza le proprie credenziali per accedere alle risorse e utilizzarle, gli utenti finali non devono approvare le chiamate API dell'app di Chat e non puoi aggiungere alla schermata per il consenso OAuth gli ambiti di autorizzazione OAuth che supportano l'autorizzazione dell'app.
Esistono due tipi di ambiti di autorizzazione OAuth che supportano l'autenticazione delle app:
https://www.googleapis.com/auth/chat.bot: la tua app di Chat può chiamare i metodi dell'API Google Chat che supportano questo ambito di autorizzazione per creare, aggiornare, recuperare, elencare o eliminare le risorse a cui ha accesso, ad esempio i messaggi negli spazi a cui gli utenti finali aggiungono la tua app di Chat. La tua app di Chat può concedersi autonomamente questo ambito di autorizzazione, senza che sia necessaria l'autorizzazione di un amministratore o di un utente finale.https://www.googleapis.com/auth/chat.app.*: l'utilizzo di questi ambiti richiede l'approvazione una tantum dell'amministratore. Per ricevere l'approvazione dell'amministratore, prepara il service account dell'app Chat per ricevere l'approvazione dell'amministratore creando un client OAuth compatibile con Google Workspace Marketplace e configurando l'app nell'SDK Google Workspace Marketplace. Questi ambiti consentono alla tua app di Chat di chiamare metodi specifici dell'API Google Chat. Ad esempio,chat.app.spaces.createconsente alle app di creare spazi di Chat.
Se un metodo supporta l'autenticazione utente o app, l'API Chat restituisce risultati diversi in base al tipo di autenticazione utilizzato:
- Con l'autenticazione dell'app, i metodi restituiscono solo le risorse a cui l'app di Chat può accedere.
- Con l'autenticazione utente, i metodi restituiscono solo le risorse a cui l'utente può accedere.
Ad esempio, la chiamata al metodo spaces.list() con l'autorizzazione app restituisce l'elenco degli spazi di cui l'app di Chat è membro.
La chiamata di spaces.list() con l'autorizzazione utente restituisce l'elenco degli spazi di cui l'utente è membro. In pratica, potresti utilizzare entrambi i tipi di autenticazione quando chiami l'API Chat, a seconda del design e delle funzionalità della tua app di Chat.
Per le chiamate API Chat asincrone
La tabella seguente elenca i metodi dell'API Chat e gli ambiti di autorizzazione supportati:
| Metodo | Autenticazione utente supportata | Autenticazione delle app supportata | Ambiti di autorizzazione supportati | |
|---|---|---|---|---|
| Spazi | ||||
| Crea uno spazio |
Con Autenticazione utente:
|
|||
| Configura uno spazio | — |
Con Autenticazione utente:
|
||
| Ottieni uno spazio |
Con Autenticazione utente:
|
|||
| Elenca gli spazi |
Con Autenticazione utente:
|
|||
| Spazi di ricerca | — |
Con l'autenticazione utente utilizzando i privilegi amministrativi:
|
||
| Aggiorna uno spazio |
Con Autenticazione utente:
|
|||
| Elimina uno spazio |
Con Autenticazione utente:
|
|||
| Completa la procedura di importazione per uno spazio | — |
Con Autenticazione utente:
|
||
| Trova un messaggio diretto |
Con Autenticazione utente:
|
|||
| Membri | ||||
| Crea un membro |
Con Autenticazione utente:
|
|||
| Recupera un membro |
Con Autenticazione utente:
|
|||
| Membri dell'elenco |
Con Autenticazione utente:
|
|||
| Elimina un membro |
Con Autenticazione utente:
|
|||
| Aggiorna un membro |
Con Autenticazione utente:
|
|||
| Messaggi | ||||
| Crea un messaggio |
Con Autenticazione utente:
|
|||
| Ricevi un messaggio |
Con Autenticazione utente:
|
|||
| Elenca i messaggi |
Con Autenticazione utente:
|
|||
| Cerca nei messaggi | — |
Con Autenticazione utente:
|
||
| Aggiorna un messaggio |
Con Autenticazione utente:
|
|||
| Elimina un messaggio |
Con Autenticazione utente:
|
|||
| Bloccare un messaggio | — |
Con Autenticazione utente:
|
||
| Sblocca un messaggio | — |
Con Autenticazione utente:
|
||
| Elenca i messaggi bloccati | — |
Con Autenticazione utente:
|
||
| Aggiorna le schede in un messaggio | — |
Con l'autenticazione dell'app:
|
||
| Reazioni | ||||
| Crea una reazione | — |
Con Autenticazione utente:
|
||
| Elencare le reazioni | — |
Con Autenticazione utente:
|
||
| Elimina una reazione | — |
Con Autenticazione utente:
|
||
| Emoji personalizzate | ||||
| Crea un'emoji personalizzata | — |
Con Autenticazione utente:
|
||
| Elimina un'emoji personalizzata | — |
Con Autenticazione utente:
|
||
| Ricevi un'emoji personalizzata | — |
Con Autenticazione utente:
|
||
| Elencare le emoji personalizzate | — |
Con Autenticazione utente:
|
||
| Contenuti multimediali e allegati | ||||
| Carica i contenuti multimediali come allegato | — |
Con Autenticazione utente:
|
||
| Scarica contenuti multimediali |
Con Autenticazione utente:
|
|||
| Recupera un allegato del messaggio | — |
Con l'autenticazione dell'app:
|
||
| Stati di lettura degli utenti | ||||
| Recupera lo stato di lettura dello spazio di un utente | — |
Con Autenticazione utente:
|
||
| Aggiorna lo stato di lettura di uno spazio di un utente | — |
Con Autenticazione utente:
|
||
| Recupera lo stato di lettura del thread di un utente | — |
Con Autenticazione utente:
|
||
| Impostazioni dello spazio utente | ||||
| Recupera l'impostazione di notifica dello spazio di un utente | — |
Con Autenticazione utente:
|
||
| Aggiorna l'impostazione di notifica di uno spazio per un utente | — |
Con Autenticazione utente:
|
||
| Eventi dello spazio | ||||
| Recupera gli eventi dello spazio | — |
Con l'autenticazione utente, devi utilizzare un ambito basato sul
tipo di evento:
|
||
| Elenca gli eventi dello spazio | — |
Con l'autenticazione utente, devi utilizzare un ambito per ogni
tipo di evento incluso nella richiesta:
|
||
| Sezioni | ||||
| Crea una sezione | — |
Con Autenticazione utente:
|
||
| Elimina una sezione | — |
Con Autenticazione utente:
|
||
| Sezioni degli elenchi | — |
Con Autenticazione utente:
|
||
| Aggiorna una sezione | — |
Con Autenticazione utente:
|
||
| Posiziona una sezione | — |
Con Autenticazione utente:
|
||
| Elementi della sezione | ||||
| Sposta un elemento della sezione | — |
Con Autenticazione utente:
|
||
| Elementi della sezione elenco | — |
Con Autenticazione utente:
|
||
Per gli eventi di interazione con l'app di Chat
La tabella seguente elenca i modi più comuni in cui gli utenti interagiscono con le app di Chat e se l'autenticazione è obbligatoria o supportata:
| Scenario | Nessuna autenticazione richiesta | Autenticazione utente supportata | Autenticazione delle app supportata | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Ricevi messaggi da: |
|
|||||||||||||||
| Rispondi ai messaggi: |
|
|||||||||||||||
| Inviare nuovi messaggi: |
|
|||||||||||||||
Argomenti correlati
- Per una panoramica dell'autenticazione e dell'autorizzazione in Google Workspace, consulta Scopri di più su autenticazione e autorizzazione.
- Per una panoramica dell'autenticazione e dell'autorizzazione in Google Cloud, consulta Panoramica dell'autenticazione.
- Per saperne di più sui service account, consulta Service account.
- Per scoprire di più su come le API di Google utilizzano OAuth 2.0, consulta Utilizzare OAuth 2.0 per accedere alle API di Google.
- Configura l'autenticazione e l'autorizzazione con le credenziali utente o un service account.
- Per gestire le autorizzazioni OAuth granulari, vedi Gestisci le autorizzazioni OAuth granulari per le app Google Chat.