Questo documento ti aiuta a comprendere alcuni metodi e concetti di autenticazione chiave e dove trovare assistenza per l'implementazione o la risoluzione dei problemi di autenticazione. La documentazione sull'autenticazione si concentra principalmente sui Google Cloud servizi, ma l'elenco dei casi d'uso dell'autenticazione e il materiale introduttivo di 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'utilizzo di un qualche tipo di credenziale. L'autenticazione consiste nel dimostrare che la tua identità è quella che dichiari.
Google fornisce molte API e servizi che richiedono l'autenticazione per l'accesso. Google fornisce anche una serie di servizi che ospitano applicazioni scritte dai nostri clienti; anche queste applicazioni devono determinare l'identità dei propri utenti.
Le API di Google implementano ed estendono il framework OAuth 2.0.
Come ricevere assistenza per l'autenticazione
Ho intenzione di... | Informazioni |
---|---|
Autenticati in Vertex AI in modalità express (anteprima). | Utilizza la chiave API creata per te durante la procedura di accesso per autenticarti in Vertex AI. Per ulteriori informazioni, consulta Panoramica di Vertex AI in modalità rapida. |
Eseguire l'autenticazione a un servizio Google Cloud dalla mia applicazione utilizzando un linguaggio di programmazione di alto livello. | Configura le credenziali predefinite dell'applicazione e poi utilizza una delle librerie client di Cloud. |
Eseguire l'autenticazione a 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 ai servizi e alle risorse di Google o Google Cloud . | Per un confronto delle opzioni, vedi Autenticare gli utenti dell'applicazione. |
Prova alcuni comandi gcloud nel mio ambiente di sviluppo locale.
|
Inizializza gcloud CLI. |
Prova alcune richieste dell'API REST nel mio ambiente di sviluppo locale. Google Cloud |
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 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 dell'autenticazione. | Consulta la pagina Casi d'uso dell'autenticazione. |
Visualizza un elenco dei prodotti forniti da Google nello spazio di gestione dell'identità e dell'accesso. | Consulta la pagina Prodotti Google per la gestione delle identità e degli accessi. |
Scegliere il metodo di autenticazione giusto per il tuo caso d'uso
Quando accedi ai servizi Google Cloud utilizzando Google Cloud CLI, Cloud Client Libraries, strumenti che supportano le Credenziali predefinite dell'applicazione (ADC) come Terraform o richieste REST, utilizza il seguente diagramma per scegliere un metodo di autenticazione:
Questo diagramma ti guida attraverso le seguenti domande:
-
Stai eseguendo il codice in un ambiente di sviluppo per un singolo utente, ad esempio la tua workstation,
Cloud Shell o un'interfaccia desktop virtuale?
- In caso affermativo, vai alla domanda 4.
- In caso contrario, vai alla domanda 2.
- Stai eseguendo il codice in Google Cloud?
- In caso affermativo, vai alla domanda 3.
- In caso contrario, vai alla domanda 5.
- Esegui container in Google Kubernetes Engine?
- In caso affermativo, utilizza Workload Identity Federation per GKE per collegare i service account ai pod Kubernetes.
- In caso contrario, collega un service account alla risorsa.
-
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.
- In caso contrario, esegui l'autenticazione con le credenziali utente.
- In caso affermativo, assumi l'identità di un account di servizio con le credenziali utente.
-
Il tuo workload esegue l'autenticazione con un provider di identità esterno che supporta la
federazione delle identità per i workload?
- In caso affermativo, configura la federazione delle identità per i workload per consentire alle applicazioni in esecuzione on-premise o su altri cloud provider di utilizzare un account di servizio.
- In caso contrario, crea una account di servizio account.
Metodi di autorizzazione per i servizi Google Cloud
L'autorizzazione per Google Cloud è gestita principalmente da Identity and Access Management (IAM). IAM offre un controllo granulare per entità e per risorsa.
Puoi applicare un altro livello di autorizzazione con gli ambiti OAuth 2.0. Quando ti autentichi a un servizio Google Cloud , puoi utilizzare un ambito globale che autorizza l'accesso a tutti i servizi Google Cloud (https://www.googleapis.com/auth/cloud-platform
) oppure, se un servizio lo supporta, puoi limitare l'accesso con un ambito più limitato. Gli ambiti limitati possono
aiutare a ridurre il rischio se il codice viene eseguito in ambienti in cui i token compromessi
potrebbero essere un problema, ad esempio le app mobile.
Gli ambiti di autorizzazione accettati da un metodo API sono elencati nella documentazione di riferimento dell'API per ogni servizio Google Cloud .
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 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 modificare il modo in cui l'applicazione esegue l'autenticazione per Google Cloud servizi e API.
L'utilizzo di ADC può semplificare il processo di sviluppo, perché ti consente di utilizzare lo stesso codice di autenticazione in una serie di ambienti. Se utilizzi un servizio in modalità rapida, non devi utilizzare ADC.
Prima di poter utilizzare ADC, devi fornire le tue credenziali ad ADC, in base a dove vuoi che venga eseguito il codice. Le credenziali predefinite dell'applicazione individuano automaticamente le credenziali e recuperano 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 APIGoogle Cloud quando viene eseguita su una workstation di sviluppo o su Compute Engine.
Le tue credenziali gcloud non sono le stesse che fornisci ad ADC utilizzando gcloud CLI. Per ulteriori informazioni, consulta la pagina Configurazione dell'autenticazione dell'interfaccia a riga di comando gcloud CLI e configurazione di ADC.
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à per la 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 che l'account ti appartiene effettivamente e che non sei vittima di spoofing da parte di un malintenzionato.
I token non sono credenziali. Si tratta di un oggetto digitale che dimostra che il chiamante ha fornito le credenziali corrette.
Il tipo di credenziali che devi fornire dipende da cosa stai autenticando.
Nella consoleGoogle Cloud possono essere creati i seguenti tipi di credenziali:
Chiavi API
Puoi utilizzare le chiavi API con le API che le accettano per accedere all'API. Le chiavi API non associate a un account di servizio forniscono un progetto, che viene utilizzato per la fatturazione e le quote. Se la chiave API è associata a un service account, fornisce anche l'identità e l'autorizzazione del account di serviziont (anteprima).
Per ulteriori informazioni sulle chiavi API, consulta la sezione Chiavi API. Per ulteriori informazioni sulle chiavi API associate a un account di servizio, consulta le Domande frequenti sulla modalità express di Google Cloud.
ID client OAuth
Gli ID client OAuth vengono utilizzati per identificare un'applicazione in Google Cloud. Questo è necessario quando vuoi accedere alle risorse di proprietà dei tuoi utenti finali, chiamato 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 del service account identificano un'entità (il account di servizio) e il progetto associato al account di servizio.
Puoi anche creare credenziali utilizzando gcloud CLI. Queste credenziali includono i seguenti tipi:
- File ADC locali
- Configurazioni delle credenziali utilizzate dalla federazione delle identità per i workload
- Configurazioni delle credenziali utilizzate dalla federazione delle identità per la forza lavoro
Entità
Un'entità è un'identità a cui può essere concesso l'accesso a una risorsa. Per l'autenticazione, le API di Google supportano due tipi di entità: account utente e service account.
L'utilizzo di un account utente o di un account di servizio per l'autenticazione dipende dal caso d'uso. Potresti 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 la federazione delle identità per la forza lavoro.
Con un account utente, puoi autenticarti per accedere alle API e ai servizi Google nei seguenti modi:
- Utilizza gcloud CLI per configurare le Credenziali predefinite dell'applicazione (ADC).
- Utilizza le tue credenziali utente per accedere a Google Cloud CLI, quindi utilizza lo strumento per accedere ai servizi Google Cloud .
- Utilizza le tue credenziali utente per assumere l'identità di un service account.
- Utilizza le tue credenziali utente per accedere a Google Cloud CLI, quindi utilizza lo strumento per generare token di accesso.
Per una panoramica dei modi per configurare le identità per gli utenti in Google Cloud, vedi 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 non è coinvolta direttamente 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 l'autenticazione alle API e ai servizi Google, in ordine di sicurezza decrescente. Per saperne di più, vedi Scegliere il metodo di autenticazione giusto per il tuo caso d'uso in questa pagina.
Collega un account di servizio gestito dall'utente alla risorsa e utilizza ADC per l'autenticazione.
Questo è il modo consigliato per autenticare il codice di produzione in esecuzione su Google Cloud.
Utilizzare un account di servizio per rappresentare un altro service account.
L'impersonificazione dei service account consente di concedere temporaneamente più privilegi a un account di servizio. La concessione di privilegi aggiuntivi su base temporanea consente alaccount di serviziot di eseguire l'accesso richiesto senza dover acquisire in modo permanente ulteriori privilegi.
Utilizza la federazione delle identità per i carichi di lavoro per autenticare i carichi di lavoro eseguiti on-premise o su un altro cloud provider.
Utilizza il service account predefinito.
L'utilizzo dell'account di servizio predefinito non è consigliato perché per impostazione predefinita l'account di servizio predefinito dispone di privilegi elevati, il che viola il principio del privilegio minimo.
Per una panoramica dei modi per configurare le identità dei carichi di lavoro, inclusi i service account, 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 corrette che sono state scambiate con quel token. Il token contiene informazioni sull'identità dell'entità che effettua la richiesta e sul tipo di accesso che è autorizzata a effettuare.
I token possono essere considerati come chiavi di hotel. Quando fai il check-in in un hotel e presenti la documentazione corretta alla reception, ricevi una chiave che ti dà accesso a risorse specifiche dell'hotel. Ad esempio, la chiave potrebbe darti accesso alla tua camera e all'ascensore per gli ospiti, ma non a nessun'altra camera o all'ascensore di servizio.
Ad eccezione delle chiavi API, le API di Google non supportano direttamente le credenziali. La tua applicazione deve acquisire o generare un token e fornirlo all'API. Esistono diversi tipi di token. Per maggiori informazioni, vedi Tipi di token.
Workload e forza lavoro
I prodottiGoogle Cloud identity and access consentono l'accesso a servizi e risorse 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.Google Cloud
La federazione delle identità dei carichi di lavoro 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à per la 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 collaboratori, utilizzando IAM, in modo che gli utenti possano accedere ai serviziGoogle Cloud .
Passaggi successivi
- Scopri di più su come i servizi Google Cloud utilizzano IAM per controllare l'accesso alle risorse Google Cloud .
- Scopri come Credenziali predefinite dell'applicazione dell'applicazione e come puoi configurarle per una serie di ambienti di sviluppo.