Scopri di più su autenticazione e autorizzazione

L'autenticazione e l'autorizzazione sono meccanismi utilizzati rispettivamente per verificare l'identità e l'accesso alle risorse. Questo documento identifica i termini chiave che devi conoscere prima di implementare l'autenticazione e l'autorizzazione nella tua app.

L'autenticazione identifica chi sta effettuando la richiesta. L'autorizzazione identifica a quali risorse può accedere il richiedente e quale livello di accesso ha. L'autenticazione è un prerequisito per l'autorizzazione. Non puoi determinare a quali risorse accedere senza prima stabilire l'identità del richiedente. Per una definizione più dettagliata, consulta la sezione Terminologia importante.

Considera il seguente esempio semplificato di una prenotazione alberghiera. Quando arrivi in hotel, l'addetto alla reception ti chiede un documento di identità per verificare la prenotazione. Il documento di identità ti autentica presso l'hotel. L'addetto alla reception ti consegna una chiave della camera. Questa chiave ti dà accesso a determinate risorse dell'hotel, come la camera, la palestra e il business center. La chiave della camera ti autorizza ad accedere a queste risorse.

Panoramica sulla procedura

Il seguente diagramma mostra i passaggi di alto livello dell'autenticazione e dell'autorizzazione per le API Google Workspace:

Passaggi di alto livello di un'implementazione di autenticazione e autorizzazione
Figura 1. Passaggi di alto livello di un'implementazione di autenticazione e autorizzazione
  1. Configura il tuo progetto Google Cloud e l'app: durante lo sviluppo, registri l'app nella console Google Cloud, definendo gli ambiti di autorizzazione e le credenziali di accesso per autenticare l'app con una chiave API, le credenziali dell'utente finale o le credenziali del service account.

  2. Autentica l'app per l'accesso: quando l'app viene eseguita, vengono valutate le credenziali di accesso registrate. Se l'app esegue l'autenticazione come utente finale, potrebbe essere visualizzato un prompt di accesso.

  3. Richiedi risorse: quando l'app ha bisogno di accedere alle risorse Google, le chiede a Google utilizzando gli ambiti di accesso pertinenti che hai registrato in precedenza.

  4. Chiedi il consenso dell'utente: se l'app esegue l'autenticazione come utente finale, Google visualizza la schermata per il consenso OAuth in modo che l'utente possa decidere se concedere all'app l'accesso ai dati richiesti.

  5. Invia la richiesta approvata per le risorse: se l'utente acconsente agli ambiti di accesso, l'app raggruppa le credenziali e gli ambiti di accesso approvati dall'utente in una richiesta. La richiesta viene inviata al server di autorizzazione di Google per ottenere un token di accesso.

  6. Google restituisce un token di accesso: il token di accesso contiene un elenco di ambiti di accesso concessi. Se l'elenco di ambiti restituito è più limitato degli ambiti di accesso richiesti, l'app disattiva tutte le funzionalità limitate dal token.

  7. Accedi alle risorse richieste: l'app utilizza il token di accesso di Google per richiamare le API pertinenti e accedere alle risorse.

  8. Ottieni un token di aggiornamento (facoltativo): se l'app ha bisogno di accedere a un'API Google oltre la durata di un singolo token di accesso, può ottenere un token di aggiornamento.

  9. Richiedi altre risorse: se è necessario un accesso aggiuntivo, l'app chiede all'utente di concedere nuovi ambiti di accesso, il che comporta una nuova richiesta per ottenere un token di accesso (passaggi 3-6).

Terminologia importante

Il seguente elenco identifica i termini relativi all'autenticazione e all'autorizzazione:

Autenticazione

L'atto di assicurarsi che un principal, che può essere un utente o un'app che agisce per conto di un utente, sia chi dice di essere. Quando scrivi app Google Workspace, devi essere a conoscenza di questi tipi di autenticazione:

Autenticazione utente
L'atto di un utente che esegue l'autenticazione (accesso) alla tua app. L'autenticazione utente viene in genere eseguita tramite una procedura di accesso in cui l'utente utilizza una combinazione di nome utente e password per verificare la propria identità nell'app. L'autenticazione utente può essere incorporata in un'app utilizzando Accedi con Google.
Autenticazione app
L'atto di un'app che esegue l'autenticazione direttamente ai servizi Google per conto dell'utente che esegue l'app. L'autenticazione dell'app viene in genere eseguita utilizzando le credenziali pre-create nel codice dell'app.
Autorizzazione

Le autorizzazioni o "autorità" che il principal ha per accedere ai dati o eseguire operazioni. L'app richiede l'autorizzazione informando l'utente che l'app vuole agire per suo conto. Se l'utente consente la richiesta, l'app utilizza le sue credenziali univoche per ottenere un token di accesso da Google.

Qualifica

Una forma di identificazione utilizzata nella sicurezza del software. In termini di autenticazione, una credenziale è spesso una combinazione di nome utente e password. In termini di autorizzazione per le API Google Workspace, una credenziale è in genere una forma di identificazione, ad esempio una stringa segreta univoca, nota solo allo sviluppatore di app e al server di autenticazione. Google supporta queste credenziali di autenticazione: chiave API, ID client OAuth 2.0 e account di servizio.

