Cloud Endpoints supporta diversi metodi di autenticazione adatti a diverse applicazioni e casi d'uso. Il proxy di servizio Extensible (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 casi d'uso di esempio per ogni metodo di autenticazione supportato.
Chiavi API
Una chiave API è una semplice stringa criptata che identifica un progetto Google Cloud a 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 progetto Google Cloud a cui è associata. ESP rifiuta le richieste, a meno che la chiave API non sia stata generata nel tuo progetto Google Cloud o in altri progetti Google Cloud in cui è stata attivata l'API. Per maggiori informazioni, consulta Limitare l'accesso alle API con le chiavi API
A differenza delle credenziali che utilizzano token a vita breve 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 insieme 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 le quote, ogni richiesta deve passare 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.
Autenticazione Firebase
Firebase Authentication fornisce servizi di backend, SDK e librerie per autenticare gli utenti in un'app web o mobile. Autentica gli utenti utilizzando una serie di credenziali, ad esempio Google, Facebook, Twitter o GitHub.
La libreria client di 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 l'attributo iss
(issuer) nel JWT, che identifica la tua applicazione Firebase, corrisponda all'impostazione iss
nella configurazione del servizio.issuer
Caso d'uso
Ti consigliamo di utilizzare Firebase quando le chiamate API coinvolgono dati utente e l'API è progettata per essere utilizzata in flussi in cui l'utente ha un'interfaccia utente, ad esempio da app mobile e web. Per ulteriori informazioni, consulta la scheda Firebase in Autenticazione degli 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 specifica Security Assertion Markup Language. Fornisce servizi di backend, SDK e librerie dell'interfaccia utente per l'autenticazione degli utenti nelle app web e mobile. Auth0 si integra con diversi provider di identità di terze parti e fornisce anche la gestione degli account utente personalizzati.
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 il claim iss
nel JWT, che identifica la tua applicazione Auth0, corrisponda all'impostazione issuer
nella configurazione del servizio.
Caso d'uso
Auth0 è adatto alle app consumer e aziendali per dispositivi mobili e Web. Per maggiori informazioni, consulta la scheda Auth0 in Autenticazione degli utenti.
Autenticazione tramite 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. L'ESP convalida il token ID di Google utilizzando la chiave pubblica e assicura che l'affermazione iss
nel JWT sia https://accounts.google.com
.
Caso d'uso
L'autenticazione con un token ID Google è consigliata quando tutti gli utenti hanno un Account Google. Ad esempio, potresti scegliere di utilizzare l'autenticazione tramite token ID Google se la tua API accompagna un'applicazione Google, come la funzionalità Compagno di Google Drive. L'autenticazione tramite 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 ulteriori informazioni, consulta la scheda Token ID Google in Autenticazione degli utenti.
Account di servizio
Per identificare un servizio che invia richieste alla tua API, utilizzi un account di servizio. Il servizio chiamante utilizza la chiave privata dell'account di servizio per firmare un token web JSON (JWT) sicuro e invia il JWT firmato nella richiesta all'API.
Caso d'uso
I JWT e gli account di servizio sono molto adatti ai microservizi. Per maggiori informazioni, consulta Autenticazione tra servizi.
Autenticazione personalizzata
Puoi utilizzare altre piattaforme di autenticazione per autenticare gli utenti, a condizione che siano conformi al RFC 7519 relativo ai token web JSON.
Per ulteriori informazioni, consulta la scheda Personalizzata in Autenticazione degli utenti.