Español
  • Logto
  • Cloudflare Workers
  • Workers
  • autorización
  • autenticación
  • SaaS
  • inquilino
  • sin servidor

Logto x Cloudflare Workers: ¿Cómo proteger a tus Workers del acceso público?

En este artículo, presentamos cómo asegurar las APIs de Cloudflare Workers con Logto. Usamos Hono como el framework de aplicación web para simplificar el desarrollo.

Darcy Ye
Darcy Ye
Developer

Cloudflare Workers (usaremos Workers por abreviar en el contenido siguiente) proporciona un entorno de ejecución sin servidor que te permite crear nuevas aplicaciones o mejorar las existentes sin necesidad de configurar o mantener infraestructura.

Con Workers, puedes construir tus aplicaciones sin servidor y desplegarlas al instante en todo el mundo para obtener un rendimiento, una fiabilidad y una escala excepcionales. Workers no solo ofrece un rendimiento excepcional, sino que también proporciona un plan gratuito notablemente generoso y planes de pago asequibles. Ya sea que seas un desarrollador individual o un equipo a gran escala, Workers te permite desarrollar y entregar productos rápidamente mientras minimizas la sobrecarga operativa.

Los Workers son accesibles públicamente por defecto, lo que requiere medidas de protección para prevenir ataques y uso indebido. Logto ofrece un servicio de identidad completo, fácil de usar y escalable que puede proteger a Workers y todos los demás servicios web.

Este artículo profundiza en el proceso de asegurar tus Workers usando Logto.

Construye un ejemplo de Workers

Primero vamos a construir un proyecto de ejemplo de Workers con Hono en una máquina local.

Usamos Wrangler CLI para desplegar el ejemplo en Cloudflare, por lo tanto, podemos acceder a la ruta.

Deploy sample

Protege las APIs de Workers

Para comparar una API de acceso público con una API protegida, añadimos una API GET /auth/greet, que requiere permisos específicos para acceder.

No podemos acceder a la API correspondiente sin los permisos adecuados.

Request authed greet

Para gestionar adecuadamente el acceso a las APIs de Workers, introducimos Logto.

Configura Logto

Regístrate si no tienes una cuenta.

Usamos Machine-to-machine (M2M) como ejemplo para acceder a las APIs protegidas de Workers porque es directo. Si deseas otorgar acceso a los usuarios de tu aplicación web, la configuración es bastante similar, pero deberías usar el rol de “Usuario” en lugar de “Machine-to-machine”.

  1. Entra en el Logto Admin Console y ve a la pestaña “Recurso de API”, crea un recurso de API llamado “Workers sample API” con indicador de recurso https://sample.workers.dev/. También crea un permiso greet:visitor para este recurso de API.

Create Workers sample API resource

  1. Crea un “Rol de administrador de Workers”, que es un rol de “Machine-to-machine”, y asigna el ámbito greet:visitor a este rol.

Create M2M role

  1. Crea una aplicación M2M y asigna el “Rol de administrador de Workers” a la aplicación.

Create M2M app

Actualiza el validador de autenticación de Workers

Como Logto usa tokens de acceso JWT de manera interna, necesitamos implementar la lógica de validación de JWT en Workers.

Dado que el token de acceso JWT es emitido por Logto, necesitamos:

  1. Obtener la clave pública correspondiente para verificar la firma.
  2. Verificar que el consumidor del token de acceso JWT sea la API de Workers.

Estas constantes se pueden configurar en el archivo wrangler.toml [1] y se desplegarán como variables de entorno de Workers. También puedes gestionar las variables de entorno manualmente en el Panel de Cloudflare.

Después de desplegar el proyecto de Workers en Cloudflare, podemos probar si las APIs están protegidas con éxito.

  1. Obtener el token de acceso

Get access token

Inspect JWT

  1. Solicitar la API GET /auth/greet de Workers

Access authed API

Conclusión

Con la guía paso a paso en este artículo, deberías poder usar Logto para construir protección para tus APIs de Workers.

En este artículo, hemos utilizado el CLI de Wrangler para el desarrollo local y el despliegue de proyectos de Workers. Cloudflare también ofrece robustas y versátiles APIs de Workers para facilitar el despliegue y la gestión.

Piensa en desarrollar una aplicación SaaS. La API de Cloudflare te permite desplegar Workers dedicados para cada inquilino con facilidad, mientras tanto, Logto asegura que los tokens de acceso sigan siendo exclusivos de sus respectivos inquilinos. Este control granular previene el acceso no autorizado entre inquilinos, mejorando la seguridad y la privacidad de los datos para los usuarios de tu aplicación SaaS.

La arquitectura adaptable y robusta de Logto se adapta a las diversas necesidades de autenticación y autorización de variadas aplicaciones. Ya sea que estés construyendo una plataforma SaaS compleja o una simple aplicación web, Logto proporciona la flexibilidad y escalabilidad para satisfacer tus requisitos específicos.