Le librerie client semplificano l'accesso alle Google Cloud API utilizzando un linguaggio supportato. Puoi utilizzare Google Cloud API direttamente effettuando delle richieste non elaborate al server, ma le librerie client forniscono semplificazioni che riducono notevolmente la quantità di codice da scrivere. Questo è particolarmente vero per l'autenticazione, perché le librerie client supportano le credenziali predefinite dell'applicazione (ADC).
Se accetti configurazioni delle credenziali (JSON, file o stream) da un origine esterna (ad esempio, un cliente), esamina i requisiti di sicurezza quando utilizzi le configurazioni delle credenziali da un'origine esterna.
Utilizzare le credenziali predefinite dell'applicazione con le librerie client
Per utilizzare le credenziali predefinite dell'applicazione per autenticare la tua applicazione, devi prima configurare ADC per l'ambiente in cui è in esecuzione l'applicazione. Quando utilizzi la libreria client per creare un client, la libreria client controlla e utilizza automaticamente le credenziali che hai fornito ad ADC per l'autenticazione alle API utilizzate dal tuo codice. La tua applicazione non deve autenticare esplicitamente o gestire i token; questi requisiti vengono gestiti automaticamente dalle librerie di autenticazione.
Per un ambiente di sviluppo locale, puoi configurare ADC con le credenziali utente o con account di servizio account utilizzando gcloud CLI. Per gli ambienti di produzione, configuri ADC collegando un service account.
Esempio di creazione di un client
I seguenti esempi di codice creano un client per il servizio Cloud Storage. È probabile che il tuo codice richieda client diversi; questi esempi hanno lo scopo di mostrare come creare un client e utilizzarlo senza alcun codice per l'autenticazione esplicita.
Prima di poter eseguire gli esempi seguenti, devi completare i seguenti passaggi:
Vai
Java
Node.js
PHP
Python
Ruby
Utilizzare le chiavi API con le librerie client
Puoi utilizzare una chiave API solo con le librerie client per le API che accettano chiavi API. Inoltre, la chiave API non deve avere una limitazione API che ne impedisca l'utilizzo per l'API.
Per saperne di più sulle chiavi API create in modalità express, consulta le Domande frequenti sulla modalità express di Google Cloud.
Questo esempio utilizza l'API Cloud Natural Language, che accetta le chiavi API, per mostrare come fornire una chiave API alla libreria.
C#
Per eseguire questo esempio, devi installare la libreria client Natural Language.
C++
Per eseguire questo esempio, devi installare la libreria client Natural Language.
Vai
Per eseguire questo esempio, devi installare la libreria client Natural Language.
Node.js
Per eseguire questo esempio, devi installare la libreria client Natural Language.
Python
Per eseguire questo esempio, devi installare la libreria client Natural Language.
Ruby
Per eseguire questo esempio, devi installare la libreria client Natural Language.
Quando utilizzi le chiavi API nelle tue applicazioni, assicurati che siano protette durante l'archiviazione e la trasmissione. L'esposizione pubblica delle chiavi API può comportare addebiti imprevisti sul tuo account. Per saperne di più, consulta Best practice per la gestione delle chiavi API.
Requisiti di sicurezza quando si utilizzano configurazioni delle credenziali da un'origine esterna
In genere, le configurazioni delle credenziali vengono generate utilizzando i comandi gcloud CLI o la Google Cloud console. Ad esempio, puoi utilizzare gcloud CLI per generare un file ADC locale o un file di configurazione di accesso. Allo stesso modo, puoi utilizzare la Google Cloud console per creare e scaricare una chiave del account di servizio.
Tuttavia, per alcuni casi d'uso, le configurazioni delle credenziali vengono fornite da un'entità esterna; queste configurazioni delle credenziali sono destinate all'autenticazione alle API Google.
Alcuni tipi di configurazioni delle credenziali includono endpoint e percorsi di file, che le librerie di autenticazione utilizzano per acquisire un token. Quando accetti le configurazioni delle credenziali da un'origine esterna, devi convalidare la configurazione prima di utilizzarla. Se non convalidi la configurazione, un utente malintenzionato potrebbe utilizzare le credenziali per compromettere i tuoi sistemi e i tuoi dati.
Convalidare le configurazioni delle credenziali da origini esterne
La modalità di convalida delle credenziali esterne dipende dai tipi di credenziali accettate dalla tua applicazione.
Convalidare le chiavi dei account di servizio
Se la tua applicazione accetta solo le chiavi dei account di servizio, utilizza un caricatore di credenziali specifico per le chiavi dei account di servizio, come mostrato negli esempi seguenti. Il caricatore di credenziali specifico per il tipo analizza solo i campi presenti per le chiavi dei service account, che non espongono vulnerabilità.
C#
var saCredential = CredentialFactory.FromStream<ServiceAccountCredential>(stream);
C++
auto cred = google::cloud::MakeServiceAccountCredentials(json)
Java
ServiceAccountCredentials credentials =
ServiceAccountCredentials.fromStream(credentialsStream);
Node.js
const keys = JSON.parse(json_input)
const authClient = JWT.fromJSON(keys);
PHP
$cred = new Google\Auth\Credentials\ServiceAccountCredentials($scope, $jsonKey);
Python
cred = service_account.Credentials.from_service_account_info(json_data)
Ruby
creds = Google::Auth::ServiceAccountCredentials.make_creds(json_key_io: json_stream)
Se non puoi utilizzare un caricatore di credenziali specifico per il tipo, convalida le credenziali confermando che il valore del campo type sia service_account. Se il valore del campo type è un altro valore, non utilizzare la chiave del account di servizio.
Convalidare altre configurazioni delle credenziali
Se la tua applicazione accetta qualsiasi tipo di credenziale oltre a una chiave del account di servizio, devi eseguire una verifica aggiuntiva. Esempi di altri tipi di configurazioni delle credenziali includono file di credenziali ADC, file di credenziali della federazione delle identità per i carichi di lavoro, o file di configurazione di accesso della federazione delle identità per la forza lavoro.
La tabella seguente elenca i campi da convalidare, se presenti nelle credenziali. Non tutti questi campi sono presenti per tutte le configurazioni delle credenziali.
| Campo | Finalità | Valore previsto |
|---|---|---|
service_account_impersonation_url |
Le librerie di autenticazione utilizzano questo campo per accedere a un endpoint per generare un token di accesso per il account di servizio di cui viene simulata l'identità. | https://iamcredentials.googleapis.com/v1/projects/-/serviceAccounts/service account email:generateAccessToken |
token_url |
Le librerie di autenticazione inviano un token esterno a questo endpoint per scambiarlo con un token di accesso federato. | https://sts.googleapis.com/v1/token |
credential_source.file |
Le librerie di autenticazione leggono un token esterno dal file nella
posizione specificata da questo campo e lo inviano all'
token_url endpoint.
|
Il percorso di un file contenente un token esterno. Dovresti riconoscere questo percorso. |
credential_source.url |
Un endpoint che restituisce un token esterno. Le librerie di autenticazione
inviano una richiesta a questo URL e inviano la risposta all'
token_url endpoint.
|
Uno dei seguenti elementi:
|
credential_source.executable.command |
Se la variabile di ambiente GOOGLE_EXTERNAL_ACCOUNT_ALLOW_EXECUTABLES
è impostata su 1, le librerie di autenticazione
eseguono questo comando o file eseguibile.
|
Un file eseguibile o un comando che restituisce un token esterno. Dovresti riconoscere questo comando e verificare che sia sicuro. |
credential_source.aws.url |
Le librerie di autenticazione inviano una richiesta a questo URL per recuperare un token di sicurezza AWS. |
Uno di questi valori esatti:
|
credential_source.aws.region_url |
Le librerie di autenticazione inviano una richiesta a questo URL per recuperare la regione AWS attiva. |
Uno di questi valori esatti:
|
credential_source.aws.imdsv2_session_token_url |
Le librerie di autenticazione inviano una richiesta a questo URL per recuperare il token di sessione AWS. |
Uno di questi valori esatti:
|
Passaggi successivi
- Scopri di più sulle credenziali predefinite dell'applicazione.
- Scopri di più sulle chiavi API.
- Consulta una panoramica dei metodi di autenticazione.