Logto x Cloudflare Workers: Jak zabezpieczyć swoje Workery przed publicznym dostępem?
W tym artykule przedstawiliśmy, jak zabezpieczyć swoje API Cloudflare Workers za pomocą Logto. Użyliśmy Hono jako frameworka aplikacji webowej, aby uprościć rozwój.
Cloudflare Workers (w skrócie nazywane Workery w dalszej części) zapewnia środowisko serwerless, które pozwala na tworzenie nowych aplikacji lub ulepszanie istniejących bez potrzeby konfiguracji lub utrzymania infrastruktury.
Dzięki Workery możesz budować swoje aplikacje serwerless i wdrażać je natychmiast na całym świecie, zapewniając wysoce wydajność, niezawodność i skalę. Workery oferują nie tylko wyjątkową wydajność, ale również niezwykle korzystny darmowy plan oraz płatne plany w przystępnych cenach. Niezależnie od tego, czy jesteś indywidualnym deweloperem, czy członkiem dużego zespołu, Workery umożliwiają szybkie opracowywanie i dostarczanie produktów przy minimalnych nakładach operacyjnych.
Workery są domyślnie publicznie dostępne, co wymaga zastosowania środków ochrony, aby zapobiec atakom i nadużyciom. Logto zapewnia kompleksowy, przyjazny użytkownikowi i skalowalny system tożsamości, który może zabezpieczyć Workery i wszystkie inne usługi internetowe.
Ten artykuł zagłębia się w proces zabezpieczania Workers przy użyciu Logto.
Stwórz próbkę Workery
Najpierw stwórzmy próbkę projektu Workers z Hono na lokalnej maszynie.
Używamy Wrangler CLI, aby wdrożyć próbkę do Cloudflare, dzięki czemu możemy uzyskać dostęp do ścieżki.
Ochrona API Workers
Aby porównać publicznie dostępne API z chronionym API, dodajemy GET /auth/greet
API, które wymaga specyficznych uprawnień do dostępu.
Nie możemy uzyskać dostępu do odpowiedniego API bez odpowiednich uprawnień.
Aby właściwie zarządzać dostępem do API Workers, wprowadzamy Logto.
Konfiguracja Logto
Zarejestruj konto, jeśli jeszcze go nie masz.
Używamy Machine-to-machine (M2M) jako przykładu uzyskania dostępu do chronionych API Workers, ponieważ jest to proste. Jeżeli chcesz przyznać dostęp użytkownikom aplikacji webowej, konfiguracja jest bardzo podobna, ale powinieneś używać roli „User” zamiast roli „Machine-to-machine”.
- Wejdź do Logto Admin Console i przejdź do zakładki „API resource”, stwórz zasób API o nazwie „Workers Sample API” z wskaźnikiem zasobu
https://sample.workers.dev/
. Następnie stwórz uprawnieniegreet:visitor
dla tego zasobu API.
- Stwórz rolę „Workers admin role”, która jest rolą „Machine-to-machine”, i przypisz zakres
greet:visitor
do tej roli.
- Stwórz aplikację M2M i przypisz do niej rolę „Workers admin role”.
Aktualizacja walidatora autoryzacji Workers
Ponieważ Logto używa dostępu do tokenu JWT, musimy zaimplementować logikę walidacji JWT w Workers.
Ponieważ token dostępu JWT jest wydany przez Logto, musimy:
- Pobierz odpowiedni klucz publiczny, aby zweryfikować podpis.
- Zweryfikuj konsumenta tokenu JWT, aby był API Workers.
Te stałe mogą być skonfigurowane w pliku wrangler.toml
[1] i będą wdrażane jako zmienne środowiskowe Workers. Możesz również zarządzać zmiennymi środowiskowymi ręcznie na pulpicie Cloudflare.
Po wdrożeniu projektu Workers do Cloudflare, możemy przetestować, czy API zostało prawidłowo chronione.
- Uzyskaj token dostępu
- Żądanie API Workers
GET /auth/greet
Wniosek
Dzięki przewodnikowi krok po kroku w tym artykule, powinieneś być w stanie używać Logto do budowania ochrony dla swoich API Workers.
W tym artykule użyliśmy Wrangler CLI do lokalnego rozwoju i wdrażania projektów Workers. Cloudflare dodatkowo oferuje solidne i wszechstronne API Workers do ułatwienia wdrażania i zarządzania.
Przemyśl rozwijanie aplikacji SaaS. API Cloudflare umożliwia łatwe wdrażanie dedykowanych Workers dla każdego najemcy, podczas gdy Logto zapewnia, że tokeny dostępu pozostają wyłącznie dla odpowiednich najemców. Ta szczegółowa kontrola zapobiega nieautoryzowanemu dostępowi między najemcami, zwiększając bezpieczeństwo i ochronę danych użytkowników Twojej aplikacji SaaS.
Elastyczna i solidna architektura Logto zaspokaja różnorodne potrzeby związane z uwierzytelnianiem i autoryzacją w różnych aplikacjach. Niezależnie od tego, czy budujesz skomplikowaną platformę SaaS, czy prostą aplikację webową, Logto zapewnia elastyczność i skalowalność, aby spełnić Twoje specyficzne wymagania.