Cloud Endpoints Frameworks supporta diversi metodi di autenticazione adatti a diversi casi d'uso e applicazioni. Endpoints Frameworks utilizza il metodo di autenticazione specificato nel decoratore per convalidare le richieste in entrata prima di passarle al backend dell'API. Questo documento fornisce 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 Google Cloud progetto 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 nel decoratore, Endpoints Frameworks utilizza la chiave API per cercare il Google Cloud progetto a cui è associata. Endpoints Frameworks rifiuta le richieste, a meno che la chiave API non sia stata generata nel tuo Google Cloud progetto o in altriGoogle Cloud progetti in cui è stata attivata la tua API. Per maggiori informazioni, consulta Limitare l'accesso alle API con le chiavi API
A differenza delle credenziali che utilizzano token di breve durata o richieste firmate e vengono inviate nell'intestazione della richiesta, i client inviano una chiave API come parametro di query. Anche se i parametri di query vengono criptati in HTTPS, le chiavi API non sono sicure. Ad esempio, alcuni server potrebbero memorizzare l'intero URL di ogni richiesta in testo normale in un log del server. Per motivi di sicurezza, non utilizzare le chiavi API da sole quando le chiamate API contengono dati utente. Puoi utilizzare le chiavi API insieme a uno dei seguenti metodi di autenticazione.
Per le best practice su come proteggere e aggiungere restrizioni alle chiavi API, consulta Utilizzo delle chiavi API. Sebbene la sezione "Utilizzo delle chiavi API" sia rivolta ai clienti che utilizzano le API di Google, le best practice sono applicabili alle API create utilizzando i framework Endpoints.
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 Clouda cui è associata l'applicazione client.
Per ulteriori informazioni 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 mobile o web. Autentica gli utenti utilizzando una serie di credenziali, come 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 l'accesso.
Endpoints Frameworks convalida che il JWT sia stato firmato da Firebase e che il claim "iss" (emittente) nel JWT, che identifica la tua applicazione Firebase, corrisponda all'impostazione issuer
nel decoratore.
Caso d'uso
Poiché Firebase Authentication si integra perfettamente con altri servizi Firebase, è adatto per le app mobile o web che utilizzano Firebase. Consulta Autenticazione con Firebase Auth.
Auth0
Auth0 autentica e autorizza app 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 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 dopo che l'utente ha eseguito l'accesso. Endpoints Frameworks convalida che il JWT sia stato firmato da Auth0
e che l'assert "iss" nel JWT, che identifica la tua applicazione Auth0,
corrisponda all'impostazione issuer
nel decoratore.
Caso d'uso
Auth0 è adatto alle app web e mobile consumer e aziendali. Per ulteriori informazioni, consulta Autenticazione con Auth0.
Autenticazione tramite token ID Google
L'autenticazione tramite 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 di Google per effettuare chiamate alle API di Google e alle API che hai implementato utilizzando i framework di endpoint. Endpoints Frameworks convalida il token ID di Google utilizzando la chiave pubblica e garantisce che l'attributo "iss" nel JWT sia https://accounts.google.com
o
accounts.google.com
.
Caso d'uso
L'autenticazione tramite un token ID Google è consigliata quando tutti gli utenti hanno un Account Google. Ad esempio, potresti scegliere di utilizzare l'autenticazione tramite token ID di Google se la tua API accompagna le applicazioni Google Workspace (ad esempio un'app complementare 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 Autenticazione con i token ID Google.
JWT e account di servizio
Un token web JSON (JWT) viene comunemente utilizzato per condividere rivendicazioni o affermazioni tra le applicazioni collegate. Un JWT che rappresenta un account di servizio può essere firmato da:
L'account di servizio.
Il servizio di autorizzazione di Google. Un JWT firmato dal servizio di autorizzazione di Google è definito token ID Google.
L'autenticazione di una richiesta utilizzando un JWT firmato da un account di servizio potrebbe essere più semplice da implementare, ma se hai un numero elevato di account di servizio o se vuoi accettare le credenziali di account di servizio che non possiedi, ti consigliamo di utilizzare un token ID Google perché devi solo consentire https://accounts.google.com
o accounts.google.com
come emittente per tutti gli account di servizio.
Caso d'uso
I JWT e gli account di servizio sono adatti ai microservizi. Per maggiori informazioni, consulta la sezione Autenticarsi con un account di servizio.