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 dovresti conoscere prima di implementare l'autenticazione e l'autorizzazione nella tua app.
Autenticazione identifica chi sta effettuando la richiesta. 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 determinare a quali risorse accedere senza aver prima stabilito l'identità del richiedente. Per una definizione più dettagliata, consulta la sezione Terminologia importante.
Considera il seguente esempio semplificato di prenotazione di un hotel. Al tuo arrivo in hotel, il personale della reception richiede il tuo documento di identità per verificare la tua prenotazione. Il tuo documento di identità ti autentica per accedere all'hotel. Il personale della reception ti dà la chiave dell'hotel. Questa chiave 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 della procedura
Il seguente diagramma mostra i passaggi generali di autenticazione e autorizzazione per le API Google Workspace:
![Passaggi generali per l'implementazione di autenticazione e autorizzazione](https://developers-dot-devsite-v2-prod.appspot.com/workspace/images/auth-overview.png?authuser=5&hl=it)
Configura il tuo progetto e l'app Google Cloud: durante lo sviluppo, registri la tua app nella console Google Cloud, definendo gli ambiti di autorizzazione e le credenziali di accesso per autenticare l'app con una chiave API, una credenziale dell'utente finale o un account di servizio.
Autentica l'app per l'accesso: quando l'app viene eseguita, vengono valutate le credenziali di accesso registrate. Se la tua app si autentica come utente finale, potrebbe essere visualizzata una richiesta di accesso.
Richiedi risorse: quando la tua app ha bisogno di accedere alle risorse Google, chiede a Google utilizzando gli ambiti pertinenti di accesso che hai registrato in precedenza.
Richiedi il consenso dell'utente: se la tua app viene autenticata come utente finale, Google mostra la schermata per il consenso 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 restituito degli ambiti è più limitato degli ambiti di accesso 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 richiamare le API pertinenti e accedere alle risorse.
(Facoltativo) Ricevi un token di aggiornamento: se la tua app ha bisogno di accedere a un'API di Google oltre la durata di un singolo token di accesso, può ottenere un token di aggiornamento.
Richiedi altre risorse: se è necessario accesso aggiuntivo, l'app chiede all'utente di concedere nuovi ambiti di accesso, con la conseguente richiesta di ottenere un token di accesso (passaggi 3-6).
Terminologia importante
Di seguito è riportato un elenco di termini relativi all'autenticazione e all'autorizzazione:
- Autenticazione
Atto per garantire che l'entità, ossia un utente o un'app che agisce per conto di un utente, sia chi afferma di essere. Quando scrivi app di Google Workspace, tieni presente i seguenti 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à all'app. L'autenticazione dell'utente può essere incorporata in un'app utilizzando Accedi con Google.
- Autenticazione app
- Atto con cui un'app esegue l'autenticazione direttamente nei servizi Google per conto dell'utente che la esegue. In genere l'autenticazione delle app viene eseguita utilizzando credenziali precreate nel codice dell'app.
- Autorizzazione
Le autorizzazioni o "autorità" di cui l'entità dispone per accedere ai dati o eseguire operazioni. L'atto di autorizzazione viene eseguito tramite il codice che scrivi nella tua app. Questo codice indica all'utente che l'app intende agire per suo conto e, se consentito, utilizza le credenziali univoche dell'app per ottenere da Google un token di accesso da usare 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 Google Workspace, una credenziale è solitamente una qualche forma di identificazione, ad esempio una stringa segreta univoca, nota solo tra lo sviluppatore dell'app e il server di autenticazione. Google supporta le seguenti credenziali di autenticazione: chiave API, ID client OAuth 2.0 e account di servizio.
- Chiave API
- La credenziale utilizzata per richiedere l'accesso a dati pubblici, ad esempio i dati forniti utilizzando l'API di Google 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
- La credenziale utilizzata per richiedere l'accesso ai dati di proprietà dell'utente. Questa è la credenziale principale utilizzata per richiedere l'accesso ai dati mediante le API Google Workspace. Questa credenziale richiede il consenso dell'utente.
- Client secret
- Una stringa di caratteri che dovrebbe 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 devi mai includere il client secret non criptato nell'app. Ti consigliamo di archiviare il client secret in modo sicuro. Per maggiori informazioni, consulta Gestire le credenziali client in modo sicuro.
- Chiavi degli account di servizio
- Utilizzati da account di servizio per ottenere l'autorizzazione per un servizio Google.
- Account di servizio
- Credenziali utilizzate per le interazioni server-to-server, ad esempio un'app faceless eseguita come processo per accedere ad alcuni dati o eseguire operazioni. Gli account di servizio vengono solitamente 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 dell'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 quale accesso concedere, il server di autenticazione di Google restituisce gli ambiti consentiti alla tua app in un token di accesso. Per maggiori dettagli, consulta la sezione 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. È necessario un codice solo se 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 vari gradi, denominati ambiti, di accesso a più API. Il codice di autorizzazione dell'app richiede i token di accesso e li utilizza per richiamare le API Google Workspace.
- Server 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 fornire "accesso delegato sicuro" o l'accesso a dati e operazioni per conto dell'utente dell'app. I meccanismi di autenticazione e autorizzazione che utilizzi nell'app rappresentano l'implementazione del framework OAuth 2.0.
- Preside
Un'entità, nota anche come identità, a cui può essere concesso l'accesso a una risorsa. Le API Google Workspace supportano due tipi di entità: account utente e account di servizio. Per maggiori dettagli, consulta Entità.
- Tipo di dati
Nel contesto dell'autenticazione e dell'autorizzazione, il tipo di dati fa riferimento all'entità proprietaria dei dati a cui la tua 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 questi dati sono accessibili tramite una chiave API.
- Dati degli utenti finali
- Dati appartenenti a un utente finale o a un gruppo specifico, ad esempio i file di Google Drive di un utente specifico. In genere, questo tipo di dati è accessibile tramite un ID client OAuth 2 o un account di servizio.
- Dati sul cloud
- Dati di proprietà di un progetto Google Cloud. Questo tipo di dati è solitamente accessibile da un account di servizio.
- Consenso degli utenti
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 intendi creare. Quando crei le credenziali utilizzando la console Google Cloud, ti viene chiesto di selezionare il tipo di applicazione. I tipi di applicazioni sono: Applicazione web (JavaScript), Android, App di Chrome, iOS, TV e dispositivi a input limitato, App desktop (detta 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 autenticarsi 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. Gli account di servizio non possono essere usati autonomamente per accedere ai dati utente, mentre i dati a cui si accede normalmente sono le API 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à di 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. Grazie alla 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 dell'app ai loro dati.