Metodi di autenticazione in Google

Questo documento ti aiuta a comprendere alcuni concetti e metodi di autenticazione chiave, nonché dove richiedere assistenza per l'implementazione o la risoluzione dei problemi relativi all'autenticazione. L'obiettivo principale della documentazione sull'autenticazione è rivolto ai servizi Google Cloud, ma l'elenco dei casi d'uso dell'autenticazione e il materiale introduttivo in questa pagina includono anche casi d'uso per altri prodotti Google.

Introduzione

L'autenticazione è il processo mediante il quale la tua identità viene confermata tramite l'uso di un qualche tipo di credenziale. L'autenticazione consiste nel dimostrare di essere chi dici di essere.

Google fornisce molte API e servizi che richiedono l'autenticazione per l'accesso. Google fornisce inoltre una serie di servizi che ospitano applicazioni scritte dai nostri clienti; anche queste applicazioni devono determinare l'identità dei propri utenti.

Ho intenzione di... Informazioni
Eseguire l'autenticazione in un servizio Google Cloud dalla mia applicazione utilizzando un linguaggio di programmazione di alto livello. Configura le credenziali predefinite dell'applicazione, quindi utilizza una delle librerie client di Cloud.
Esegui l'autenticazione in un'applicazione che richiede un token ID. Genera un token ID OpenID Connect (OIDC) e forniscilo con la richiesta.
Implementa l'autenticazione utente per un'applicazione che accede a servizi e risorse di Google o Google Cloud. Per un confronto delle opzioni, consulta Autenticare gli utenti dell'applicazione.
Provare alcuni comandi gcloud nel mio ambiente di sviluppo locale. Inizializza la gcloud CLI.
Provare alcune richieste dell'API REST di Google Cloud nel mio ambiente di sviluppo locale. Utilizza uno strumento a riga di comando come curl per chiamare l'API REST.
Provare uno snippet di codice incluso nella documentazione del mio prodotto. Configura le Credenziali predefinite dell'applicazione per un ambiente di sviluppo locale e installa la libreria client del tuo prodotto nell'ambiente locale. La libreria client trova automaticamente le tue credenziali.
Ricevi assistenza per un altro caso d'uso di autenticazione. Consulta la pagina Casi d'uso dell'autenticazione.
Visualizza un elenco dei prodotti forniti da Google nello spazio di gestione delle identità e degli accessi. Consulta la pagina Prodotti di gestione delle identità e degli accessi di Google.

Scegliere il metodo di autenticazione giusto per il tuo caso d'uso

Quando accedi ai servizi Google Cloud utilizzando Google Cloud CLI, le librerie client di Cloud, gli strumenti che supportano le Credenziali predefinite dell'applicazione (ADC) come Terraform o le richieste REST, utilizza il seguente diagramma per scegliere un metodo di autenticazione:

Struttura decisionale per la scelta del metodo di autenticazione in base al caso d'uso

Questo diagramma ti guida attraverso le seguenti domande:

  1. Esegui il codice in un ambiente di sviluppo per un solo utente, ad esempio la tua workstation, Cloud Shell o un'interfaccia desktop virtuale?
    1. In caso affermativo, vai alla domanda 4.
    2. In caso contrario, vai alla domanda 2.
  2. Esegui codice in Google Cloud?
    1. In caso affermativo, vai alla domanda 3.
    2. In caso contrario, vai alla domanda 5.
  3. Esegui container in Google Kubernetes Engine o GKE Enterprise?
    1. In caso affermativo, utilizza la federazione delle identità per i carichi di lavoro per GKE per collegare gli account di servizio ai pod Kubernetes.
    2. In caso contrario, collega un account di servizio alla risorsa.
  4. Il tuo caso d'uso richiede un account di servizio?

    Ad esempio, vuoi configurare l'autenticazione e l'autorizzazione in modo coerente per la tua applicazione in tutti gli ambienti.

    1. In caso contrario, esegui l'autenticazione con le credenziali utente.
    2. In caso affermativo, assumi l'identità di un account di servizio con le credenziali utente.
  5. Il tuo carico di lavoro si autentica con un provider di identità esterno che supporta la federazione delle identità per i workload?
    1. In caso affermativo, configura la federazione delle identità per i carichi di lavoro per consentire alle applicazioni in esecuzione on-premise o su altri provider cloud di utilizzare un account di servizio.
    2. In caso contrario, crea una chiave dell'account di servizio.

