22/03/2025
Ao desenvolver aplicações na nuvem, especialmente no ecossistema da Microsoft, é comum nos depararmos com o conceito de aplicações multi-tenant. Trata-se de uma arquitetura que permite que múltiplos diretórios (tenants) do Microsoft Entra ID (antigo Azure AD) utilizem a mesma aplicação registrada.
Neste artigo, explico de forma objetiva como esse modelo funciona, como ele é representado em nível de arquitetura, e o que é necessário configurar para habilitar esse comportamento.
No contexto do Microsoft Entra ID, um tenant representa uma instância isolada de diretório. É um contêiner que gerencia usuários, grupos, permissões, aplicações registradas e políticas de acesso.
Exemplos de tenants:
contoso.com
– Tenant da empresa que desenvolveu a aplicação.facebook.com
– Outro tenant, de uma organização que deseja usar essa aplicação.Uma aplicação multi-tenant é uma aplicação registrada em um tenant (por exemplo, contoso.com
) que pode ser usada por usuários de outros tenants, como facebook.com
, desde que autorizem o uso.
Veja como funciona, baseado no diagrama apresentado:
ClientId
e ClientSecret
ou certificado.facebook.com
) acessa a aplicação.facebook.com
.DOOM <code>
).Um token JWT emitido pelo Entra ID inclui informações relevantes chamadas de claims, como:
iss
(issuer): quem emitiu o token (tenant de origem).aud
(audience): para qual aplicação o token foi emitido.name
, email
, preferred_username
: informações do usuário.roles
: permissões atribuídas ao usuário para aquela aplicação.A aplicação consome essas claims para tomar decisões de autorização e controle de acesso.
Para tornar uma aplicação multi-tenant:
tid
(tenant ID) no token JWT para saber de qual diretório o usuário veio.Elemento | Descrição |
---|---|
Tenant | Diretório isolado no Microsoft Entra ID |
App Registration | Registro da aplicação no Azure AD |
Service Principal | Identidade da aplicação no diretório (um por tenant) |
Claims | Informações no token JWT sobre o usuário/autenticação |
Multi-Tenant | Aplicação que pode ser usada por usuários de diferentes tenants |
O suporte a múltiplos tenants é um recurso fundamental para aplicações que visam várias organizações como clientes. No Azure, isso é feito de forma estruturada e segura usando o modelo de App Registration + Service Principal + Tokens com Claims.
Ignorar esse modelo pode resultar em uma arquitetura limitada, onde a aplicação só atende usuários do próprio tenant — o que mata a escalabilidade e a flexibilidade necessárias em soluções SaaS modernas.
Ambas as organizações, Contoso e Facebook, destacam a importância de um gerenciamento robusto de credenciais e a necessidade de práticas de segurança contínuas. Enquanto a Contoso parece estar em um estágio de avaliação e correção de problemas, o Facebook demonstra uma abordagem mais proativa na minimização de riscos. Esses exemplos ilustram a complexidade e a necessidade de estratégias eficazes de segurança da informação no ambiente corporativo atual.