Metodi di autenticazione in Google

Questo documento ti aiuta a comprendere alcuni metodi e concetti chiave dell'autenticazione e dove trovare assistenza per l'implementazione o la risoluzione dei problemi dell'autenticazione. La documentazione sull'autenticazione è incentrata principalmente sui servizi Google Cloud, ma l'elenco di casi d'uso relativi all'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 mediante l'uso di un qualche tipo di credenziale. L'autenticazione serve a dimostrare di essere chi afferma di essere.

Google offre molte API e servizi che richiedono l'autenticazione per l'accesso. Google offre inoltre una serie di servizi che ospitano applicazioni scritte dai suoi clienti; tali applicazioni devono anche determinare l'identità dei loro utenti.

Ho intenzione di… Informazioni
Esegui l'autenticazione a 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, ad esempio le app in esecuzione su Cloud Run o Cloud Functions. Esegui l'autenticazione in un'applicazione che richiede un token ID. Ottieni un token ID OpenID Connect (OIDC) e forniscilo con la tua richiesta.
Implementa l'autenticazione utente per un'applicazione che accede a servizi e risorse Google o Google Cloud. Consulta Autenticare gli utenti dell'applicazione per un confronto delle opzioni.
Prova alcuni comandi gcloud nel mio ambiente di sviluppo locale. Inizializza gcloud CLI.
Prova alcune richieste dell'API REST Google Cloud nel mio ambiente di sviluppo locale. Utilizza uno strumento a riga di comando come curl per chiamare l'API REST.
Prova uno snippet di codice incluso nella documentazione del prodotto. Configura localmente le credenziali predefinite dell'applicazione e installa la libreria client del tuo prodotto nel tuo ambiente locale. La libreria client trova automaticamente le tue credenziali.
Ricevi assistenza per un altro caso d'uso dell'autenticazione. Consulta la pagina Casi d'uso di autenticazione.
Consulta un elenco dei prodotti forniti da Google nello spazio di gestione di identità e accessi. Consulta la pagina relativa ai prodotti per la gestione di identità e accessi di Google.

Scegli 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, strumenti che supportano Credenziali predefinite dell'applicazione (ADC) come Terraform o richieste REST, utilizza il seguente diagramma per scegliere un metodo di autenticazione:

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

Questo diagramma illustra le seguenti domande:

  1. Stai eseguendo il codice in un ambiente di sviluppo per utente singolo, ad esempio la tua workstation, Cloud Shell o un'interfaccia desktop virtuale?
    1. In caso affermativo, passa alla domanda 4.
    2. In caso contrario, passa alla domanda 2.
  2. Stai eseguendo il codice in Google Cloud?
    1. In caso affermativo, passa alla domanda 3.
    2. In caso contrario, passa alla domanda 5.
  3. Stai eseguendo 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, esegui l'identità di un account di servizio con credenziali utente.
  5. Il carico di lavoro esegue l'autenticazione con un provider di identità esterno che supporta la federazione delle identità per i carichi di lavoro?
    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 cloud provider 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. Consulta la documentazione per il tuo ambiente e il caso d'uso per maggiori dettagli.

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, in genere 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 granulari per ridurre i rischi in caso di compromissione del token. Puoi trovare l'elenco degli ambiti accettati da un metodo API nelle pagine di riferimento dell'API della 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 disponibili queste credenziali per le librerie client di Cloud e le librerie client delle API di Google. Quando utilizzi ADC, il tuo codice può essere eseguito in un ambiente di sviluppo o di produzione senza modificare il modo in cui l'applicazione esegue l'autenticazione ai servizi e alle API Google Cloud.

Se stai scrivendo codice che deve utilizzare i servizi Google Cloud, dovresti utilizzare ADC quando possibile. L'uso di ADC può semplificare il processo di sviluppo, perché consente di utilizzare lo stesso codice di autenticazione in diversi ambienti.

Prima di poter utilizzare ADC, devi fornire le tue credenziali ad ADC, in base a dove vuoi che venga eseguito il codice. ADC individua automaticamente le credenziali e riceve un token in background, consentendo al tuo codice di autenticazione di essere eseguito in diversi ambienti senza modifiche. Ad esempio, la stessa versione del codice può essere autenticata con le API di Google Cloud quando viene eseguita su una workstation di sviluppo o su Compute Engine.

Le tue credenziali gcloud non corrispondono a quelle che fornisci ad ADC utilizzando gcloud CLI. Per maggiori informazioni, consulta Configurazione dell'autenticazione gcloud CLI e configurazione ADC.

Terminologia

I termini riportati di seguito sono importanti 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 che consente di determinare se l'entità o l'applicazione che tenta di accedere a una risorsa è stata autorizzata per quel livello di accesso.

Credenziali

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

Per l'autenticazione, le credenziali sono un oggetto digitale che fornisce una 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 password e soddisfi qualsiasi requisito di autenticazione a due fattori come prova che l'account appartiene effettivamente a te e che non sia stato soggetto a spoofing da parte di un utente malintenzionato.

I token vengono talvolta denominati credenziali, ma in questa documentazione vengono utilizzati come oggetto digitale che dimostra che il chiamante ha fornito le credenziali corrette, ma non sono credenziali.

Il tipo di credenziale che devi fornire dipende dal metodo di autenticazione. Nella console Google Cloud è possibile creare i seguenti tipi di credenziali:

  • Chiavi API

    A differenza delle altre credenziali, le chiavi API non identificano un'entità. Le chiavi API forniscono un progetto Google Cloud ai fini della fatturazione e delle quote.

    Molte API di Google non accettano chiavi API. Per ulteriori informazioni sulle chiavi API, consulta l'articolo Chiavi API.

  • ID client OAuth

    Gli ID client OAuth vengono utilizzati per identificare un'applicazione in Google Cloud. Ciò è necessario quando vuoi accedere a risorse di proprietà dei tuoi utenti finali, noto anche come 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 entità: account utente e account di servizio.

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

Account utente

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

Gli account utente sono 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 eseguire l'autenticazione 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 umano. Forniscono un modo per gestire l'autenticazione e l'autorizzazione quando un essere umano non è direttamente coinvolto, ad esempio quando un'applicazione ha bisogno di accedere alle risorse di Google Cloud. Gli account di servizio sono gestiti da IAM.

Il seguente elenco fornisce alcuni metodi per utilizzare un account di servizio per eseguire l'autenticazione nelle API e nei servizi Google, in ordine decrescente. Per maggiori informazioni, vedi Scegliere il metodo di autenticazione giusto per il proprio caso d'uso in questa pagina.

Per una panoramica dei modi per configurare le identità dei carichi 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 il chiamante ha fornito le credenziali appropriate che sono state scambiate per il token. Il token contiene informazioni sull'identità dell'entità che effettua la richiesta e sul tipo di accesso per cui sono autorizzati a eseguire.

I token possono essere considerati come chiavi di hotel. Quando fai il check-in in un hotel e presenti la documentazione appropriata alla reception dell'hotel, 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 a un'altra stanza 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 maggiori informazioni, consulta la sezione Tipi di token.

Carico di lavoro e forza lavoro

I prodotti di identità e accesso 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 carico di lavoro per l'accesso programmatico e forza lavoro per l'accesso degli utenti.

La Federazione delle identità per i carichi di lavoro consente di fornire l'accesso a carichi di lavoro on-premise o multi-cloud senza dover creare e gestire le chiavi degli account di servizio.

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

Passaggi successivi