Scelta di un metodo di autenticazione

Cloud Endpoints Frameworks supporta diversi metodi di autenticazione adatti a diverse applicazioni e casi d'uso. Endpoints Frameworks utilizza il metodo di autenticazione specificato nel decoratore per convalidare le richieste in entrata prima di passarle al backend 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 ai 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 la chiave API. Endpoints Frameworks rifiuta le richieste, a meno che la chiave API non sia stata generata nel tuo progetto Google Cloud o in altri progettiGoogle Cloud in cui la tua API è stata abilitata. Per maggiori informazioni, consulta Limitare l'accesso all'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 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 utilizzare le chiavi API da sole 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 su come proteggere e aggiungere limitazioni alle chiavi API, consulta Utilizzo delle chiavi API. Sebbene la sezione "Utilizzo delle chiavi API" sia destinata ai client che utilizzano le API di Google, le best practice sono applicabili alle API che crei utilizzando Endpoints Frameworks.

Caso d'uso

Se vuoi utilizzare le funzionalità di Endpoints, ad esempio le quote, ogni richiesta deve includere una chiave API in modo che Endpoints possa identificare il progetto Google Clouda 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 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 verifica 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 issuer nel decoratore.

Caso d'uso

Poiché Firebase Authentication si integra perfettamente con altri servizi Firebase, è ideale 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 di interfacce utente per l'autenticazione degli utenti in 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 ha effettuato l'accesso. Endpoints Frameworks convalida che il JWT sia stato firmato da Auth0 e che l'attestazione "iss" nel JWT, che identifica la tua applicazione Auth0, corrisponda all'impostazione issuer nel decoratore.

Caso d'uso

Auth0 è adatto alle app consumer e aziendali per dispositivi mobili e web. Per saperne di più, consulta Autenticarsi con Auth0.

Autenticazione del 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 Google per effettuare chiamate alle API di Google e alle API che hai implementato utilizzando Endpoints Frameworks. 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 tramite 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 le applicazioni Google Workspace (ad esempio, un componente aggiuntivo di Google Drive). 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 Autenticazione con token ID Google.

JWT e service account

Un JSON Web Token (JWT) viene comunemente utilizzato per condividere attestazioni o asserzioni 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 è denominato 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 service account o se vuoi accettare le credenziali di service account che non ti appartengono, è consigliabile utilizzare un token ID Google perché devi consentire solo https://accounts.google.com o accounts.google.com come emittente per tutti i service account.

Caso d'uso

I JWT e i service account sono adatti ai microservizi. Per saperne di più, consulta Autenticarsi con un service account.