Scelta di un metodo di autenticazione

Cloud Endpoints supporta diversi metodi di autenticazione adatti a varie applicazioni e casi d'uso. The 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 dell'API. Questo documento fornisce una panoramica e alcuni esempi di casi d'uso per ogni metodo di autenticazione supportato.

Chiavi API

Una chiave API è una stringa criptata che identifica un Google Cloud progetto ai fini di quota, fatturazione e monitoraggio. Uno sviluppatore genera una chiave API in un progetto nella Google Cloud console e la incorpora in ogni chiamata all'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. ESP rifiuta le richieste a meno che la chiave API non sia stata generata nel tuo Google Cloud progetto o in altri Google Cloud progetti in cui è stata abilitata la tua API. Per saperne di più, consulta Limitare l'accesso alle 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 come quote, ogni richiesta deve includere una chiave API in modo che Endpoints possa identificare il Google Cloud progetto 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 varietà di credenziali come Google, Facebook, Twitter o GitHub.

La libreria client Firebase firma un token JWT (JSON Web Token) con una chiave privata dopo che l'utente ha eseguito l'accesso correttamente. 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 Utilizzare Firebase per autenticare gli utenti.

Auth0

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

Auth0 supporta un numero elevato di provider e la Security Assertion Markup Language specifica. Fornisce servizi di backend, SDK e librerie di interfacce utente per autenticare gli utenti nelle 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' iss attestazione nel JWT, che identifica la tua applicazione Auth0, corrisponda all' x-google-issuer impostazione 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 Utilizzare Auth0 per autenticare gli utenti.

Autenticazione con 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 Google Drive Companion. 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 Utilizzare i token ID Google per autenticare gli utenti.

Service account

Per identificare un servizio che invia richieste alla tua API, utilizza un account di servizio. Il servizio chiamante utilizza la chiave privata dell'account di servizio per firmare un token JWT (JSON Web Token) 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, purché siano conformi a JSON Web Token RFC 7519.

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