Italiano
  • Logto
  • Cloudflare Workers
  • Workers
  • autorizzazione
  • autenticazione
  • SaaS
  • tenant
  • serverless

Logto x Cloudflare Workers: Come proteggere i tuoi workers dall'accesso pubblico?

In questo articolo abbiamo introdotto come proteggere le tue API Cloudflare Workers con Logto. Abbiamo utilizzato Hono come framework per applicazioni web per semplificare lo sviluppo.

Darcy Ye
Darcy Ye
Developer

I Cloudflare Workers (d'ora in poi semplicemente Workers) offrono un ambiente di esecuzione serverless che ti permette di creare nuove applicazioni o migliorare quelle esistenti senza configurare o gestire l'infrastruttura.

Con Workers, puoi costruire le tue applicazioni serverless e distribuirle istantaneamente in tutto il mondo, garantendo prestazioni eccezionali, affidabilità e scalabilità. Workers non solo offre prestazioni eccezionali, ma fornisce anche un piano gratuito notevolmente generoso e piani a pagamento convenienti. Che tu sia un singolo sviluppatore o parte di un team su larga scala, Workers ti consente di sviluppare e consegnare rapidamente prodotti riducendo al minimo il carico operativo.

Per impostazione predefinita, i Workers sono accessibili pubblicamente, il che richiede l'adozione di misure di protezione per prevenire attacchi e abusi. Logto offre un servizio di identità completo, facile da usare e scalabile che può proteggere i Workers e tutti gli altri servizi web.

Questo articolo approfondisce il processo di protezione dei Workers utilizzando Logto.

Costruisci un esempio di Workers

Per prima cosa, creiamo un progetto di esempio Workers con Hono sulla macchina locale.

Usiamo Wrangler CLI per distribuire l'esempio su Cloudflare, in modo che possiamo accedere al percorso.

Distribuisci esempio

Proteggi le API dei Workers

Per confrontare un'API pubblicamente accessibile con un'API protetta, aggiungiamo un'API GET /auth/greet che richiede scope specifici per l'accesso.

Non possiamo accedere all'API corrispondente senza i permessi appropriati.

Richiesta salute autenticata

Per gestire correttamente l'accesso alle API dei Workers, introduciamo Logto.

Configurazione di Logto

Registra un account se non ne hai uno.

Usiamo Machine-to-machine (M2M) come esempio per accedere alle API dei Workers protette perché è molto semplice. Se desideri concedere l'accesso agli utenti della tua app web, la configurazione è abbastanza simile, ma dovresti utilizzare il ruolo “Utente” invece del ruolo “Machine-to-machine”.

  1. Accedi al Logto Admin Console e vai alla scheda "API resource", crea una risorsa API chiamata “Workers sample API” con l'indicatore di risorsa impostato su https://sample.workers.dev/. Crea anche un permesso greet:visitor per questa risorsa API.

Crea risorsa API Workers Campsione

  1. Crea un ruolo “Workers admin”, che è un ruolo “Machine-to-machine”, e assegna lo scope greet:visitor a questo ruolo.

Crea ruolo M2M

  1. Crea un'app M2M e assegna il ruolo “Workers admin” all'app.

Crea app M2M

Aggiorna il validatore di autenticazione dei Workers

Dato che Logto utilizza un token di accesso JWT sotto il cofano, dobbiamo implementare la logica di validazione JWT in Workers.

Poiché il token di accesso JWT è emesso da Logto, dobbiamo:

  1. Ottenere la chiave pubblica corrispondente per verificare la firma.
  2. Verificare che il consumatore del token di accesso JWT siano le API dei Workers.

Questi costanti possono essere configurati nel file wrangler.toml [1] e saranno utilizzati come variabili d'ambiente dei Workers. Puoi anche gestire manualmente le variabili d'ambiente nella Dashboard di Cloudflare.

Dopo aver distribuito il progetto Workers su Cloudflare, possiamo verificare se le API sono state protette con successo.

  1. Ottieni un token d'accesso

Ottieni token d'accesso

Ispeziona JWT

  1. Richiedi l'API Workers GET /auth/greet

Accedi all'API autenticata

Conclusione

Con la guida passo-passo in questo articolo, dovresti essere in grado di utilizzare Logto per costruire una protezione per le tue API dei Workers.

In questo articolo, abbiamo utilizzato il Wrangler CLI per lo sviluppo e la distribuzione locale dei progetti Workers. Cloudflare offre inoltre potenti e flessibili API Workers per facilitare la distribuzione e la gestione.

Considera lo sviluppo di un'applicazione SaaS. L'API di Cloudflare ti consente di distribuire facilmente Workers dedicati per ogni tenant. Nel frattempo, Logto assicura che i token d'accesso rimangano esclusivi dei rispettivi tenant. Questo controllo granulare impedisce accessi non autorizzati tra i tenant, migliorando la sicurezza e la privacy dei dati per gli utenti della tua applicazione SaaS.

L'architettura adattabile e robusta di Logto soddisfa le varie esigenze di autenticazione e autorizzazione di diverse applicazioni. Che tu stia costruendo una piattaforma SaaS complessa o una semplice app web, Logto fornisce la flessibilità e la scalabilità necessarie per soddisfare i tuoi specifici requisiti.