L'autenticazione e l'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 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, abilita l'API Chat e configura la tua app Chat: durante lo sviluppo, crea un progetto Google Cloud. Nel progetto Google Cloud, abiliti l'API Chat, configuri l'app Chat e configuri l'autenticazione. Per ulteriori informazioni, vedi Sviluppare su Google Workspace e Creare 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 si autentica con un account di servizio, 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 è ancora stata concessa, chiede all'utente di accedere.
Richiedi risorse: l'app richiede l'accesso con gli ambiti da te specificati durante la configurazione dell'autenticazione.
Chiedi il consenso:se la tua app si sta autenticando 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 account di servizio non richiede il consenso dell'utente.
Invia una richiesta approvata per le risorse:se l'utente acconsente agli scopi di autorizzazione, l'app raggruppa le credenziali e gli scopi 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 di quello richiesto, l'app disattiva le funzionalità limitate dal token.
Accesso alle risorse richieste:la tua app utilizza il token di accesso di Google per chiamare l'API Chat e accedere alle risorse dell'API Chat.
(Facoltativo) Richiesta di un token di aggiornamento: se l'app deve accedere all'API Google Chat oltre la durata di un singolo token di accesso, può ricevere un token di aggiornamento. Per ulteriori informazioni, consulta Utilizzare OAuth 2.0 per accedere alle API di Google.
Richiedi più risorse: se la tua app ha bisogno di 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 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 l'app Chat non chiami l'API Chat o un'altra API di Google durante l'elaborazione della risposta.
Per inviare messaggi asincroni o eseguire attività per conto di un utente, le app di Chat effettuano richieste RESTful all'API Chat, che richiedono l'autenticazione e l'autorizzazione.
Le risposte alle interazioni degli utenti non richiedono l'autenticazione
Le app Google Chat non devono autenticarsi come utente o come app Chat per ricevere e rispondere in modo sincrono agli eventi di interazione.
Le app Google Chat ricevono eventi di interazione ogni volta che un utente interagisce o richiama un'app di Chat, 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 slash dell'app Chat.
Il seguente diagramma mostra una sequenza di richiesta-risposta tra un utente di Chat e l'app 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 mostra la risposta per l'utente o in uno spazio.
Questa sequenza viene ripetuta per ogni evento di interazione con l'app Chat.
I messaggi asincroni richiedono l'autenticazione
I messaggi asincroni si verificano quando un'app di Chat invia una richiesta all'API Chat, che richiede autenticazione e autorizzazione.
Chiamando l'API Chat, 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 servizio del server, un'app di Chat può chiamare l'API Chat per:
- Crea uno spazio di Chat dedicato a esaminare e risolvere l'interruzione del servizio.
- 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 asincrona tra un'app Chat e uno spazio Chat:
- Un'app Chat crea un messaggio chiamando l'API Chat utilizzando il metodo
spaces.messages.create
e include le credenziali utente nella richiesta HTTP. - Google Chat autentica l'app Chat con le credenziali dell'account di servizio o dell'utente.
- Google Chat esegue il rendering del messaggio dell'app in uno spazio di Chat specificato.
Ambiti dell'API Chat
Configurare la schermata per il consenso OAuth e scegliere gli ambiti per definire le informazioni da mostrare agli utenti e ai revisori dell'app e registrare 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 Chat di visualizzare le chat e inviare messaggi. Questo ambito supporta solo l'autenticazione delle app con gli account di servizio. Con questo ambito non puoi autenticarti con le credenziali utente o con la delega a livello di dominio. |
Ambiti sensibili
Codice ambito | Descrizione |
---|---|
https://www.googleapis.com/auth/chat.spaces
|
Creare conversazioni e spazi e visualizzare o modificare i 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
|
Visualizza 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
|
Scrivi e invia messaggi in Chat. |
https://www.googleapis.com/auth/chat.messages.reactions
|
Visualizzare, aggiungere ed eliminare le reazioni ai messaggi in Chat. |
https://www.googleapis.com/auth/chat.messages.reactions.create
|
Aggiungere 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 la chat e gli spazi di proprietà del dominio dell'amministratore in Chat. |
https://www.googleapis.com/auth/chat.admin.memberships.readonly
|
Visualizzare i membri e i 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 i metadati (incluse le impostazioni della cronologia e di accesso) in Chat. Richiede l'approvazione dell'amministratore. Questo ambito supporta solo l'autenticazione delle app con gli account di servizio. Non puoi eseguire l'autenticazione con 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. Richiede l'approvazione dell'amministratore. Questo ambito supporta solo l'autenticazione delle app con gli account di servizio. Non puoi eseguire l'autenticazione con 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. È necessaria l'approvazione dell'amministratore. Questo ambito supporta solo l'autenticazione delle app con gli account di servizio. Con questo ambito non puoi autenticarti con le credenziali utente o con la delega a livello di dominio. |
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.
Consulta le API di impostazioni utente dello spazio: getSpaceNotificationSetting, updateSpaceNotificationSetting |
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 ulteriori informazioni, consulta Autorizzare le app di Chat a importare i 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
|
Visualizza messaggi e reazioni in Chat. |
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. Richiede l'approvazione dell'amministratore. Questo ambito supporta solo l'autenticazione delle app con gli account di servizio. Con questo ambito non puoi autenticarti con le credenziali utente o con la delega a livello di dominio. |
Gli ambiti nelle tabelle precedenti ne indicano la sensibilità, in base alle seguenti definizioni:
Non sensibili: questi ambiti forniscono la sfera di accesso all'autorizzazione più ridotta e richiedono solo la verifica di base dell'app. Per informazioni su questo requisito, consulta la sezione Passaggi per prepararsi alla verifica.
Sensibile: questi ambiti consentono alla tua app di accedere ai dati di Google di un utente specifico dopo aver ricevuto l'autorizzazione da parte dell'utente. È necessario eseguire un'ulteriore verifica dell'app. Per informazioni su questo requisito, consulta la sezione Passaggi per le app che richiedono ambiti sensibili.
Con restrizioni: questi ambiti forniscono un accesso ampio ai dati utente di Google e richiedono la procedura di verifica degli ambiti con restrizioni. Per informazioni su questo requisito, consulta le pagine Servizi API di Google: norme relative ai dati utente e Requisiti aggiuntivi per ambiti API specifici. Consulta anche la sezione Procedura 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 ulteriori informazioni sugli ambiti delle API di Google, consulta l'articolo Utilizzare OAuth 2.0 per accedere alle API di Google.
Per scoprire di più sugli ambiti per le API di Google Workspace, consulta Configurare la schermata per il consenso OAuth e scegliere gli ambiti.
Tipi di autenticazione richiesta
Esistono due modi in cui le app di Chat possono autenticarsi e autorizzarsi con l'API Chat:
- Autenticazione degli utenti
- L'autenticazione utente consente a un'app di Chat di accedere ai dati utente e completare azioni per conto di un utente. Gli ambiti OAuth specificano i dati e le azioni autorizzati. A meno che l'app Chat non sia stata installata dall'amministratore o non sia stata data la delega a livello di dominio, la prima volta che l'app Chat esegue un'azione per conto di un utente, l'utente deve autorizzarla tramite la schermata del consenso OAuth.
- Autenticazione app
L'autenticazione delle app consente a un'app Chat di utilizzare le credenziali dell'account di servizio, di accedere ai dati e di completare azioni come se stessa. Poiché l'app Chat utilizza le proprie credenziali per accedere alle risorse e utilizzarle, gli utenti finali non devono approvare le chiamate API dell'app Chat e non puoi aggiungere ambiti di autorizzazione OAuth che supportano l'autorizzazione app alla schermata del consenso OAuth.
Due tipi di ambiti di autorizzazione OAuth supportano l'autenticazione delle app:
https://www.googleapis.com/auth/chat.bot
: L'app 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, come i messaggi negli spazi a cui gli utenti finali aggiungono la tua app Chat. L'app Chat può concedersi autonomamente questo ambito di autorizzazione, senza alcuna autorizzazione di amministratore o utente finale.https://www.googleapis.com/auth/chat.app.*
(Anteprima per gli sviluppatori): l'utilizzo di questi ambiti richiede l'approvazione una tantum dell'amministratore. Per ricevere l'approvazione dell'amministratore, prepara lo 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 di Google Workspace Marketplace. Questi ambiti consentono all'app Chat di chiamare metodi specifici dell'API Google Chat. Ad esempio,chat.app.spaces.create
consente alle app di creare spazi di Chat.
Se un metodo supporta sia l'autenticazione dell'utente sia quella dell'app, l'API Chat restituisce risultati diversi in base al tipo di autenticazione utilizzato:
- Con l'autenticazione delle app, i metodi restituiscono solo le risorse a cui può accedere l'app Chat.
- Con l'autenticazione utente, i metodi restituiscono solo le risorse a cui l'utente può accedere.
Ad esempio, l'uso del metodo spaces.list()
con l'autorizzazione app restituisce
l'elenco degli spazi di cui l'app Chat è membro.
La chiamata di spaces.list()
con
l'autorizzazione dell'utente restituisce l'elenco di 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 Chat.
Per le chiamate asincrone all'API Chat
La tabella seguente elenca i metodi dell'API Chat e i relativi ambiti di autorizzazione supportati:
Metodo | Autenticazione utente supportata | Autenticazione delle app supportata | Ambiti di autorizzazione supportati | |
---|---|---|---|---|
Spazi | ||||
Creare uno spazio |
Con l'autenticazione utente:
|
|||
Configurare uno spazio | — |
Con l'autenticazione utente:
|
||
Creare uno spazio |
Con l'autenticazione utente:
|
|||
Elenco di spazi |
Con l'autenticazione utente:
|
|||
Spazi di ricerca | — |
Con l'autenticazione utente che utilizza i privilegi amministrativi:
|
||
Aggiornare uno spazio |
Con l'autenticazione utente:
|
|||
Eliminare uno spazio |
Con l'autenticazione utente:
|
|||
Completare la procedura di importazione di uno spazio | — |
Con l'autenticazione utente:
|
||
Trovare un messaggio diretto |
Con l'autenticazione utente:
|
|||
Membri | ||||
Creare un membro |
Con l'autenticazione utente:
|
|||
Acquistare un abbonamento |
Con l'autenticazione utente:
|
|||
Membri dell'elenco |
Con l'autenticazione utente:
|
|||
Eliminare un membro |
Con l'autenticazione utente:
|
|||
Aggiornare un membro |
Con l'autenticazione utente:
|
|||
Messaggi | ||||
Creare un messaggio |
Con l'autenticazione utente:
|
|||
Ricevere un messaggio |
Con l'autenticazione utente:
|
|||
Elenca messaggi | — |
Con l'autenticazione utente:
|
||
Aggiornare un messaggio |
Con l'autenticazione utente:
|
|||
Eliminare un messaggio |
Con l'autenticazione utente:
|
|||
Reazioni | ||||
Creare una reazione | — |
Con l'autenticazione utente:
|
||
Elenco delle reazioni | — |
Con l'autenticazione utente:
|
||
Eliminare una reazione | — |
Con l'autenticazione utente:
|
||
Emoji personalizzate | ||||
Creare un'emoji personalizzata | — |
Con l'autenticazione utente:
|
||
Eliminare un'emoji personalizzata | — |
Con l'autenticazione utente:
|
||
Ricevere un'emoji personalizzata | — |
Con l'autenticazione utente:
|
||
Elenca emoji personalizzate | — |
Con l'autenticazione utente:
|
||
Contenuti multimediali e allegati | ||||
Caricare contenuti multimediali come allegato file | — |
Con l'autenticazione utente:
|
||
Scaricare contenuti multimediali |
Con l'autenticazione utente:
|
|||
Ricevere un allegato di un messaggio | — |
Con l'autenticazione app:
|
||
Stati di lettura dell'utente | ||||
Ottenere lo stato di lettura dello spazio di un utente | — |
Con l'autenticazione utente:
|
||
Aggiornare lo stato di lettura dello spazio di un utente | — |
Con l'autenticazione utente:
|
||
Ottenere lo stato di lettura del thread di un utente | — |
Con l'autenticazione utente:
|
||
Impostazioni dello spazio utente | ||||
Ottenere l'impostazione di notifica dello spazio di un utente | — |
Con l'autenticazione utente:
|
||
Aggiornare l'impostazione di notifica dello spazio di un utente | — |
Con l'autenticazione utente:
|
||
Eventi dello spazio | ||||
Visualizza gli eventi nello 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:
|
Per gli eventi di interazione con l'app di Chat
La tabella seguente elenca i modi comuni in cui gli utenti interagiscono con le app di chat e indica se l'autenticazione è richiesta o supportata:
Scenario | Nessuna autenticazione richiesta | Autenticazione utente supportata | Autenticazione app supportata | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Ricevere messaggi da: |
|
|||||||||||||||
Rispondere 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 la panoramica dell'autenticazione.
- Per saperne di più sugli account di servizio, vedi Account di servizio.
- 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 credenziali utente o un account di servizio.