Chiave API
La credenziale utilizzata per richiedere l'accesso ai dati pubblici, ad esempio i dati forniti utilizzando l'API di Google Maps. È possibile accedere in questo modo anche ai file pubblici di Google Workspace condivisi utilizzando l'impostazione "Chiunque su internet con questo link", anche se la maggior parte dei dati di Google Workspace richiede OAuth 2.0.
ID client OAuth 2
La credenziale utilizzata per richiedere l'accesso ai dati di proprietà dell'utente. Questa è la credenziale principale utilizzata quando si richiede l'accesso ai dati utilizzando le API Google Workspace. Questa credenziale richiede il consenso dell'utente.
Client secret
Una stringa di caratteri che deve essere nota solo alla tua applicazione e al server di autorizzazione. Il client secret protegge i dati dell'utente concedendo token solo ai richiedenti autorizzati. Non includere mai il client secret non criptato nella tua app. Ti consigliamo di archiviare il client secret in modo sicuro. Per saperne di più, consulta Gestire le credenziali client in modo sicuro.
Chiavi dell'account di servizio
Utilizzate dagli account di servizio per ottenere l'autorizzazione a un servizio Google.
Service account
Una credenziale utilizzata per le interazioni tra server, ad esempio un'applicazione senza interfaccia utente che viene eseguita come processo per accedere ai dati o eseguire operazioni. Gli account di servizio vengono in genere utilizzati per accedere a dati e operazioni basati sul cloud. Tuttavia, se utilizzati con la delega dell'autorità a livello di dominio, possono essere utilizzati per accedere ai dati utente.
Ambito

Una stringa URI OAuth 2.0 che definisce un livello di accesso alle risorse o alle azioni concesse a un'app. Per Google Workspace, gli URI degli ambiti di autorizzazione contengono il nome dell'app Google Workspace, il tipo di dati a cui accede e il livello di accesso. Gli utenti della tua app possono esaminare gli ambiti richiesti e scegliere a quale accesso concedere, quindi il server di autenticazione di Google restituisce gli ambiti consentiti alla tua app in un token di accesso. Per maggiori dettagli, consulta Come scegliere gli ambiti per la tua app.

Server di autorizzazione

Il server di Google per la concessione dell'accesso, tramite un token di accesso, ai dati e alle operazioni richiesti da un'app.

Codice di autorizzazione

Un codice inviato dal server di autorizzazione utilizzato per ottenere un token di accesso. È necessario un codice solo quando il tipo di applicazione è un'app server web o un'app installata.

Token di accesso

Un token che concede l'accesso a un'API Google Workspace. Un singolo token di accesso può concedere diversi livelli di accesso, noti come ambiti, a più API. Il codice di autorizzazione dell'app richiede i token di accesso e li utilizza per richiamare le API Google Workspace.

Server di risorse

Il server che ospita l'API che l'app vuole chiamare.

Framework OAuth 2.0

Uno standard che la tua app può utilizzare per fornirle "accesso delegato sicuro" o accesso a dati e operazioni per conto dell'utente dell'app. I meccanismi di autenticazione e autorizzazione utilizzati nella tua app rappresentano l'implementazione del framework OAuth 2.0.

Principal

Un'entità, nota anche come identità, a cui è possibile concedere l'accesso a una risorsa. Le API Google Workspace supportano due tipi di principal: account utente e account di servizio. Per maggiori dettagli, consulta Principal.

Tipo di dati

Nel contesto dell'autenticazione e dell'autorizzazione, il tipo di dati si riferisce all'entità proprietaria dei dati a cui l'app sta tentando di accedere. Esistono tre tipi di dati:

Dati del dominio pubblico
Dati accessibili a chiunque, ad esempio alcuni dati di Google Maps. In genere, si accede a questi dati utilizzando una chiave API.
Dati dell'utente finale
Dati appartenenti a un utente finale o a un gruppo specifico, ad esempio i file di Google Drive di un utente specifico. In genere, si accede a questo tipo di dati utilizzando un ID client OAuth 2 o un account di servizio.
Dati sul cloud
Dati di proprietà di un progetto cloud Google. In genere, si accede a questo tipo di dati tramite un account di servizio.
Consenso dell'utente

Un passaggio di autorizzazione che richiede all'utente della tua app di autorizzare l'app ad accedere ai dati ed eseguire operazioni per suo conto.

Tipo di applicazione

Il tipo di app che creerai. Quando crei le credenziali utilizzando la console Google Cloud, ti viene chiesto di selezionare il tipo di applicazione. I tipi di applicazione sono: applicazione web (JavaScript), Android, estensione Chrome, iOS, TV e dispositivi di input limitati e app desktop (chiamata anche "app installata").

Service account

Un tipo speciale di Account Google destinato a rappresentare un utente non umano che deve autenticarsi ed essere autorizzato ad accedere ai dati. L'applicazione assume l'identità del service account per chiamare le API di Google. In questo modo gli utenti non vengono coinvolti direttamente. Di per sé, gli account di servizio non possono essere utilizzati per accedere ai dati utente a cui si accede in genere utilizzando le API Google Workspace. Tuttavia, un account di servizio può accedere ai dati utente implementando la delega dell'autorità a livello di dominio. Per maggiori dettagli, consulta Informazioni sugli account di servizio.

Delega dell'autorità a livello di dominio

Una funzionalità di amministrazione che può autorizzare un'applicazione ad accedere ai dati utente per conto degli utenti dell'organizzazione Google Workspace. La delega a livello di dominio può essere utilizzata per eseguire attività correlate all'amministrazione sui dati utente. Per delegare l'autorità in questo modo, gli amministratori di Google Workspace utilizzano gli account di servizio con OAuth 2.0. A causa della potenza di questa funzionalità, solo i super amministratori possono abilitare la delega dell'autorità a livello di dominio. Per maggiori dettagli, consulta Delegare l'autorità a livello di dominio a un account di servizio.

Passaggio successivo

Configura la schermata per il consenso OAuth della tua app per assicurarti che gli utenti possano comprendere e approvare l'accesso della tua app ai loro dati.