Logto x Cloudflare Workers: Hur skyddar du dina arbetare från allmän åtkomst?
I den här artikeln introducerade vi hur man skyddar dina Cloudflare Workers API:er med Logto. Vi använde Hono som webbramverk för att effektivisera utvecklingen.
Cloudflare Workers (använd Workers för kort i följande innehåll) tillhandahåller en serverlös exekveringsmiljö som gör det möjligt att skapa nya applikationer eller förstärka befintliga utan att konfigurera eller underhålla infrastruktur.
Med Workers kan du bygga dina serverlösa applikationer och distribuera dem globalt direkt för exceptionell prestanda, tillförlitlighet och skala. Workers erbjuder inte bara exceptionell prestanda utan också en mycket generös gratisplan och prisvärda betalda planer. Oavsett om du är en individuell utvecklare eller ett stort team, ger Workers dig möjlighet att snabbt utveckla och leverera produkter samtidigt som du minimerar driftsmässig överbelastning.
Workers är offentligt tillgängliga som standard, vilket kräver skyddsåtgärder för att förhindra attacker och missbruk. Logto tillhandahåller en omfattande, användarvänlig och skalbar identitetstjänst som kan skydda Workers och alla andra webbtjänster.
Den här artikeln går igenom processen för att skydda dina Workers med Logto.
Bygg ett Workers-exempel
Låt oss först bygga ett Workers-exempelprojekt med Hono på lokal dator.
Vi använder Wrangler CLI för att distribuera exemplet till Cloudflare, så att vi kan komma åt sökvägen.
Skydda Workers-API:er
För att jämföra offentligt tillgängligt API och skyddat API, lägger vi till ett GET /auth/greet
API som kräver specifika rättigheter för åtkomst.
Vi kan inte komma åt det motsvarande API:et utan rätt tillstånd.
För att korrekt hantera tillgången till Workers-API:er, introducerar vi Logto.
Konfigurera Logto
Registrera ett konto om du inte har ett.
Vi använder maskin-till-maskin (M2M) som ett exempel för att komma åt de skyddade Workers-API:erna eftersom det är enkelt. Om du vill ge åtkomst till dina webapps användare är installationen mycket liknande, men du bör använda rollen "Användare" istället för rollen "Maskin-till-maskin".
- Ange Logto Admin Console och gå till fliken “API resource”, skapa en API-resurs med namnet “Workers sample API” med resursindikatorn satt till
https://sample.workers.dev/
. Skapa också rättighetengreet:visitor
för denna API-resurs.
- Skapa "Workers admin role", vilket är en "Machine-to-machine"-roll, och tilldela rättigheten
greet:visitor
till denna roll.
- Skapa en M2M-app och tilldela "Workers admin role" till appen.
Uppdatera Workers-autentiserare
Eftersom Logto använder JWT-åtkomsttoken under huven, behöver vi implementera JWT-valideringslogik i Workers.
Eftersom JWT-åtkomsttokenen utfärdas av Logto, behöver vi:
- Få motsvarande publika nyckel för att verifiera signaturen.
- Verifiera att JWT-åtkomsttokenens konsument är Workers-API:erna.
Dessa konstanter kan konfigureras i wrangler.toml
filen [1] och kommer att distribueras som Workers' omgivningsvariabler. Du kan också hantera omgivningsvariabler manuellt på Cloudflare Dashboard.
Efter att ha distribuerat Workers-projektet till Cloudflare kan vi testa om API:erna är framgångsrikt skyddade.
- Hämta åtkomsttoken
- Begär Workers
GET /auth/greet
API
Slutsats
Med steg-för-steg-guiden i denna artikel bör du kunna använda Logto för att bygga skydd för dina Workers-API:er.
I den här artikeln har vi använt Wrangler CLI för lokal utveckling och distribution av Workers-projekt. Cloudflare erbjuder dessutom robusta och mångsidiga Workers API:er för att underlätta distribution och hantering.
Överväg att utveckla en SaaS-applikation. Cloudflare API ger dig möjlighet att distribuera dedikerade Workers för varje hyresgäst enkelt, samtidigt som Logto säkerställer att åtkomsttokenen förblir exklusiva för sina respektive hyresgäster. Denna granulära kontroll förhindrar obehörig åtkomst över hyresgäster och förbättrar säkerheten och datasekretessen för dina SaaS-appanvändare.
Logto's anpassningsbara och robusta arkitektur tillgodoser de varierade autentiserings- och auktoriseringsbehoven hos olika applikationer. Oavsett om du bygger en komplex SaaS-plattform eller en enkel webapp, erbjuder Logto den flexibilitet och skalbarhet som krävs för att uppfylla dina specifika krav.