Cloud Endpoints supporta diversi metodi di autenticazione adatti a applicazioni e casi d'uso diversi. L'Extensible Service Proxy (ESP) utilizza il metodo di autenticazione specificato nella configurazione del servizio per convalidare le richieste in entrata prima di trasmetterle al backend dell'API. Questo documento offre una panoramica ed esempi di casi d'uso per ogni metodo di autenticazione supportato.
Chiavi API
Una chiave API è una semplice stringa criptata che identifica un progetto Google Cloud a scopo di quota, fatturazione e monitoraggio. Uno sviluppatore genera una chiave API in un progetto nella console Google Cloud e la incorpora in ogni chiamata all'API come parametro di ricerca.
Se specifichi un requisito della chiave API nella configurazione del servizio, ESP utilizza la chiave API per cercare il progetto Google Cloud a cui è associata la chiave API. ESP rifiuta le richieste a meno che la chiave API non sia stata generata nel progetto Google Cloud o in altri progetti Google Cloud in cui l'API è stata abilitata. Per scoprire di più, consulta Limitazione dell'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 pertanto 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 funzionalità endpoint come le quote, ogni richiesta deve passare in una chiave API, in modo che endpoint possa identificare il progetto Google Cloud a cui è associata l'applicazione client.
Per ulteriori informazioni sulle chiavi API, consulta Perché e quando utilizzare le chiavi API.
Autenticazione Firebase
L'autenticazione Firebase fornisce servizi di backend, SDK e librerie per autenticare gli utenti su un'app web o per dispositivi mobili. 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 correttamente l'accesso. ESP convalida che il JWT sia stato firmato da Firebase e che la dichiarazione dell'iss
(emittente) nel JWT, che identifica la tua applicazione Firebase, corrisponda all'impostazione x-google-issuer
nella configurazione del servizio.
Caso d'uso
Consigliamo di utilizzare Firebase quando le chiamate API includono dati utente e l'API deve essere utilizzata in flussi in cui l'utente ha un'interfaccia utente, ad esempio, da app web e mobile. Per ulteriori informazioni, consulta la pagina relativa all'utilizzo di 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 gran numero di provider e la specifica Security Assertion Markup Language. Fornisce servizi di backend, SDK e librerie di interfacce utente per l'autenticazione degli utenti nelle app web e per dispositivi mobili. 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 dopo che l'utente ha eseguito l'accesso. ESP convalida il JWT firmato da Auth0 e che la rivendicazione iss
nel JWT, che identifica la tua applicazione Auth0, corrisponde 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 scoprire di più, consulta la scheda Auth0 in Per ulteriori informazioni, consulta la pagina Utilizzare Auth0 per autenticare gli utenti.
Autenticazione token ID Google
L'autenticazione con un token ID Google consente agli utenti di eseguire l'autenticazione accedendo con un Account Google. Una volta eseguito l'autenticazione, l'utente avrà accesso a tutti i servizi Google. Puoi utilizzare i token ID di Google per effettuare chiamate alle API di Google e alle API gestite dagli endpoint. ESP convalida il token ID di Google utilizzando la chiave pubblica e garantisce che la dichiarazione 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. Puoi scegliere di utilizzare l'autenticazione dei token ID Google, ad esempio, se la tua API accompagna un'applicazione Google, ad esempio Google Drive companion. L'autenticazione dei token ID Google consente agli utenti di eseguire l'autenticazione accedendo con un Account Google. Una volta autenticato, l'utente ha accesso a tutti i servizi Google. Per ulteriori informazioni, consulta l'articolo sull'utilizzo dei token ID Google per autenticare gli utenti.
Account di servizio
Per identificare un servizio che invia richieste alla tua API, devi utilizzare un account di servizio. Il servizio di chiamata utilizza la chiave privata dell'account di servizio per firmare un JSON Web Token (JWT) sicuro e invia il JWT firmato nella richiesta all'API.
Caso d'uso
I JWT e gli account di servizio sono adatti per i microservizi. Per ulteriori informazioni, consulta Autenticazione tra servizi.
Autenticazione personalizzata
Puoi utilizzare altre piattaforme di autenticazione per autenticare gli utenti purché siano conformi al token web JSON RFC 7519.
Per ulteriori informazioni, consulta Utilizzare un metodo personalizzato per autenticare gli utenti.