Logto x Cloudflare Workers: Hoe beveilig je jouw workers tegen openbare toegang?
In dit artikel hebben we geïntroduceerd hoe je je Cloudflare Workers APIs kunt beveiligen met Logto. We gebruikten Hono als webapplicatie-framework om de ontwikkeling te stroomlijnen.
Cloudflare Workers (in het vervolg aangeduid als Workers) biedt een serverloze uitvoeringsomgeving waarmee je nieuwe applicaties kunt creëren of bestaande kunt uitbreiden zonder de infrastructuur te hoeven configureren of onderhouden.
Met Workers kun je je serverloze applicaties bouwen en direct wereldwijd inzetten voor uitzonderlijke prestaties, betrouwbaarheid en schaalbaarheid. Workers biedt niet alleen uitzonderlijke prestaties, maar ook een opmerkelijk genereus gratis plan en betaalbare betaalde plannen. Of je nu een individuele ontwikkelaar bent of deel uitmaakt van een groot team, Workers stelt je in staat snel producten te ontwikkelen en te leveren terwijl de operationele overhead wordt geminimaliseerd.
Workers zijn standaard openbaar toegankelijk, wat beschermingsmaatregelen vereist om aanvallen en misbruik te voorkomen. Logto biedt een uitgebreide, gebruiksvriendelijke en schaalbare identiteitservice die Workers en alle andere webdiensten kan beveiligen.
Dit artikel behandelt het proces van het beveiligen van je Workers met behulp van Logto.
Bouw een Workers voorbeeld
Laten we eerst een Workers voorbeeldproject bouwen met Hono op een lokale machine.
We gebruiken de Wrangler CLI om het voorbeeld naar Cloudflare te deployen, zodat we toegang hebben tot het pad.
Beveilig Workers APIs
Om een openbare toegankelijke API en een beveiligde API te vergelijken, voegen we een GET /auth/greet
API toe die specifieke scopes vereist om toegang te krijgen.
We kunnen de overeenkomstige API niet benaderen zonder de juiste toestemming.
Om het beheer van de toegang tot Workers APIs op de juiste manier te beheren, introduceren we Logto.
Logto instellen
Registreer een account als je er nog geen hebt.
We gebruiken Machine-to-Machine (M2M) als voorbeeld om toegang te krijgen tot de beveiligde Workers APIs omdat het eenvoudig is. Als je toegang wilt verlenen aan je webapp-gebruikers, is de setup vergelijkbaar, maar moet je de rol “User” gebruiken in plaats van “Machine-to-Machine”.
- Ga naar Logto Admin Console en ga naar het tabblad “API resource”, maak een API-resource genaamd “Workers sample API” met resource-indicator
https://sample.workers.dev/
. Maak ook een toestemminggreet:visitor
voor deze API-resource.
- Maak een “Workers admin rol”, dit is een “Machine-to-Machine” rol, en wijs de
greet:visitor
scope toe aan deze rol.
- Maak een M2M app en wijs de “Workers admin rol” toe aan de app.
Werk de Workers auth validator bij
Omdat Logto JWT-toegangstokens onder de motorkap gebruikt, moeten we de JWT-validatielogica in Workers implementeren.
Aangezien het JWT-toegangstoken door Logto wordt uitgegeven, moeten we:
- De overeenkomende publieke sleutel verkrijgen om de handtekening te verifiëren.
- Verifieer de consument van het JWT-toegangstoken om Workers APIs te zijn.
Deze constanten kunnen worden geconfigureerd in het wrangler.toml
bestand [1] en worden ingezet als Workers' omgevingsvariabelen. Je kunt de omgevingsvariabelen ook handmatig beheren op het Cloudflare Dashboard.
Na het deployen van het Workers-project naar Cloudflare, kunnen we testen of de APIs succesvol zijn beschermd.
- Verkrijg toegangstoken
- Verzoek Workers
GET /auth/greet
API
Conclusie
Met de stapsgewijze handleiding in dit artikel zou je in staat moeten zijn om Logto te gebruiken om een beveiliging voor je Workers APIs op te bouwen.
In dit artikel hebben we de Wrangler CLI gebruikt voor lokale ontwikkeling en inzet van Workers-projecten. Cloudflare biedt daarnaast robuuste en veelzijdige Workers APIs om de inzet en het beheer te vergemakkelijken.
Overweeg een SaaS-applicatie te ontwikkelen. De Cloudflare API stelt je in staat om eenvoudig toegewijde Workers voor elke tenant te implementeren, terwijl Logto ervoor zorgt dat toegangstokens exclusief blijven voor hun respectieve tenants. Deze gedetailleerde controle voorkomt ongeoorloofde toegang tussen tenants, wat de beveiliging en gegevensprivacy voor je SaaS-appgebruikers verbetert.
De aanpasbare en robuuste architectuur van Logto voldoet aan de diverse authenticatie- en autorisatiebehoeften van verschillende applicaties. Of je nu een complex SaaS-platform bouwt of een eenvoudige webapp, Logto biedt de flexibiliteit en schaalbaarheid om aan jouw specifieke vereisten te voldoen.