Questo documento ti aiuta a comprendere alcuni concetti chiave dell'autenticazione e dove ricevere assistenza per l'implementazione o la risoluzione dei problemi di autenticazione. La documentazione principale sull'autenticazione è incentrata sui servizi Google Cloud, ma l'elenco di casi d'uso di autenticazione e il materiale introduttivo in questa pagina includono anche i casi d'uso per altri prodotti Google.
Introduzione
L'autenticazione è il processo tramite il quale la tua identità viene confermata mediante l'uso di un qualche tipo di credenziale. L'autenticazione serve a dimostrare la tua identità.
Google offre molti servizi e API, che richiedono l'autenticazione per l'accesso. Google fornisce inoltre una serie di servizi che ospitano applicazioni scritte dai nostri clienti; che devono anche determinare l'identità degli utenti.
Come ricevere assistenza per l'autenticazione
Ho intenzione di… | Informazioni |
---|---|
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 Cloud. |
Autenticazione a un'applicazione in esecuzione su Cloud Run o Cloud Functions. | Procurati un token ID OpenID Connect (OIDC) e forniscilo alla tua richiesta. |
Implementare l'autenticazione utente per un'applicazione che accede ai servizi e alle risorse di Google o Google Cloud. | Consulta Autentica gli utenti dell'applicazione per un confronto delle opzioni. |
Prova alcuni comandi gcloud o le chiamate API Google Cloud REST nel mio ambiente di sviluppo locale.
|
Inizializza l'interfaccia a riga di comando gcloud e utilizza uno strumento a riga di comando come curl per chiamare l'API REST.
|
Prova con uno snippet di codice incluso nella documentazione del prodotto. | Configura le credenziali predefinite dell'applicazione in locale e installa la libreria client del prodotto nel tuo 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 di autenticazione. |
Visualizza un elenco dei prodotti forniti da Google nello spazio di gestione di identità e accessi. | Consulta la pagina dei prodotti di gestione di identità e accessi di Google. |
Tipi di autenticazione
L'autenticazione è necessaria per accedere alla maggior parte delle risorse e delle applicazioni. Questa documentazione supporta i professionisti tecnici che creano il codice dell'applicazione con uno dei seguenti obiettivi:
OAuth 2.0
Le API di Google implementano ed estendono il framework OAuth 2.0. Il framework OAuth 2.0 definisce vari "flussi" o approcci di autenticazione. In generale, l'applicazione presenta le credenziali, che rappresentano un elemento principale (un utente o un account di servizio), in un modulo intermedio denominato Server di autorizzazione. Il server di autorizzazione risponde con un token, che l'applicazione può utilizzare per l'autenticazione con le risorse di accesso e servizio. Il token include uno o più ambiti, che riflettono il tipo di accesso consentito all'applicazione. L'applicazione presenta quindi il token al server delle risorse per ottenere l'accesso alle risorse.
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 per i servizi Google Cloud, in genere utilizzi un ambito che includa 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 è in esecuzione in un ambiente in cui la sicurezza del token è un problema, ad esempio un'app per dispositivi mobili. In questo scenario, puoi utilizzare gli ambiti granulari per ridurre il rischio nel caso di un token compromesso. Gli ambiti OAuth 2.0 vengono utilizzati anche per autorizzare l'accesso ai dati utente.
Credenziali predefinite dell'applicazione
ADC (Application Default Credentials) è una strategia utilizzata dalle librerie di autenticazione di Google 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 tuo codice può essere eseguito in un ambiente di sviluppo o di produzione senza modificare la modalità di autenticazione dell'applicazione ai servizi e alle API di Google Cloud.
Se stai scrivendo codice che deve utilizzare i servizi Google Cloud, devi usare l'ADC quando possibile. L'utilizzo di ADC può semplificare il tuo processo di sviluppo, perché ti consente di utilizzare lo stesso codice di autenticazione in diversi ambienti.
Prima di poter utilizzare ADC, devi fornire le tue credenziali a ADC, in base a dove vuoi eseguire il tuo codice. ADC identifica automaticamente le credenziali e ottiene un token in background, consentendo l'esecuzione del codice di autenticazione in ambienti diversi senza modifiche. Ad esempio, la stessa versione del tuo codice potrebbe autenticarsi con le API di Google Cloud durante l'esecuzione su una workstation di sviluppo o su Compute Engine.
Le credenziali gcloud non corrispondono a quelle fornite ad ADC utilizzando l'interfaccia a riga di comando gcloud. Per ulteriori informazioni, consulta Credenziali ADC e gcloud.
Terminologia
I termini riportati di seguito sono importanti da capire 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 con cui si stabilisce se l'entità o l'applicazione che tenta di accedere a una risorsa è stata autorizzata per quel livello di accesso.
Credenziali
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 Google, fornisci la password e soddisfi i requisiti di autenticazione a due fattori come prova che l'account appartiene a te e che non sei vittima di spoofing.
I token vengono talvolta denominati credenziali, ma per questa documentazione vengono indicati come oggetti digitali che dimostrano che il chiamante ha fornito le credenziali corrette, ma non lo sono.
Il tipo di credenziale che devi fornire dipende dal metodo di 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 entità. Le chiavi API forniscono un progetto Google Cloud per la fatturazione e la quota.
Molte API di 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 in Google. Questo è necessario quando vuoi accedere a risorse di proprietà dei tuoi utenti finali, chiamate anche OAuth a tre vie (3LO). Per scoprire di più su come ottenere e utilizzare un ID client OAuth, consulta la pagina Configurare OAuth 2.0.
Entità
Un'entità è un'identità che può essere concessa all'accesso a una risorsa. Per l'autenticazione, le API di Google supportano due tipi di entità: account utente e account di servizio.
La possibilità di utilizzare un account utente o un account di servizio per eseguire l'autenticazione dipende dal caso d'uso. Puoi utilizzarli entrambi, ognuno in diverse fasi 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 la federazione delle identità della forza lavoro.
Con un account utente, puoi autenticarti con le API e i servizi Google nei seguenti modi:
- Utilizza l'interfaccia alla gcloud CLI per configurare le Credenziali predefinite dell'applicazione'applicazione.
- Utilizza l'interfaccia a riga di comando gcloud per generare token di accesso.
- Utilizzare le credenziali utente per rubare l'identità di un account di servizio.
- Utilizza le tue credenziali utente per accedere a Google Cloud CLI, quindi utilizza lo strumento per accedere ai servizi Google Cloud.
Account di servizio
Gli account di servizio sono account che non rappresentano un utente umano. Offrono un modo per gestire l'autenticazione e l'autorizzazione quando un essere umano non è direttamente coinvolto, ad esempio quando un'applicazione deve accedere alle risorse di Google Cloud. Gli account di servizio sono gestiti da IAM.
L'elenco che segue fornisce alcuni metodi per utilizzare un account di servizio per l'autenticazione nelle API e nei servizi Google, dal più sicuro al meno sicuro.
Collega un account di servizio gestito dall'utente alla risorsa e usa 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 impersonare un altro account di servizio.
La rappresentazione dell'account di servizio ti consente di concedere temporaneamente più privilegi a un account di servizio. La concessione temporanea di privilegi aggiuntivi consente all'account di servizio di eseguire l'accesso richiesto senza dover acquisire più privilegi.
Utilizza l'account di servizio predefinito.
L'utilizzo dell'account di servizio predefinito non è consigliato, perché per impostazione predefinita l'account di servizio predefinito ha privilegi elevati, il che costituisce una violazione del principio del privilegio minimo.
Utilizza una chiave dell'account di servizio.
Le chiavi degli account di servizio creano rischi inutili e devono essere evitate ogni volta che siano possibili.
Token
Per l'autenticazione e l'autorizzazione, un token è un oggetto digitale che indica che il chiamante ha fornito le credenziali corrette scambiate con quel token. Il token contiene informazioni sull'identità dell'entità che effettua la richiesta e sul tipo di accesso da autorizzare.
I token possono essere considerati come chiavi di hotel. Quando fai il check-in in un hotel e invii la documentazione corretta alla reception dell'hotel, riceverai una chiave che ti consente di accedere a risorse specifiche. Ad esempio, la chiave potrebbe darti accesso alla tua stanza e all'ascensore, ma non a qualsiasi altra stanza 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, consulta Tipi di token.
Carico di lavoro e forza lavoro
I prodotti di identità e accesso Google Cloud consentono l'accesso ai servizi e alle risorse Google, sia per l'accesso programmatico che per gli utenti umani. Google utilizza i termini workload per l'accesso programmatico e workforce per l'accesso degli utenti.
La federazione delle identità per i carichi di lavoro ti consente di accedere ai carichi di lavoro in esecuzione all'esterno di Google senza dover creare e gestire le chiavi degli 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, ad esempio un gruppo di utenti, come dipendenti, partner e collaboratori, utilizzando IAM, in modo che gli utenti possano accedere ai servizi Google Cloud.
Passaggi successivi
- Vedi altri casi d'uso di autenticazione.
- Scopri di più su come i servizi Google Cloud usano IAM per controllare l'accesso alle risorse Google Cloud.
- Scopri come Credenziali predefinite dell'applicazione dell'applicazione e come puoi configurarle per diversi ambienti di sviluppo.