Aplicações Multi-Tenant com Microsoft Entra ID: O Que São e Como Funcionam

22/03/2025

Imagem carregada



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.


Conceito de Tenant

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.

O que é uma Aplicação Multi-Tenant?

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.

Principais características:

  • Registro único no tenant de origem.
  • Criação automática de um Service Principal nos tenants consumidores, no momento da primeira autenticação.
  • Necessita de consentimento por parte dos administradores dos tenants externos (dependendo das permissões solicitadas).
  • Utiliza tokens OAuth 2.0 com claims que indicam o tenant de origem, o usuário e as permissões atribuídas.

Fluxo de Autenticação Multi-Tenant

Veja como funciona, baseado no diagrama apresentado:

1. Tenant de Origem (contoso.com)

  • A aplicação é registrada via App Registration.
  • Isso cria um Service Principal e gera um ClientId e ClientSecret ou certificado.
  • A aplicação está configurada como multi-tenant (essa opção deve estar marcada no portal).
  • Ao receber autenticação, o app analisa os claims do token JWT emitido pelo Azure.

2. Tenant Externo (facebook.com)

  • Um usuário de outro tenant (como facebook.com) acessa a aplicação.
  • Ao tentar logar, o Microsoft Entra:
    • Autentica o usuário no tenant facebook.com.
    • Cria automaticamente um Service Principal para a aplicação nesse tenant.
    • Emite um token de acesso com informações (claims) sobre o usuário.
  • O token é enviado para a aplicação hospedada (representada no diagrama como DOOM <code>).
  • A aplicação valida esse token e libera (ou não) o acesso.

Claims e Identificação

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.


Configurações no Azure

Para tornar uma aplicação multi-tenant:

  1. Vá para Microsoft Entra ID > App registrations.
  2. Selecione a aplicação.
  3. Vá em Authentication.
  4. Na seção "Supported account types", selecione:
    • Accounts in any organizational directory (Any Azure AD directory - Multitenant)

Pontos de Atenção

  • Tenants externos precisarão dar consentimento ao uso da aplicação, especialmente se ela solicitar permissões além do escopo padrão.
  • Aplicações multi-tenant devem validar o tid (tenant ID) no token JWT para saber de qual diretório o usuário veio.
  • É fundamental validar a assinatura do token com a chave pública do Entra ID, disponível via metadata OpenID Connect.

Resumo

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

Conclusão

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.