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 Chat e le richieste dell'API Chat.
Panoramica della procedura
Il seguente diagramma mostra i passaggi generali di autenticazione e autorizzazione per Google Chat:
Configura un progetto Google Cloud, abilita l'API Chat e configura l'app Chat: durante lo sviluppo, crei un progetto Google Cloud. Nel progetto Google Cloud, puoi abilitare l'API Chat, configurare l'app Chat e impostare l'autenticazione. Per ulteriori informazioni, vedi Sviluppare su Google Workspace e Creare un'app di chat.
API Chat: quando l'app chiama l'API Chat, invia le credenziali di autenticazione all'API Chat. Se la tua app 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 tramite un'autenticazione utente che non è stata ancora concessa, all'utente verrà chiesto di eseguire l'accesso.
Richiedi risorse: la tua app richiede l'accesso con gli ambiti 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 ambiti di autorizzazione, l'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 degli ambiti concessi. Se l'elenco degli ambiti restituito è più restrittivo di quelli 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 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 maggiori informazioni, consulta Utilizzare OAuth 2.0 per accedere alle API di Google.
Richiedi altre risorse: se l'app ha bisogno di un maggiore accesso, chiede all'utente di concedere nuovi ambiti, generando 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 di una 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 un'app di 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 chiama un'app di Chat, inclusi:
- 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 si ripete per ogni evento di interazione con l'app di Chat.
I messaggi asincroni richiedono l'autenticazione
I messaggi asincroni si verificano quando un'app 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 server, un'app 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 i dettagli dell'interruzione.
Il seguente diagramma mostra una sequenza di messaggi asincrona tra un'app Chat e uno spazio di 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 l'account di servizio o le credenziali utente.
- 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 mostrare a utenti e revisori di app, quindi registra l'app per 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
|
L'ambito Consente alle app di Chat di visualizzare le chat e inviare messaggi. Concede l'accesso a tutte le funzionalità disponibili per le app di chat. |
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 nelle 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
|
Visualizza, aggiungi ed elimina 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 data e ora dell'ultima lettura delle 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. |
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 iscrizioni in Chat. Per maggiori informazioni, vedi Autorizzare le app di Chat a importare dati |
https://www.googleapis.com/auth/chat.messages
|
Visualizza, scrivi, invia, aggiorna ed elimina messaggi e aggiungi, visualizza ed elimina 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. |
Gli ambiti nelle tabelle precedenti ne indicano la sensibilità, in base alle definizioni seguenti:
Non sensibile: questi ambiti offrono la più piccola sfera di accesso di autorizzazione e richiedono solo la verifica app di base. Per informazioni su questo requisito, consulta i passaggi per preparare la 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. Richiede 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. Vedi anche la Procedura per le app che richiedono ambiti restrittivi.
Se la tua app richiede l'accesso a qualsiasi altra API di Google, puoi aggiungere anche questi ambiti. Per ulteriori informazioni sugli ambiti delle API di Google, consulta la pagina relativa all'utilizzo di OAuth 2.0 per accedere alle API di Google.
Per saperne di più sugli ambiti per le API Google Workspace, consulta Configurare la schermata per il consenso OAuth e scegliere gli ambiti.
Tipi di autenticazione richiesta
Le app di Chat possono autenticarsi e autorizzare con l'API Chat in due modi: con le credenziali utente o gli account di servizio.
Con l'autorizzazione delle credenziali utente, un'app di Chat può accedere ai dati utente e completare azioni per conto di un utente. Gli ambiti OAuth specificano i dati e le azioni autorizzati.
Con l'autorizzazione delle app, un'app di Chat accede
all'API come app utilizzando le credenziali dell'account di servizio. L'autorizzazione app utilizza sempre
l'ambito di autorizzazione chat.bot
.
Quando decidi quale tipo di credenziale utilizzare per una determinata richiesta API, tieni presente che alcuni metodi API supportano solo un particolare tipo di credenziali. Se un metodo API supporta entrambe le credenziali, il tipo di credenziale utilizzato nella chiamata influisce sul risultato restituito:
- Con l'autorizzazione dell'app, i metodi restituiscono solo le risorse a cui l'app può accedere.
- Con l'autorizzazione dell'utente, i metodi restituiscono solo le risorse a cui l'utente può accedere nell'interfaccia utente di Chat.
Ad esempio, chiamare il metodo ListSpaces
con l'autorizzazione dell'app restituisce l'elenco di spazi di cui l'app è membro. La chiamata a ListSpaces
con autorizzazione
dell'utente restituisce l'elenco degli spazi di cui l'utente è membro. In pratica, la tua app potrebbe utilizzare entrambi i tipi di autorizzazione quando chiami l'API Chat, a seconda della funzionalità che vuoi.
Per le chiamate API di Chat asincrone
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:
|
||
Ottieni uno spazio |
Con l'autenticazione utente:
|
|||
Elenco spazi |
Con l'autenticazione utente:
|
|||
Cerca spazi |
Con l'autenticazione utente mediante privilegi amministrativi:
|
|||
Aggiornare uno spazio | — |
Con l'autenticazione utente:
|
||
Eliminare uno spazio | — |
Con l'autenticazione utente:
|
||
Completare il processo 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:
|
||
Abbonarsi |
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 | ||||
Crea un messaggio |
Con l'autenticazione utente:
|
|||
Ricevi 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:
|
||
Elencare le reazioni | — |
Con l'autenticazione utente:
|
||
Eliminare una reazione | — |
Con l'autenticazione utente:
|
||
Contenuti multimediali e allegati | ||||
Caricare contenuti multimediali come file allegati | — |
Con l'autenticazione utente:
|
||
Scaricare contenuti multimediali |
Con l'autenticazione utente:
|
|||
Ricevere un allegato del messaggio | — |
Con l'autenticazione delle 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 dei thread di un utente | — |
Con l'autenticazione utente:
|
||
Eventi dello spazio | ||||
Visualizza gli eventi nello spazio | — |
Con l'autenticazione utente:
|
||
Elenca eventi dello spazio | — |
Con l'autenticazione utente:
|
Per gli eventi di interazione con l'app di Chat
La tabella seguente elenca i modi più comuni con 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 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ù sugli account di servizio, vedi Account di servizio.
- Per ulteriori informazioni su come le API di Google sfruttano OAuth 2.0, consulta Utilizzo di OAuth 2.0 per accedere alle API di Google.
- Configura l'autenticazione e l'autorizzazione con le credenziali utente o un account di servizio.