Scelta di un metodo di autenticazione

Cloud Endpoints supporta diversi metodi di autenticazione adatti a diverse applicazioni e casi d'uso. Extensible Service Proxy (ESP) utilizza il metodo di autenticazione specificato nella configurazione del servizio per convalidare le richieste in entrata prima di passarle al backend API. Questo documento fornisce una panoramica e casi d'uso di esempio per ciascun metodo di autenticazione supportato.

Chiavi API

Una chiave API è una stringa criptata che identifica un progettoGoogle Cloud ai fini di quota, fatturazione e monitoraggio. Uno sviluppatore genera una chiave API in un progetto nella console Google Cloud e la incorpora in ogni chiamata alla tua API come parametro di query.

Se specifichi un requisito della chiave API nella configurazione del servizio, ESP utilizza la chiave API per cercare il Google Cloud progetto a cui è associata la chiave API. ESP rifiuta le richieste, a meno che la chiave API non sia stata generata nel tuo progetto Google Cloud o in altri progettiGoogle Cloud in cui la tua API è stata abilitata. Per ulteriori informazioni, consulta Limitare l'accesso API con le chiavi API

A differenza delle credenziali che utilizzano token di breve durata o richieste firmate, le chiavi API fanno parte della richiesta e sono quindi considerate vulnerabili agli attacchi man-in-the-middle e quindi meno sicure. Puoi utilizzare le chiavi API in aggiunta a uno dei metodi di autenticazione descritti di seguito. Per motivi di sicurezza, non utilizzare le chiavi API da sole quando le chiamate API contengono dati utente.

Caso d'uso

Se vuoi utilizzare le funzionalità di Endpoints, ad esempio le quote, ogni richiesta deve includere una chiave API in modo che Endpoints possa identificare il progetto Google Cloud a cui è associata l'applicazione client.

Per saperne di più sulle chiavi API, consulta Perché e quando utilizzare le chiavi API.

Firebase Authentication

Firebase Authentication fornisce servizi di backend, SDK e librerie per autenticare gli utenti in un'app mobile o web. Autentica gli utenti utilizzando una serie di credenziali come Google, Facebook, Twitter o GitHub.

La libreria client Firebase firma un token web JSON (JWT) con una chiave privata dopo che l'utente ha eseguito l'accesso. ESP convalida che il JWT sia stato firmato da Firebase e che l'attestazione iss (emittente) nel JWT, che identifica la tua applicazione Firebase, corrisponda all'impostazione x-google-issuer nella configurazione del servizio.

Caso d'uso

Ti consigliamo di utilizzare Firebase quando le chiamate API coinvolgono dati utente e l'API è destinata a essere utilizzata in flussi in cui l'utente ha un'interfaccia utente, ad esempio da app mobile e web. Per saperne di più, consulta Utilizzo di Firebase per autenticare gli utenti.

Auth0

Auth0 autentica e autorizza applicazioni e API indipendentemente da provider di identità, piattaforma, stack e dispositivo.

Auth0 supporta un numero elevato di provider e la specifica Security Assertion Markup Language. Fornisce servizi di backend, SDK e librerie di interfacce utente per l'autenticazione degli utenti in app web e mobile. Auth0 si integra con diversi provider di identità di terze parti e fornisce anche la gestione personalizzata degli account utente.

La libreria client fornita da Auth0 genera e firma un JWT quando l'utente effettua l'accesso. ESP convalida che il JWT sia stato firmato da Auth0 e che l'attestazione iss nel JWT, che identifica la tua applicazione Auth0, corrisponda all'impostazione x-google-issuer nella configurazione del servizio.

Caso d'uso

Auth0 è adatto alle app consumer e aziendali per dispositivi mobili e Web. Per saperne di più, consulta la scheda Auth0 in Per saperne di più, consulta la sezione Utilizzo di Auth0 per autenticare gli utenti.

Autenticazione del token ID Google

L'autenticazione con un token ID Google consente agli utenti di autenticarsi accedendo con un Account Google. Una volta autenticato, l'utente ha accesso a tutti i servizi Google. Puoi utilizzare i token ID Google per effettuare chiamate alle API di Google e alle API gestite da Endpoints. ESP convalida il token ID Google utilizzando la chiave pubblica e si assicura che l'attestazione iss nel JWT sia https://accounts.google.com.

Caso d'uso

L'autenticazione con un token ID Google è consigliata quando tutti gli utenti hanno Account Google. Potresti scegliere di utilizzare l'autenticazione con token ID Google, ad esempio, se la tua API accompagna un'applicazione Google, come il componente aggiuntivo di Google Drive. L'autenticazione con token ID Google consente agli utenti di autenticarsi accedendo con un Account Google. Una volta autenticato, l'utente ha accesso a tutti i servizi Google. Per saperne di più, consulta Utilizzo di token ID Google personalizzati per autenticare gli utenti.

Service account

Per identificare un servizio che invia richieste alla tua API, utilizza un service account. Il servizio chiamante utilizza la chiave privata dell'account di servizio per firmare un JSON Web Token (JWT) sicuro e invia il JWT firmato nella richiesta alla tua API.

Caso d'uso

I JWT e i service account sono adatti ai microservizi. Per saperne di più, consulta Autenticazione tra servizi.

Autenticazione personalizzata

Puoi utilizzare altre piattaforme di autenticazione per autenticare gli utenti, a condizione che siano conformi al token web JSON RFC 7519.

Per saperne di più, vedi Utilizzare un metodo personalizzato per autenticare gli utenti.