Logto x Cloudflare Workers: Como proteger os teus workers de acessos públicos?
Neste artigo, introduzimos como proteger as tuas APIs do Cloudflare Workers com o Logto. Utilizámos Hono como a framework de desenvolvimento de aplicações web para simplificar o desenvolvimento.
Cloudflare Workers (usaremos Workers para abreviar no conteúdo a seguir) fornece um ambiente de execução sem servidor que permite criar novas aplicações ou aumentar as existentes sem a necessidade de configurar ou manter infraestruturas.
Com o Workers, podes construir as tuas aplicações sem servidor e implementá-las instantaneamente em todo o mundo para um desempenho, confiabilidade e escalabilidade excepcionais. O Workers não só oferece desempenho excepcional, mas também disponibiliza um plano gratuito notavelmente generoso e planos pagos acessíveis. Quer sejas um desenvolvedor individual ou uma equipa de grande escala, o Workers permite-te desenvolver e entregar produtos rapidamente, ao mesmo tempo que minimizas a sobrecarga operacional.
Os Workers são acessíveis ao público por padrão, o que exige medidas de proteção para prevenir ataques e abusos. 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 proteger os teus Workers utilizando o Logto.
Construir um exemplo de Workers
Vamos primeiro construir um projeto de exemplo de Workers com Hono na máquina local.
Usamos a CLI Wrangler para implementar o exemplo no Cloudflare, permitindo-nos aceder ao caminho.
Proteger APIs do Workers
Para comparar a API acessível ao público e a API protegida, adicionamos uma API GET /auth/greet
que requer permissões específicas para aceder.
Não podemos aceder à API correspondente sem a devida permissão.
Para gerir adequadamente o acesso às APIs do Workers, introduzimos o Logto.
Configurar o Logto
Regista uma conta se ainda não tiveres uma.
Usaremos o exemplo de Máquina-a-máquina (M2M) para aceder às APIs protegidas dos Workers, pois é direto. Se quiseres conceder acesso aos utilizadores da tua aplicação web, a configuração é bastante semelhante, mas deves usar a função “Utilizador” em vez da função “Máquina-a-máquina”.
- Acede ao Console de Administração do Logto e vai ao separador “Recurso API”, cria um recurso API chamado “Workers sample API” com o indicador de recurso a ser
https://sample.workers.dev/
. Também cria uma permissãogreet:visitor
para este recurso API.
- Cria a função “Administrador de Workers”, que é uma função de “Máquina-a-máquina”, e atribui o escopo
greet:visitor
a essa função.
- Cria uma aplicação M2M e atribui a função de “Administrador de Workers” à aplicação.
Atualizar o validador de autenticação do Workers
Como o Logto usa o token de acesso JWT na camada subjacente, precisamos implementar a lógica de validação JWT no Workers.
Como o token de acesso JWT é emitido pelo Logto, precisamos de:
- Obter a chave pública correspondente para verificar a assinatura.
- Verificar que o consumidor do token de acesso JWT são as APIs do Workers.
Essas constantes podem ser configuradas no ficheiro wrangler.toml
[1] e serão implementadas como variáveis de ambiente dos Workers. Podes também gerir as variáveis de ambiente manualmente no Painel do Cloudflare.
Após implementar o projeto Workers no Cloudflare, podemos testar se as APIs estão protegidas com sucesso.
- Obter token de acesso
- Solicitar a API
GET /auth/greet
do Workers
Conclusão
Com o guia passo a passo deste artigo, deverás ser capaz de usar o Logto para proteger as tuas APIs do Workers.
Neste artigo, utilizámos a CLI Wrangler para o desenvolvimento local e implementação de projetos Workers. O Cloudflare também oferece APIs de Workers robustas e versáteis para facilitar a implementação e gestão.
Considera desenvolver uma aplicação SaaS. A API do Cloudflare permite-te implementar facilmente Workers dedicados para cada inquilino e, ao mesmo tempo, o Logto garante que os tokens de acesso permaneçam exclusivos para os seus respetivos inquilinos. Este controlo granular previne o acesso não autorizado entre inquilinos, aumentando a segurança e a privacidade dos dados para os utilizadores da tua aplicação 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 estás a construir uma plataforma SaaS complexa ou uma aplicação web simples, o Logto oferece a flexibilidade e escalabilidade para atender às tuas necessidades específicas.