OAuth 2.0

Le API di Google implementano ed estendono il framework OAuth 2.0. Per maggiori dettagli, consulta la documentazione relativa al tuo ambiente e al tuo caso d'uso.

Metodi di autorizzazione per i servizi Google Cloud

I servizi Google Cloud utilizzano Identity and Access Management (IAM) per l'autenticazione. IAM offre un controllo granulare, per entità e per risorsa. Quando esegui l'autenticazione ai servizi Google Cloud, generalmente utilizzi un ambito che include tutti i servizi Google Cloud (https://www.googleapis.com/auth/cloud-platform).

Gli ambiti OAuth 2.0 possono fornire un secondo livello di protezione, utile se il codice viene eseguito in un ambiente in cui la sicurezza dei token è un problema, ad esempio un'app mobile. In questo scenario, puoi utilizzare ambiti più granulari per ridurre il rischio in caso di compromissione del token. Puoi trovare l'elenco degli ambiti accettati da un metodo dell'API nelle relative pagine di riferimento dell'API nella documentazione del prodotto.

Credenziali predefinite dell'applicazione

Application Default Credentials (ADC) è una strategia utilizzata dalle librerie di autenticazione per trovare automaticamente le credenziali in base all'ambiente dell'applicazione. Le librerie di autenticazione rendono queste credenziali disponibili per le librerie client Cloud e le librerie client delle API di Google. Quando utilizzi ADC, il codice può essere eseguito in un ambiente di sviluppo o di produzione senza dover cambiare il modo in cui l'applicazione si autentica nei servizi e nelle API di Google Cloud.

Se stai scrivendo codice che deve utilizzare i servizi Google Cloud, devi utilizzare ADC, se possibile. L'utilizzo di ADC può semplificare la procedura di sviluppo, in quanto ti consente di utilizzare lo stesso codice di autenticazione in una serie di ambienti.

Prima di poter utilizzare ADC, devi fornire le tue credenziali ad ADC, in base a dove vuoi eseguire il codice. ADC individua automaticamente le credenziali e recupera un token in background, consentendo l'esecuzione del codice di autenticazione in ambienti diversi senza modifiche. Ad esempio, la stessa versione del codice potrebbe autenticarsi con le API Google Cloud quando viene eseguita su una workstation di sviluppo o su Compute Engine.

Le credenziali gcloud non sono le stesse fornite ad ADC utilizzando gcloud CLI. Per ulteriori informazioni, consulta la pagina sulla configurazione dell'autenticazione e della configurazione dell'ADC dell'interfaccia a riga di comando gcloud.

Terminologia

I seguenti termini sono importanti da comprendere quando si parla di autenticazione e autorizzazione.

Autenticazione

L'autenticazione è il processo di determinazione dell'identità dell'entità che tenta di accedere a una risorsa.

Autorizzazione

L'autorizzazione è il processo di determinazione se l'entità o l'applicazione che tenta di accedere a una risorsa è stata autorizzata per quel livello di accesso.

Credenziali

Quando in questo documento viene utilizzato il termine account utente, si fa riferimento a un Account Google o a un account utente gestito dal tuo provider di identità e federato con la federazione delle identità della forza lavoro.

Per l'autenticazione, le credenziali sono un oggetto digitale che fornisce la prova dell'identità. Password, PIN e dati biometrici possono essere utilizzati come credenziali, a seconda dei requisiti dell'applicazione. Ad esempio, quando accedi al tuo account utente, fornisci la tua password e soddisfi qualsiasi requisito di autenticazione a due fattori come prova del fatto che l'account ti appartiene e che non stai subendo uno spoofing da parte di malintenzionati.

I token a volte vengono definiti credenziali, ma per questa documentazione vengono considerati come un oggetto digitale che dimostra che l'utente che ha effettuato la chiamata ha fornito le credenziali appropriate, ma non sono le credenziali stesse.

Il tipo di credenziale da fornire dipende da ciò per cui effettui l'autenticazione. Nella console Google Cloud puoi creare i seguenti tipi di credenziali:

  • Chiavi API

    A differenza di altre credenziali, le chiavi API non identificano un principale. Le chiavi API forniscono un progetto Google Cloud per la fatturazione e le quote.

    Molte API Google non accettano chiavi API. Per ulteriori informazioni sulle chiavi API, consulta la sezione Chiavi API.

  • ID client OAuth

    Gli ID client OAuth vengono utilizzati per identificare un'applicazione per Google Cloud. Questo è necessario quando vuoi accedere alle risorse possedute dai tuoi utenti finali, chiamate anche OAuth a tre vie (3LO). Per ulteriori informazioni su come ottenere e utilizzare un ID client OAuth, consulta la pagina Configurare OAuth 2.0.

  • Chiavi account di servizio

    Le chiavi dell'account di servizio identificano un'entità (l'account di servizio) e il progetto associato all'account di servizio.

Entità

Un'entità è un'identità a cui è possibile concedere l'accesso a una risorsa. Per l'autenticazione, le API di Google supportano due tipi di principali: account utente e account di servizio.

L'utilizzo di un account utente o di un account di servizio per l'autenticazione dipende dal tuo caso d'uso. Puoi utilizzarli entrambi, ciascuno in fasi diverse del progetto o in ambienti di sviluppo diversi.

Account utente

Gli account utente rappresentano uno sviluppatore, un amministratore o un'altra persona che interagisce con le API e i servizi Google.

Gli account utente vengono gestiti come Account Google con Google Workspace o Cloud Identity. Possono anche essere account utente gestiti da un provider di identità di terze parti e federati con Workforce Identity Federation.

Con un account utente, puoi autenticarti per accedere alle API e ai servizi Google nei seguenti modi:

Per una panoramica dei modi per configurare le identità per gli utenti in Google Cloud, consulta Identità per gli utenti.

Account di servizio

Gli account di servizio sono account che non rappresentano un utente. Forniscono un modo per gestire l'autenticazione e l'autorizzazione quando non è direttamente coinvolta una persona, ad esempio quando un'applicazione deve accedere alle risorse Google Cloud. Gli account di servizio sono gestiti da IAM.

L'elenco riportato di seguito fornisce alcuni metodi per utilizzare un account di servizio per autenticarsi alle API e ai servizi Google, in ordine dal più sicuro al meno sicuro. Per saperne di più, consulta Scegliere il metodo di autenticazione giusto per il tuo caso d'uso in questa pagina.

Per una panoramica dei modi per configurare le identità di carico di lavoro, inclusi gli account di servizio, per Google Cloud, consulta Identità per i carichi di lavoro. Per le best practice, consulta Best practice per l'utilizzo degli account di servizio.

Token

Per l'autenticazione e l'autorizzazione, un token è un oggetto digitale che mostra che un chiamante ha fornito le credenziali appropriate che sono state scambiate per quel token. Il token contiene informazioni sull'identità dell'entità che effettua la richiesta e sul tipo di accesso a cui è autorizzata.

I token possono essere considerati come le chiavi dell'hotel. Quando fai il check-in in un hotel e presenti la documentazione appropriata alla reception, ricevi una chiave che ti consente di accedere a risorse specifiche dell'hotel. Ad esempio, la chiave potrebbe darti accesso alla tua camera e all'ascensore per gli ospiti, ma non ad altre camere o all'ascensore di servizio.

Ad eccezione delle chiavi API, le API di Google non supportano direttamente le credenziali. L'applicazione deve acquisire o generare un token e fornirlo all'API. Esistono diversi tipi di token. Per ulteriori informazioni, consulta Tipi di token.

Carico di lavoro e forza lavoro

I prodotti di gestione di identità e accessi di Google Cloud consentono di accedere ai servizi e alle risorse di Google Cloud sia per l'accesso programmatico sia per gli utenti umani. Google Cloud utilizza i termini workload per l'accesso programmatico e workforce per l'accesso utente.

La federazione Workload Identity ti consente di fornire l'accesso ai carichi di lavoro on-premise o multi-cloud senza dover creare e gestire le chiavi dell'account di servizio.

La federazione delle identità della forza lavoro ti consente di utilizzare un provider di identità esterno per autenticare e autorizzare una forza lavoro, ovvero un gruppo di utenti come dipendenti, partner e appaltatori, utilizzando IAM, in modo che gli utenti possano accedere ai servizi Google Cloud.

Passaggi successivi