Multi Tenant Authentication: como autenticar múltiplos clientes com segurança
Entenda como funciona autenticação multi tenant, seus desafios e boas práticas para separar clientes, usuários, permissões e configurações.
Todo SaaS B2B eventualmente precisa responder: como garantir que o usuário da Empresa A nunca veja dados da Empresa B — incluindo tokens, sessões, permissões e configurações de login? Multi-tenant authentication não é só colocar um tenant_id na URL. É isolar identidade de ponta a ponta.
Modelos comuns de isolamento
Shared database, shared schema
Um único banco; cada linha carrega tenant_id. Mais econômico, exige disciplina rigorosa em queries e tokens — um bug vira vazamento cross-tenant.
Realm / tenant por cliente (IAM)
Cada cliente tem realm ou namespace próprio no provedor de identidade. Usuários, clients OAuth e políticas ficam separados. Keycloak e Gatekeeper ID seguem essa linha.
Instância dedicada
Clientes enterprise com stack isolada. Máximo isolamento, custo operacional alto — raro no início.
Desafios que aparecem cedo
- Descobrir o tenant no login (subdomínio, header, email domain?)
- Propagar tenant_id em JWT, logs e traces
- Social Login com redirect_uri e client OAuth por tenant
- RBAC diferente por cliente no mesmo codebase
- Migrations e backups sem misturar dados
Boas práticas
- Inclua
tenant_id(ou claim equivalente) no token assinado — nunca confie só no header HTTP vindo do client - Valide tenant no gateway e novamente no serviço (defense in depth)
- Console admin separado por tenant ou com escopo explícito
- Auditoria com tenant_id em todo evento de login e mudança de permissão
- Testes automatizados de isolamento — não só testes funcionais
Erros comuns
- Um único client OAuth para todos os tenants
- Cache de JWKS ou sessão sem chave por tenant
- Super-admin sem trilha de auditoria
- Permitir troca de tenant_id via request body após login
Como o Gatekeeper ID ajuda
Cada tenant Gatekeeper recebe realm Keycloak isolado, API keys próprias e Console para gerir usuários e permissions. A SDK envia X-GK-Tenant-ID e valida tokens no contexto correto — você integra uma vez, onboarda clientes pelo Console.
Compare abordagens em Keycloak vs Gatekeeper.
Conclusão
Multi-tenant authentication é requisito de arquitetura, não feature de login. Quanto antes você isola identidade por cliente, menor o custo de refatorar quando o primeiro enterprise chegar.