Questa pagina descrive alcuni problemi comuni che potresti riscontrare durante l'utilizzo Credenziali predefinite dell'applicazionee (ADC).
Per informazioni su come funzionano le credenziali ADC, incluso dove vengono trovate le credenziali, consulta Come funzionano le credenziali predefinite dell'applicazione.
Le credenziali utente non funzionano
Se la tua richiesta API restituisce un messaggio di errore relativo alle credenziali utente non supportate da questa API, all'API non abilitata nel progetto o a nessun progetto di quota impostato, esamina le seguenti informazioni.
Esistono due tipi di Google Cloud API:
API basate sulle risorse, che utilizzano il progetto associato alle risorse a cui si accede per la fatturazione e la quota.
API basate sul client, che utilizzano il progetto associato al client che accede alle risorse per la fatturazione e la quota.
Quando fornisci le credenziali utente per l'autenticazione a un'API basata su client, devi specificare il progetto da utilizzare per la fatturazione e la quota. Questo progetto è chiamato progetto quota.
Esistono diversi modi per specificare un progetto di quota, tra cui le seguenti opzioni:
Aggiorna il file ADC per utilizzare un progetto diverso come progetto quota:
gcloud auth application-default set-quota-project YOUR_PROJECT
Se utilizzi gcloud CLI per chiamare l'API, puoi impostare il progetto di quota nella configurazione di gcloud CLI:
gcloud config set billing/quota_project YOUR_PROJECT
Se chiami direttamente l'API REST o RPC, utilizza l'intestazione HTTP
x-goog-user-projectper specificare un progetto di quota in ogni richiesta. Per i dettagli, consulta Impostare il progetto di quota con una richiesta REST.
Per poter designare un progetto come progetto di fatturazione, devi disporre dell'autorizzazione IAM serviceusage.services.use. L'autorizzazione
serviceusage.services.use è inclusa nel ruolo IAM Consumer utilizzo dei servizi. Se non disponi dell'autorizzazione serviceusage.services.use
per qualsiasi progetto, contatta l'amministratore della sicurezza o un proprietario del progetto
che possa assegnarti il ruolo Consumer di utilizzo del servizio nel progetto.
Per saperne di più sui progetti di quota, consulta la panoramica dei progetti di quota. Per informazioni su altri modi per impostare il progetto di quota, vedi Impostare il progetto di quota.
Credenziali non corrette
Se le tue credenziali non sembrano fornire l'accesso che ti aspetti o non vengono trovate, controlla quanto segue:
Se utilizzi gcloud CLI per accedere a Google Cloud in un ambiente locale, assicurati di comprendere quali credenziali stai utilizzando. Quando utilizzi gcloud CLI, utilizzi le credenziali che hai fornito a gcloud CLI utilizzando il comando
gcloud auth login. Non stai utilizzando le credenziali che hai fornito ad ADC. Per ulteriori informazioni su questi due insiemi di credenziali, consulta Configurazione dell'autenticazione con gcloud CLI e configurazione ADC.Assicurati che la variabile di ambiente
GOOGLE_APPLICATION_CREDENTIALSsia impostata solo se utilizzi una chiave dell'account di servizio o un altro file JSON per ADC. Le credenziali indicate dalla variabile di ambiente hanno la precedenza su altre credenziali, incluse quelle per la federazione delle identità per i carichi di lavoro per GKE.Verifica che l'entità che effettua la richiesta disponga dei ruoli IAM richiesti. Se utilizzi le credenziali utente, i ruoli devono essere concessi all'indirizzo email associato all'account utente. Se utilizzi unaccount di serviziot, questo deve disporre dei ruoli richiesti.
Se fornisci una chiave API con la richiesta API, la chiave API ha la precedenza sulle credenziali predefinite dell'applicazione in qualsiasi posizione. Se hai impostato la variabile di ambiente
GOOGLE_APPLICATION_CREDENTIALSe utilizzi una chiave API, l'API potrebbe restituire un avviso che ti informa che le credenziali che hai fornito ad ADC vengono ignorate. Per interrompere l'avviso, annulla l'impostazione della variabile di ambienteGOOGLE_APPLICATION_CREDENTIALS.
Tipo di credenziale non riconosciuto
Se la tua richiesta API restituisce un errore che include Error creating credential
from JSON. Unrecognized credential type, assicurati di utilizzare una credenziale valida. I file ID client non sono supportati per fornire le credenziali per ADC.
Errore restituito per le credenziali locali dalla rappresentazione dell'account di servizio
Le credenziali di un file ADC locale generato utilizzando la simulazione dell'identità account di servizio non sono supportate da tutte le librerie di autenticazione. Se la tua
chiamata restituisce un errore simile a Neither metadata server or valid service
account credentials are found, non puoi utilizzare le credenziali impersonate locali per
questa attività.
Per evitare questo errore, crea il file ADC dalle credenziali utente o esegui il codice in un ambiente in cui è disponibile un server di metadati (ad esempio Compute Engine).
Progetto sconosciuto 764086051850 utilizzato per la richiesta
Il progetto 764086051850 è il progetto utilizzato da gcloud CLI. Se
visualizzi errori di autenticazione che fanno riferimento a questo progetto, stai tentando di utilizzare
un'API basata sul client e non hai impostato sia il progetto sia il progetto quota
per la configurazione.
Per saperne di più, vedi Le credenziali utente non funzionano.
Accesso bloccato quando si utilizzano gli ambiti
Quando tenti di creare un file ADC locale e viene restituito un errore simile a This app
is blocked o Access blocked: Authorization Error, potresti
tentare di utilizzare ambiti non supportati dal
comando di configurazione ADC predefinito. In genere, questo problema è causato
dall'aggiunta di ambiti per applicazioni al di fuori di Google Cloud, come Google
Drive.
Per impostazione predefinita, i token di accesso generati da un file ADC locale creato con le credenziali utente includono
l'
ambito a livello di cloud https://www.googleapis.com/auth/cloud-platform.
Per specificare gli ambiti in modo esplicito, utilizza il
flag --scopes
con il comando gcloud auth application-default login.
Per aggiungere ambiti per servizi esterni a Google Cloud, come Google Drive,
crea un ID client OAuth
e forniscilo al comando gcloud auth application-default login utilizzando il
flag --client-id-file, specificando
gli ambiti con il flag
--scopes.