Logto x Cloudflare Workers: Wie sichert man deine Workers vor öffentlichem Zugriff?
In diesem Artikel haben wir erklärt, wie man mit Logto die Cloudflare Workers APIs absichert. Wir haben Hono als Webanwendungs-Framework verwendet, um die Entwicklung zu optimieren.
Cloudflare Workers (die wir in folgendem Inhalt einfach als Workers verwenden) bieten eine serverlose Ausführungsumgebung, die es dir ermöglicht, neue Anwendungen zu erstellen oder vorhandene zu erweitern, ohne Infrastruktur konfigurieren oder warten zu müssen.
Mit Workers kannst du deine serverlosen Anwendungen entwickeln und sofort weltweit bereitstellen, um außergewöhnliche Leistung, Zuverlässigkeit und Skalierbarkeit zu gewährleisten. Workers bieten nicht nur hervorragende Leistung, sondern auch einen bemerkenswert großzügigen kostenlosen Plan und erschwingliche kostenpflichtige Pläne. Egal, ob du ein einzelner Entwickler oder ein großes Team bist, Workers ermöglichen es dir, Produkte schnell zu entwickeln und bereitzustellen, während der Betriebsaufwand minimiert wird.
Workers sind standardmäßig öffentlich zugänglich, weshalb Schutzmaßnahmen notwendig sind, um Angriffe und Missbrauch zu verhindern. Logto bietet einen umfassenden, benutzerfreundlichen und skalierbaren Identitätsdienst, der Workers und alle anderen Webdienste absichern kann.
Dieser Artikel beleuchtet den Prozess der Absicherung deiner Workers mit Logto.
Erstelle ein Workers-Beispiel
Lasst uns zunächst ein Workers-Beispielprojekt mit Hono auf der lokalen Maschine erstellen.
Wir verwenden das Wrangler CLI, um das Beispiel auf Cloudflare bereitzustellen, sodass wir auf den Pfad zugreifen können.
Schütze Workers APIs
Um die öffentlich zugängliche API mit einer geschützten API zu vergleichen, fügen wir eine GET /auth/greet
API hinzu, die bestimmte Berechtigungen zum Zugriff erfordert.
Wir können ohne entsprechende Berechtigung nicht auf die entsprechende API zugreifen.
Um den Zugriff auf die Workers APIs ordnungsgemäß zu verwalten, stellen wir Logto vor.
Logto einrichten
Registriere ein Konto, falls du noch keines hast.
Wir verwenden Machine-to-Machine (M2M) als Beispiel, um auf die geschützten Workers APIs zuzugreifen, da dies direkt ist. Wenn du deinen Webanwendungsnutzern Zugriff gewähren möchtest, ist die Einrichtung ziemlich ähnlich, aber du solltest die Rolle „Benutzer“ anstelle der Rolle „Machine-to-Machine“ verwenden.
- Betrete die Logto Admin-Konsole und gehe zum Tab „API-Ressource“. Erstelle eine API-Ressource namens „Workers-Beispiel-API“ mit dem Ressourcenzeiger auf
https://sample.workers.dev/
. Erstelle auch eine Berechtigunggreet:visitor
für diese API-Ressource.
- Erstelle die „Workers-Admin-Rolle“, die eine „Machine-to-Machine“-Rolle ist, und weise dieser Rolle den
greet:visitor
-Scope zu.
- Erstelle eine M2M-App und weise der App die „Workers-Admin-Rolle“ zu.
Aktualisiere den Workers Auth-Validator
Da Logto einen JWT-Zugriffstoken im Hintergrund verwendet, müssen wir die JWT-Validierungslogik in den Workers implementieren.
Da der JWT-Zugriffstoken von Logto ausgestellt wird, müssen wir:
- Den entsprechenden öffentlichen Schlüssel abrufen, um die Signatur zu überprüfen.
- Verifizieren, dass der JWT-Zugriffstoken für die Workers APIs gilt.
Diese Konstanten können in der wrangler.toml
Datei konfiguriert werden [1] und werden als Umgebungvariablen der Workers bereitgestellt. Du kannst die Umgebungvariablen auch manuell im Cloudflare-Dashboard verwalten.
Nachdem wir das Workers-Projekt auf Cloudflare bereitgestellt haben, können wir testen, ob die APIs erfolgreich geschützt werden.
- Zugriffstoken abrufen
- Workers
GET /auth/greet
API anfragen
Fazit
Mit der Schritt-für-Schritt-Anleitung in diesem Artikel solltest du in der Lage sein, mit Logto einen Schutz für deine Workers APIs zu erstellen.
In diesem Artikel haben wir das Wrangler CLI für die lokale Entwicklung und Bereitstellung von Workers-Projekten verwendet. Cloudflare bietet zusätzlich robuste und vielseitige Workers APIs an, um die Bereitstellung und Verwaltung zu erleichtern.
Stelle dir vor, du entwickelst eine SaaS-Anwendung. Die Cloudflare-API ermöglicht es dir, mühelos dedizierte Workers für jeden Mieter bereitzustellen, während Logto sicherstellt, dass Zugriffstoken ausschließlich für die jeweiligen Mieter gelten. Diese granulare Kontrolle verhindert unbefugten Zugriff zwischen den Mietern und erhöht so die Sicherheit und den Datenschutz für die Nutzer deiner SaaS-App.
Logtos anpassbare und robuste Architektur erfüllt die vielfältigen Authentifizierungs- und Autorisierungsanforderungen verschiedener Anwendungen. Egal, ob du eine komplexe SaaS-Plattform oder eine einfache Web-App erstellst, Logto bietet die Flexibilität und Skalierbarkeit, um deinen spezifischen Anforderungen gerecht zu werden.