Perché e quando utilizzare le chiavi API

Questa pagina fornisce informazioni di base su chiavi API e autenticazione: come vengono utilizzate ciascuna chiave, differenze tra questi elementi e scenari in cui dovresti utilizzare le chiavi API.

Le chiavi API sono destinate ai progetti, mentre l'autenticazione è riservata agli utenti

Cloud Endpoints gestisce sia le chiavi API sia gli schemi di autenticazione, come Firebase o Auth0. La differenza principale tra questi due elementi è:

  • Le chiavi API identificano il progetto chiamante, ovvero l'applicazione o il sito, effettuando la chiamata a un'API.

  • I token di autenticazione identificano un utente, ovvero la persona, che utilizza l'app o il sito.

    Panoramica delle chiavi API

Le chiavi API forniscono l'autorizzazione del progetto

Per decidere quale schema è più appropriato, è importante capire quali chiavi API e autenticazione possono essere fornite.

Le chiavi API forniscono

  • Identificazione dei progetti: identifica l'applicazione o il progetto che effettua una chiamata a questa API.

  • Autorizzazione del progetto: controlla se all'applicazione di chiamata è stato concesso l'accesso per chiamare l'API e ha attivato l'API nel suo progetto.

Le chiavi API non sono sicure come token di autenticazione (vedi Sicurezza delle chiavi API), ma identificano l'applicazione o il progetto che chiama un'API. Vengono generati nel progetto che effettua la chiamata e puoi limitarne l'utilizzo in un ambiente come un intervallo di indirizzi IP oppure un'app per Android o iOS.

Se identifichi il progetto chiamante, puoi utilizzare le chiavi API per associare le informazioni sull'utilizzo a tale progetto. Le chiavi API consentono all'Extensible Service Proxy (ESP) di rifiutare le chiamate dei progetti a cui non è stato concesso l'accesso o che non sono stati abilitati nell'API.

Autenticazione degli utenti

Al contrario, gli schemi di autenticazione hanno in genere due scopi:

  • Autenticazione degli utenti: verifica in modo sicuro che l'utente che effettua la chiamata sia chi dichiara di essere.

  • Autorizzazione utente: controlla se l'utente deve avere accesso per effettuare questa richiesta.

Gli schemi di autenticazione forniscono un metodo sicuro per identificare l'utente chiamante. Endpoints controlla anche il token di autenticazione per verificare che abbia l'autorizzazione per chiamare un'API. Sulla base di tale autenticazione, il server API decide di autorizzare una richiesta.

Se hai bisogno di identificare l'utente che effettua la chiamata, consulta Autenticare gli utenti.

Le chiavi API identificano il progetto chiamante, ma non identificano l'utente chiamante. Ad esempio, se hai creato un'applicazione che chiama un'API, una chiave API è in grado di identificare l'applicazione che effettua la chiamata, ma non l'identità della persona che la utilizza.

Se vuoi limitare la sicurezza dei progetti o dei servizi che possono chiamare la tua API, consulta la pagina Autenticazione tra servizi.

Sicurezza delle chiavi API

In genere le chiavi API non sono considerate sicure, ma in genere sono accessibili ai client, semplificando il furto di una chiave API. Dopo il furto, la chiave non ha scadenza, quindi può essere utilizzata a tempo indeterminato, a meno che il proprietario del progetto non esegua la revoca o la rigenera. Anche se le restrizioni che puoi impostare su una chiave API mitigano questo problema, esistono approcci migliori per l'autorizzazione.

Per gli esempi, consulta la sezione Autenticare gli utenti.

Quando utilizzare le chiavi API

Un'API potrebbe limitare alcuni o tutti i suoi metodi a richiedere chiavi API. È consigliabile farlo se:

  • Vuoi bloccare il traffico anonimo. Le chiavi API identificano il traffico di un'applicazione per il producer di API, qualora lo sviluppatore dell'applicazione debba collaborare con il producer per eseguire il debug di un problema o mostrare l'utilizzo dell'applicazione.

  • Vuoi controllare il numero di chiamate effettuate alla tua API.

  • Vuoi identificare i pattern di utilizzo nel traffico della tua API. Puoi vedere l'utilizzo delle applicazioni in API e servizi.

  • Vuoi filtrare i log per chiave API.

Le chiavi API non possono essere utilizzate per:

  • Identificare i singoli utenti: le chiavi API non identificano gli utenti, ma identificano i progetti.

  • Autorizzazione sicura.

  • Identificare i creatori di un progetto.

Service Infrastructure non fornisce un metodo per cercare direttamente i progetti dalle chiavi API.

Come utilizzare le chiavi API

Per informazioni su come configurare e utilizzare l'accesso alle chiavi API, consulta l'articolo Limitare l'accesso con chiavi API.