Cloud Endpoints Frameworks supporta più metodi di autenticazione adatti a diverse applicazioni e casi d'uso. Endpoints Frameworks utilizza il metodo di autenticazione che hai specificato nell'annotazione 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 ciascun 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 all'API come parametro di ricerca.
Se specifichi un requisito di chiave API nell'annotazione, Endpoints Frameworks utilizza la chiave API per cercare il progetto Google Cloud a cui è associata la chiave API. Endpoints Frameworks rifiuta le richieste, a meno che la chiave API non sia stata generata nel progetto Google Cloud o all'interno di altri progetti Google Cloud in cui l'API è stata abilitata. Per ulteriori informazioni, consulta Limitazione dell'accesso alle API con le chiavi API
A differenza delle credenziali che utilizzano token di breve durata o richieste firmate e che vengono inviate nell'intestazione della richiesta, i client inviano una chiave API come parametro di ricerca. Anche se parametri di ricerca vengono criptati in HTTPS, le chiavi API non sono sicure. Ad esempio, alcuni server potrebbero archiviare l'intero URL di ogni richiesta in testo non crittografato in un log del server. Per motivi di sicurezza, non usare le chiavi API autonomamente quando le chiamate API contengono dati utente. Puoi utilizzare le chiavi API in aggiunta a uno dei seguenti metodi di autenticazione.
Per le best practice sulla protezione e sull'aggiunta di limitazioni alle chiavi API, consulta Utilizzo delle chiavi API. Sebbene l'opzione "Utilizzo di chiavi API" sia destinata ai client che utilizzano le API di Google, le best practice si applicano alle API che crei utilizzando Endpoints Frameworks.
Caso d'uso
Se vuoi utilizzare le funzionalità di Endpoints come le quotas, ogni richiesta deve passare una chiave API in modo che Endpoints 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 mobile. 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.
Endpoints Frameworks convalida il JWT che è stato firmato da Firebase e che la dichiarazione "iss" (emittente) nel JWT, che identifica la tua applicazione Firebase, corrisponde all'impostazione issuer
nell'annotazione.
Caso d'uso
Poiché Firebase Authentication si integra strettamente con altri servizi Firebase, è ideale per le app web o per dispositivi mobili 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 di interfacce utente per l'autenticazione degli utenti nelle app web e mobile. Auth0 si integra con diversi provider di identità di terze parti e fornisce inoltre una gestione personalizzata degli account utente.
La libreria client fornita da Auth0 genera e firma un JWT una volta che l'utente ha eseguito l'accesso. Endpoints Frameworks convalida che il JWT è stato firmato da Auth0
e che l'attestazione "iss" nel JWT, che identifica l'applicazione Auth0,
corrisponde all'impostazione issuer
nell'annotazione.
Caso d'uso
Auth0 è adatto alle app consumer e aziendali per dispositivi mobili e web. Per ulteriori informazioni, consulta Autenticazione con Auth0.
Autenticazione token ID Google
L'autenticazione mediante un token ID Google consente agli utenti di eseguire l'accesso accedendo con un Account Google. Una volta autenticato, l'utente
può accedere a tutti i servizi Google. Puoi utilizzare i token ID Google per effettuare chiamate alle
API e alle API di Google che hai implementato utilizzando
Endpoints Framework. Endpoints Frameworks convalida il token ID Google utilizzando la chiave pubblica e garantisce che l'attestazione "iss" nel JWT sia https://accounts.google.com
o accounts.google.com
.
Caso d'uso
L'autenticazione mediante un token ID Google è consigliata se tutti gli utenti hanno un Account Google. Puoi scegliere di utilizzare l'autenticazione tramite token ID Google, ad esempio, se la tua API accompagna le applicazioni Google Workspace (ad esempio un companion Google Drive). L'autenticazione tramite token ID Google consente agli utenti di eseguire l'accesso con un Account Google. Una volta autenticato, l'utente potrà accedere a tutti i servizi Google.
Per maggiori informazioni, consulta Autenticazione con i token ID Google.
JWT e account di servizio
Un JSON Web Token (JWT) viene comunemente utilizzato per condividere rivendicazioni o affermazioni tra applicazioni connesse. 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 credenziali da account di servizio che non sono di tua proprietà, 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
JWT e account di servizio sono particolarmente adatti per i microservizi. Per ulteriori informazioni, consulta Autenticazione con un account di servizio.