Русский
  • Logto
  • Cloudflare Workers
  • Workers
  • авторизация
  • аутентификация
  • SaaS
  • арендатор
  • безсерверный

Logto x Cloudflare Workers: Как защитить своих работников от публичного доступа?

В этой статье мы рассказали, как защитить свои API для Cloudflare Workers с помощью Logto. Мы использовали Hono в качестве веб-фреймворка для упрощения разработки.

Darcy Ye
Darcy Ye
Developer

Cloudflare Workers (далее в тексте будем называть Workers) предоставляет безсерверную среду выполнения, которая позволяет создавать новые приложения или расширять существующие без необходимости настройки или обслуживания инфраструктуры.

С Workers, вы можете создавать свои безсерверные приложения и мгновенно разворачивать их по всему миру для обеспечения исключительной производительности, надежности и масштаба. Workers не только обеспечивает исключительную производительность, но и предлагает чрезвычайно щедрый бесплатный план и доступные платные планы. Будь вы индивидуальным разработчиком или членом крупной команды, Workers позволяет вам быстро разрабатывать и доставлять продукты, минимизируя операционные издержки.

Workers по умолчанию доступны публично, что требует мер защиты для предотвращения атак и злоупотреблений. Logto предоставляет комплексные, удобные и масштабируемые сервисы идентификации, которые смогут защитить Workers и все другие веб-сервисы.

Эта статья расскажет о том, как защитить ваши Workers с помощью Logto.

Создание примера Workers

Давайте сначала создадим пример проекта Workers с помощью Hono на локальной машине.

Мы используем Wrangler CLI для развертывания примера в Cloudflare, чтобы мы могли получить доступ к пути.

Развернуть пример

Защита API Workers

Для сравнения публично доступного API и защищенного API мы добавляем API GET /auth/greet, который требует наличия определенных прав доступа.

Мы не сможем получить доступ к соответствующему API без соответствующих прав доступа.

Запрос авторизованного приветствия

Для управления доступом к API Workers, мы используем Logto.

Настройка Logto

Зарегистрируйте аккаунт, если у вас его еще нет.

Мы используем режим Machine-to-machine (M2M) в качестве примера для доступа к защищенным API Workers, так как это наиболее прямолинейный способ. Если вы хотите предоставить доступ пользователям вашего веб-приложения, настройка будет аналогичной, но вам следует использовать роль «User» вместо роли «Machine-to-machine».

  1. Войдите в Logto Admin Console и перейдите на вкладку «API resource», создайте ресурс API под названием «Workers sample API» с указателем ресурса https://sample.workers.dev/. Также создайте разрешение greet:visitor для этого API ресурса.

Создать ресурс API для примера Workers

  1. Создайте роль «Workers admin role», которая будет ролью для «Machine-to-machine», и назначьте этой роли область greet:visitor.

Создать роль M2M

  1. Создайте приложение M2M и назначьте ему роль «Workers admin role».

Создать приложение M2M

Обновление валидатора аутентификации Workers

Так как Logto использует токены доступа JWT, нам необходимо реализовать логику валидации JWT в Workers.

Так как токен доступа JWT выдается Logto, нам нужно:

  1. Получить соответствующий открытый ключ для проверки подписи.
  2. Проверить токен доступа JWT, чтобы убедиться, что он предназначен для API Workers.

Эти константы можно настроить в файле wrangler.toml [1] и они будут развернуты как переменные окружения Workers. Вы также можете вручную управлять переменными окружения на панели управления Cloudflare.

После развертывания проекта Workers в Cloudflare, мы можем протестировать, удалось ли защитить API.

  1. Получить токен доступа

Получить токен доступа

Проверка JWT

  1. Запросить API Workers GET /auth/greet

Доступ к API с авторизацией

Заключение

С пошаговым руководством в этой статье вы должны уметь использовать Logto для защиты ваших API Workers.

В этой статье мы использовали Wrangler CLI для локальной разработки и развертывания проектов Workers. Кроме того, Cloudflare предоставляет мощные и универсальные Workers API для упрощения развертывания и управления.

Представьте себе разработку SaaS-приложения. API Cloudflare дает вам возможность легко развертывать выделенные Workers для каждого арендатора, в то время как Logto гарантирует, что токены доступа остаются эксклюзивными для своих арендаторов. Этот гранулярный контроль предотвращает несанкционированный доступ между арендаторами, повышая безопасность и конфиденциальность данных для ваших пользователей SaaS-приложений.

Адаптируемая и мощная архитектура Logto удовлетворяет разнообразные потребности в аутентификации и авторизации для различных приложений. Как бы сложно ни было ваше SaaS-платформа или простое веб-приложение, Logto обеспечивает гибкость и масштабируемость для удовлетворения ваших конкретных требований.