• Logto
  • Cloudflare Workers
  • Workers
  • autoryzacja
  • uwierzytelnianie
  • SaaS
  • najemca
  • serwerless

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.

Darcy Ye
Darcy Ye
Developer

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.

Wdrażanie próbki

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ń.

Żądanie autoryzacji greet

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”.

  1. 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 uprawnienie greet:visitor dla tego zasobu API.

Stwórz zasób API Workers

  1. Stwórz rolę „Workers admin role”, która jest rolą „Machine-to-machine”, i przypisz zakres greet:visitor do tej roli.

Stwórz rolę M2M

  1. Stwórz aplikację M2M i przypisz do niej rolę „Workers admin role”.

Stwórz aplikację M2M

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:

  1. Pobierz odpowiedni klucz publiczny, aby zweryfikować podpis.
  2. 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.

  1. Uzyskaj token dostępu

Uzyskaj token dostępu

Sprawdź JWT

  1. Żądanie API Workers GET /auth/greet

Uzyskaj dostęp do autoryzowanego API

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.