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 effettua la richiesta. L'autorizzazione identifica a quali risorse può accedere il richiedente e il livello di accesso di cui dispone. L'autenticazione è un prerequisito per l'autorizzazione. Non puoi stabilire 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 prenotazione di un hotel. Quando arrivi in hotel, la reception ti chiede il documento di identità per verificare la prenotazione. Il tuo documento di identità ti autentica presso l'hotel. L'addetto alla reception ti dà la chiave dell'hotel. Questa chiave ti consente di accedere a determinate risorse dell'hotel, come la camera, la palestra e il business center. La chiave dell'hotel ti autorizza ad accedere a queste risorse.
Panoramica sulla procedura
Il seguente diagramma mostra i passaggi di alto livello di autenticazione e autorizzazione per le API Google Workspace:
Configura il progetto e l'app Google Cloud: durante lo sviluppo, registra 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 dell'account di servizio.
Autentica l'app per l'accesso: quando l'app viene eseguita, le credenziali di accesso registrate vengono valutate. Se la tua app si autentica come utente finale, potrebbe essere visualizzata una richiesta di accesso.
Richiedi risorse:quando la tua app deve accedere alle risorse di Google, lo chiede a Google utilizzando gli ambiti di accesso pertinenti che hai registrato in precedenza.
Richiedi il consenso dell'utente:se la tua app si autentica come utente finale, Google mostra la schermata di consenso di OAuth in modo che l'utente possa decidere se concedere alla tua app l'accesso ai dati richiesti.
Invia una 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.
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 rispetto agli ambiti di accesso richiesti, l'app disattiva le funzionalità limitate dal token.
Accedere alle risorse richieste: la tua app utilizza il token di accesso di Google per invocare le API pertinenti e accedere alle risorse.
Ottieni un token di aggiornamento (facoltativo): se la tua app ha bisogno di accedere a un'API Google oltre la durata di un singolo token di accesso, può ottenere un token di aggiornamento.
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 da 3 a 6).
Terminologia importante
Di seguito è riportato un elenco di termini relativi all'autenticazione e all'autorizzazione:
- Autenticazione
L'atto di garantire che un principale, 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 conoscere questi tipi di autenticazione:
- Autenticazione utente
- L'atto di un utente che si autentica (accede) alla tua app. L'autenticazione dell'utente viene solitamente eseguita tramite una procedura di accesso in cui l'utente utilizza una combinazione di nome utente e password per verificare la propria identità all'app. L'autenticazione dell'utente può essere incorporata in un'app utilizzando Accedi con Google.
- Autenticazione app
- L'atto di un'app che si autentica direttamente nei servizi Google per conto dell'utente che esegue l'app. L'autenticazione dell'app viene solitamente eseguita utilizzando le credenziali predefinite nel codice dell'app.
- Autorizzazione
Le autorizzazioni o l'"autorità" di cui dispone il principale per accedere ai dati o eseguire operazioni. L'atto di autorizzazione viene eseguito tramite il codice che scrivi nella tua app. Questo codice informa l'utente che l'app vuole agire per suo conto e, se consentito, utilizza le credenziali univoche dell'app per ottenere da Google un token di accesso utilizzato per accedere ai dati o eseguire operazioni.
- Credenziale
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 di Google Workspace, una credenziale è in genere una forma di identificazione, ad esempio una stringa segreta univoca, nota solo allo sviluppatore dell'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
- Le credenziali utilizzate per richiedere l'accesso ai dati pubblici, ad esempio i dati forniti tramite l'API Maps o i file di Google Workspace condivisi utilizzando l'impostazione "Chiunque su internet con questo link" nelle impostazioni di condivisione di Google Workspace.
- ID client OAuth 2
- Le credenziali utilizzate per richiedere l'accesso ai dati di proprietà dell'utente. Si tratta della credenza principale utilizzata per richiedere 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 segreto client protegge i dati dell'utente concedendo i token solo ai richiedenti autorizzati. Non devi mai includere il client secret non criptato nella tua app. Ti consigliamo di archiviarlo in modo sicuro. Per ulteriori informazioni, consulta Gestire le credenziali client in modo sicuro.
- Chiavi dell'account di servizio
- Utilizzato dagli account di servizio per ottenere l'autorizzazione per un servizio Google.
- Account di servizio
- Una credenziale utilizzata per le interazioni tra server, ad esempio un'app anonima che viene eseguita come processo per accedere ad alcuni dati o eseguire alcune operazioni. I service account vengono in genere utilizzati per accedere a dati e operazioni basati su 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 concesso a un'app. Per Google Workspace, gli URI ambito 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 l'accesso da concedere. 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 concedere l'accesso, utilizzando 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. Un codice è necessario solo se il tipo di applicazione è un'app di 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 gradi diversi, noti come ambiti, di accesso a più API. Il codice di autorizzazione della tua app richiede token di accesso e li utilizza per richiamare le API Google Workspace.
- Server di risorse
Il server che ospita l'API che la tua 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 di autorizzazione che utilizzi nella tua app rappresentano l'implementazione del framework OAuth 2.0.
- Direttore/preside
Un'entità, nota anche come identità, a cui è possibile concedere l'accesso a una risorsa. Le API di Google Workspace supportano due tipi di principali: account utente e account di servizio. Per maggiori dettagli, consulta Principali.
- Tipo di dati
Nel contesto dell'autenticazione e dell'autorizzazione, il tipo di dati si riferisce all'entità proprietaria dei dati a cui la tua app sta tentando di accedere. Esistono tre tipi di dati:
- Dati di 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 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, a questo tipo di dati si accede utilizzando un ID client o un account di servizio OAuth 2.
- Dati sul cloud
- Dati di proprietà di un progetto Google Cloud. In genere, questo tipo di dati è accessibile da un account di servizio.
- Consenso degli utenti
Un passaggio di autorizzazione che richiede all'utente della tua app di autorizzarla ad accedere ai dati ed eseguire operazioni per suo conto.
- Tipo di applicazione
Il tipo di app che vuoi creare. Quando crei le credenziali utilizzando la console Google Cloud, ti viene chiesto di selezionare il tipo di applicazione. I tipi di app sono: applicazione web (JavaScript), Android, app per Chrome, iOS, TV e dispositivi di input limitato, app desktop (chiamata anche "app installata") e Universal Windows Platform (UWP).
- Account di servizio
Un tipo speciale di Account Google destinato a rappresentare un utente non umano che deve eseguire l'autenticazione ed essere autorizzato ad accedere ai dati. L'applicazione assume l'identità dell'account di servizio per chiamare le API di Google. In questo modo gli utenti non vengono coinvolti direttamente. Da soli, gli account di servizio non possono essere utilizzati per accedere ai dati utente, ai dati a cui di solito si accede utilizzando le API di 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 degli utenti per conto degli utenti dell'organizzazione Google Workspace. La delega a livello di dominio può essere utilizzata per eseguire attività di amministrazione sui dati utente. Per delegare l'autorità in questo modo, gli amministratori di Google Workspace utilizzano account di servizio con OAuth 2.0. A causa della potenza di questa funzionalità, solo i super amministratori possono attivare 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.