IA, arquitetura e segurança

Segurança multi-tenant: a regra que uma IA não deve inferir sozinha.

Uma consulta correta pode continuar insegura se não limitar os dados ao tenant autorizado. O isolamento precisa existir como contrato arquitetural, teste e proteção centralizada.

Resumo prático

  • Autenticar uma pessoa não prova que ela pode acessar um objeto pertencente a outro tenant.
  • O identificador do tenant deve vir do contexto confiável da requisição, não do payload controlado pelo cliente.
  • Filtros manuais repetidos em cada consulta tornam uma omissão inevitável.
  • Testes negativos precisam provar que dados válidos de outro tenant permanecem inacessíveis.

Agentes de código resolvem com facilidade uma tarefa visível: buscar um registro, editar uma entidade ou listar resultados. Em um SaaS multi-tenant, porém, a regra mais importante pode não estar na tarefa: cada operação precisa permanecer dentro da fronteira do cliente autorizado.

Quando essa regra não está explícita, o código pode autenticar corretamente o usuário e ainda aceitar um identificador pertencente a outra organização. A implementação funciona no caso feliz e falha exatamente no isolamento que protege o negócio.

Autenticação não substitui autorização por objeto

Saber quem fez a requisição é apenas o começo. O sistema também precisa provar que o recurso solicitado pertence ao mesmo tenant e que o papel daquele usuário permite a ação.

Receber tenantId, companyId ou organizationId no corpo da requisição e confiar nesse valor transfere a fronteira de segurança para quem controla o cliente. O contexto deve ser derivado de uma sessão ou credencial validada e aplicado antes da leitura ou alteração.

A proteção deve ser difícil de esquecer

Pedir que cada desenvolvedor lembre de adicionar um filtro em toda consulta não é uma estratégia durável. Repositórios, políticas, middleware e mecanismos do banco podem carregar a restrição para um ponto comum.

A implementação exata depende da stack, mas o princípio é constante: uma operação comum não deve conseguir consultar dados globais por acidente. Exceções administrativas precisam ser explícitas, auditáveis e menores que o caminho padrão.

  • Contexto confiável

    Resolver tenant e identidade antes de chegar à regra de negócio.

  • Escopo automático

    Aplicar a fronteira no repositório, política ou camada de dados usada por padrão.

  • Exceção explícita

    Separar operações globais e exigir autorização, intenção e auditoria próprias.

O que registrar para agentes de IA

O arquivo de contexto do projeto deve dizer onde o tenant é resolvido, quais APIs carregam essa informação e quais abstrações são obrigatórias para acessar dados. Também deve declarar que identificadores enviados pelo cliente não definem autorização.

Inclua um exemplo canônico de consulta segura, um exemplo proibido e os comandos que executam testes de isolamento. Isso transforma uma regra abstrata em evidência local que o agente consegue seguir e verificar.

Teste o que nunca pode acontecer

O teste decisivo cria dois tenants, autentica um usuário no primeiro e tenta ler ou alterar um objeto válido do segundo. A resposta deve negar a operação sem revelar informação adicional.

Repita o cenário em buscas por ID, listas, filtros, exports, webhooks, jobs e caches. Vazamento entre tenants raramente vive apenas no endpoint mais óbvio.

Teste positivo prova funcionalidade. Teste cruzado entre tenants prova a fronteira de segurança.

Checklist antes de aprovar código multi-tenant

Use esta revisão tanto para contribuições humanas quanto para código gerado por IA.

  • Origem do tenant

    O valor vem de um contexto autenticado e validado?

  • Objeto

    Toda leitura e alteração confirma a propriedade do recurso?

  • Abstração padrão

    O caminho comum já aplica o isolamento sem depender de memória?

  • Teste cruzado

    Existe um caso automatizado tentando acessar outro tenant?

  • Auditoria

    Operações globais e administrativas deixam evidência suficiente?

Fontes e leituras técnicas

Referências usadas para apoiar os conceitos técnicos deste artigo. Todos os links levam às publicações originais.

Próximo passo

Seu time está acelerando código sem tornar as fronteiras verificáveis?

Guilherme pode revisar contexto, isolamento, testes e permissões para integrar agentes ao processo com segurança.

Conhecer engenharia de software com IAContar meu cenário diretamente
Guilherme Calesco

Autor

Guilherme Calesco

Engenheiro de software, CTO da NextApps e responsável técnico da Calesco Desenvolvimento. Atua com software desde 2008.