Logto x Cloudflare Workers: Como proteger seus Workers contra acesso público?
Neste artigo, introduzimos como proteger suas APIs do Cloudflare Workers com Logto. Usamos Hono como o framework de aplicação web para simplificar o desenvolvimento.
Cloudflare Workers (que chamaremos de Workers a seguir) oferece um ambiente de execução sem servidores que permite criar novas aplicações ou ampliar as já existentes sem necessidade de configurar ou manter infraestrutura.
Com os Workers, você pode construir suas aplicações serverless e implantá-las instantaneamente em todo o mundo para alcançar um desempenho, confiabilidade e escalabilidade excepcionais. Os Workers não só oferecem desempenho excepcional, como também disponibilizam um plano gratuito generoso e planos pagos acessíveis. Seja você um desenvolvedor individual ou uma equipe de grande escala, os Workers possibilitam o desenvolvimento rápido e a entrega de produtos, minimizando o overhead operacional.
Os Workers são acessíveis publicamente por padrão, necessitando de medidas de proteção para prevenir ataques e usos indevidos. O Logto oferece um serviço de identidade abrangente, fácil de usar e escalável que pode proteger os Workers e todos os outros serviços web.
Este artigo explora o processo de proteção de seus Workers usando o Logto.
Criar um exemplo de Workers
Primeiro, vamos construir um projeto de exemplo de Workers com Hono em uma máquina local.
Usamos o Wrangler CLI para implantar o exemplo no Cloudflare, permitindo assim que possamos acessar o caminho.
Proteger as APIs dos Workers
Para comparar a API acessível publicamente com uma API protegida, adicionamos uma API GET /auth/greet
que requer escopos específicos para ser acessada.
Não podemos acessar a API correspondente sem a devida permissão.
Para gerenciar adequadamente o acesso às APIs dos Workers, introduzimos o Logto.
Configurar Logto
Registre uma conta caso não tenha uma.
Usamos Machine-to-machine (M2M) como exemplo para acessar as APIs protegidas dos Workers porque é direto. Se você deseja conceder acesso aos usuários do seu aplicativo web, a configuração é bastante similar, mas você deve usar o papel de “Usuário” em vez do papel de “Machine-to-machine”.
- Acesse o Logto Admin Console e vá para a aba “API resource”, crie um recurso de API chamado “Workers sample API” com o indicador de recurso como
https://sample.workers.dev/
. Também crie uma permissãogreet:visitor
para este recurso de API.
- Crie o “Papel de admin dos Workers”, que é um papel “Machine-to-machine”, e atribua o escopo
greet:visitor
a este papel.
- Crie um aplicativo M2M e atribua o “Papel de admin dos Workers” ao aplicativo.
Atualizar o validador de autenticação dos Workers
Como o Logto usa tokens de acesso JWT em sua infraestrutura, precisamos implementar a lógica de validação JWT nos Workers.
Como o token de acesso JWT é emitido pelo Logto, precisamos:
- Obter a chave pública correspondente para verificar a assinatura.
- Verificar se o consumidor do token de acesso JWT é a API dos Workers.
Essas constantes podem ser configuradas no arquivo wrangler.toml
[1] e serão implantadas como variáveis de ambiente dos Workers. Você também pode gerenciar as variáveis de ambiente manualmente no Painel do Cloudflare.
Após implantar o projeto dos Workers no Cloudflare, podemos testar se as APIs estão protegidas com sucesso.
- Obter token de acesso
- Solicitar a API
GET /auth/greet
dos Workers
Conclusão
Com o guia passo-a-passo neste artigo, você deve ser capaz de usar o Logto para proteger suas APIs dos Workers.
Neste artigo, utilizamos o Wrangler CLI para desenvolvimento local e implantação de projetos dos Workers. O Cloudflare também oferece APIs dos Workers robustas e versáteis para facilitar a implantação e gestão.
Considere o desenvolvimento de uma aplicação SaaS. A API do Cloudflare permite implantar Workers dedicados para cada tenant com facilidade, enquanto o Logto garante que os tokens de acesso permaneçam exclusivos para seus respectivos tenants. Esse controle granular impede o acesso não autorizado entre tenants, aprimorando a segurança e a privacidade dos dados para seus usuários de aplicações SaaS.
A arquitetura adaptável e robusta do Logto atende às diversas necessidades de autenticação e autorização de várias aplicações. Se você está construindo uma plataforma SaaS complexa ou um simples aplicativo web, o Logto fornece a flexibilidade e escalabilidade para atender aos seus requisitos específicos.