Motivação do estudo
O objetivo do AuthStudy é entender, na prática, como montar a espinha dorsal de autenticação e autorização de um produto SaaS multi-tenant de forma segura e desacoplada.
Em vez de guardar tokens no localStorage (exposto a XSS), o estudo explora o padrão BFF (Backend for
Frontend). O token nunca chega ao JavaScript do navegador, ele vive em cookies HttpOnly e em
sessões no Redis, e o BFF é quem deriva e injeta o JWT nas chamadas aos serviços. Além disso, o
estudo investiga autorização fina (ABAC/RBAC) e como compor uma UI a partir de microfrontends
independentes sob um App Shell.
O que foi feito
- BFFs em .NET 10: uma camada de backend por frontend que intermedia o acesso aos serviços e cuida da sessão.
- Autenticação segura: login que emite
Set-CookieHttpOnly. O BFF valida a sessão no Redis e deriva o JWT pras chamadas internas. - Autorização ABAC/RBAC: papéis e atributos modelados com EF Core + PostgreSQL, controlando o que cada usuário pode fazer.
- Microfrontends React: App Shell em
:3000que carrega frontends independentes, consumindo o BFF em:5000. - Desenvolvimento spec-driven: fatias documentadas em
specs/(roles no Supabase, MVP de auth/roles, CRUD de catálogo de produtos). - Orquestração local: tudo sobe com um único
docker-compose up --build.
Stack
- ◆ BACKEND: .NET 10 (BFFs), EF Core, PostgreSQL, Redis (sessões).
- ◈ FRONTEND: React em arquitetura de microfrontends sob um App Shell.
- ⛨ SEGURANÇA: cookies HttpOnly, sessões no Redis, JWT derivado pelo BFF, ABAC/RBAC.
- ⌂ INFRA: Docker Compose pra orquestrar todos os serviços localmente.
Como rodar
# 1. Gerar certificados de dev em ~/.aspnet/https/ (HTTPS confiável)
# 2. Subir todos os serviços
docker-compose up --build
# 3. App Shell React → http://localhost:3000
# BFF (.NET 10) → http://localhost:5000 # Código aberto
O AuthStudy é open source, feito pra estudar e servir de referência de arquitetura.