Questa pagina descrive come utilizzare le librerie client per accedere alle API di Google.
Le librerie client semplificano l'accesso alle Google Cloud API utilizzando un linguaggio supportato. Puoi utilizzare Google Cloud le API direttamente inviando richieste non elaborate al server, ma le librerie client offrono 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 una fonte esterna (ad esempio un cliente), consulta i requisiti di sicurezza per l'utilizzo di configurazioni delle credenziali da una fonte esterna.
Utilizzare le credenziali predefinite dell'applicazione con le librerie client
Per utilizzare le Credenziali predefinite dell'applicazione per autenticare l'applicazione, devi prima configurare le credenziali predefinite dell'applicazione per l'ambiente in cui è in esecuzione l'applicazione. Quando utilizzi la libreria client per creare un client, la libreria controlla automaticamente e utilizza le credenziali che hai fornito ad ADC per autenticarti alle API utilizzate dal tuo codice. L'applicazione non deve autenticare o gestire esplicitamente i token; questi requisiti vengono gestiti automaticamente dalle librerie di autenticazione.
Per un ambiente di sviluppo locale, puoi configurare l'ADC con le tue credenziali utente o con l'usurpazione dell'identità dell'account di servizio utilizzando gcloud CLI. Per gli ambienti di produzione, configura l'ADC collegando un account di servizio.
Esempio di creazione di un client
I seguenti esempi di codice creano un client per il servizio Cloud Storage. È probabile che il tuo codice abbia bisogno di 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 i seguenti esempi, devi completare i seguenti passaggi:
Vai
Java
Node.js
PHP
Python
Ruby
Utilizzare le chiavi API con le librerie client
Puoi utilizzare le chiavi API solo con le librerie client per le API che le accettano. Inoltre, la chiave API non deve avere una limitazione che ne impedisca l'utilizzo per l'API.
Per ulteriori informazioni 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 chiavi API, per dimostrare 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.
Quando utilizzi le chiavi API nelle tue applicazioni, assicurati che vengano protette sia durante lo stoccaggio sia durante la trasmissione. L'esposizione pubblica delle chiavi API può portare ad addebiti imprevisti sul tuo account. Per ulteriori informazioni, consulta Best practice per la gestione delle chiavi API.
Requisiti di sicurezza per l'utilizzo di configurazioni delle credenziali da un'origine esterna
In genere, le configurazioni delle credenziali vengono generate utilizzando i comandi gcloud CLI o la console Google Cloud. Ad esempio, puoi utilizzare lgcloud CLI per generare un file ADC locale o un file di configurazione di accesso. Analogamente, puoi utilizzare la console Google Cloud per creare e scaricare una chiave dell'account di servizio.
Per alcuni casi d'uso, tuttavia, le configurazioni delle credenziali ti vengono fornite da un'entità esterna. Queste configurazioni delle credenziali sono destinate a essere utilizzate per autenticarsi nelle API di Google.
Alcuni tipi di configurazioni delle credenziali includono endpoint e percorsi file, che vengono utilizzati dalle librerie di autenticazione per acquisire un token. Quando accetti configurazioni delle credenziali da un'origine esterna, devi convalidare la configurazione prima di utilizzarla. Se non convalidi la configurazione, un attore malintenzionato potrebbe utilizzare le credenziali per compromettere i tuoi sistemi e dati.
Convalida le configurazioni delle credenziali da origini esterne
La modalità di convalida delle credenziali esterne dipende dai tipi di credenziali accettati dalla tua applicazione.
Convalida le chiavi degli account di servizio
Se la tua applicazione accetta solo chiavi dell'account di servizio, utilizza un caricatore delle credenziali specifico per le chiavi dell'account di servizio, come mostrato negli esempi seguenti. Il caricatore delle credenziali specifico per tipo analizza solo i campi presenti per le chiavi del service account, che non espongono vulnerabilità.
C#
var saCredential = ServiceAccountCredential.FromServiceAccountData(stream);
C++
auto cred = google::cloud::MakeServiceAccountCredentials(json)
Java
ServiceAccountCredentials credentials =
ServiceAccountCredentials.fromJson(json, new HttpTransportFactory());
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 tipo, convalida la credenziale confermando che il valore per il campo type
sia service_account
. Se il valore per il campo type
è un altro valore, non utilizzare la chiave dell'account di servizio.
Convalida 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 i file delle credenziali ADC, i file delle credenziali della federazione delle identità per i carichi di lavoro o i file di configurazione dell'accesso della federazione delle identità della forza lavoro.
La tabella seguente elenca i campi che devi convalidare, se sono presenti nelle tue 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 al fine di generare un token di accesso per l'account di servizio di cui viene eseguita l'impersonificazione. | https://iamcredentials.googleapis.com.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.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'endpoint
token_url .
|
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'endpoint
token_url .
|
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 o un comando eseguibile che restituisce un token esterno. Dovresti riconoscere questo comando e convalidare 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.