Compartilhar via


Opções de configuração de aplicativo

Para autenticar e adquirir tokens, inicialize um novo aplicativo cliente público ou confidencial em seu código. É possível definir várias opções de configuração ao inicializar o aplicativo cliente na Biblioteca de Autenticação da Microsoft (MSAL). Essas opções se enquadram em dois grupos:

Autoridade

A autoridade é uma URL que indica um diretório do qual o MSAL pode solicitar tokens.

As autoridades comuns são:

URLs de autoridade comum Quando usar
https://login.microsoftonline.com/<tenant>/ Conectar somente usuários de uma organização específica. O <tenant> na URL é a ID do locatário do locatário do Microsoft Entra (um GUID) ou seu domínio de locatário.
https://login.microsoftonline.com/common/ Conectar usuários de contas corporativas ou de estudante ou contas pessoais da Microsoft
https://login.microsoftonline.com/organizations/ Conectar usuários com contas corporativas e de estudante.
https://login.microsoftonline.com/consumers/ Conectar usuários somente com a MSA (contas pessoais da Microsoft).

A autoridade que especificada no código precisa ser consistente com os Tipos de conta com suporte especificados para o aplicativo em Registros de aplicativo no portal do Azure.

A autoridade pode ser:

  • Uma autoridade de nuvem do Microsoft Entra.
  • Uma autoridade B2C do Azure AD. Consultar Especificações de B2C.
  • Uma autoridade do AD FS (Serviços de Federação do Active Directory). Consulte Suporte ao AD FS.

As autoridades de nuvem do Microsoft Entra têm duas partes:

  • A instância do provedor de identidade
  • O público para entrar no aplicativo

A instância e o público podem ser concatenados e fornecidos como a URL da autoridade. Este diagrama mostra como a URL da autoridade é composta:

Como a URL da autoridade é composta

Instância da nuvem

A instância é usada para especificar se o aplicativo está assinando usuários da nuvem pública do Azure ou de nuvens nacionais. Usando o MSAL no código, é possível definir a instância de nuvem do Azure usando uma enumeração ou passando a URL para a instância de nuvem nacional como o membro Instance.

O MSAL.NET gera uma exceção explícita se Instance e AzureCloudInstance forem especificadas.

Se não for especificada uma instância, o aplicativo será direcionado para a instância de nuvem pública do Azure (a instância de URL https://login.onmicrosoftonline.com).

Público do aplicativo

O público depende das necessidades de negócios para o aplicativo:

  • Caso seja desenvolvedor de LOB (linha de negócios), provavelmente produzirá um aplicativo de locatário único que será usado somente na organização. Nesse caso, especifique a organização por sua ID de locatário (a ID de sua instância do Microsoft Entra) ou por um nome de domínio associado à instância do Microsoft Entra.
  • Um ISV talvez queira conectar usuários com suas contas corporativas e de estudante em qualquer organização ou em algumas organizações (aplicativo multilocatário). Mas talvez também se queira fazer com que os usuários entrem com suas contas pessoais da Microsoft.

Como especificar o público no código/configuração

Usando o MSAL em seu código, especifique o público usando um dos seguintes valores:

  • A enumeração de audiência de autoridade do Microsoft Entra
  • A ID do locatário, que pode ser:
    • Um GUID (o ID da sua instância do Microsoft Entra), para aplicativos de locatário único
    • Um nome de domínio associado à instância do Microsoft Entra (também para aplicativos de locatário único)
  • Um desses espaços reservados como uma ID de locatário no lugar da enumeração de audiência de autoridade do Microsoft Entra:
    • organizations para aplicativo multilocatário
    • consumers para conectar usuários somente com contas pessoais
    • common para conectar usuários de contas corporativas ou de estudante ou contas pessoais da Microsoft

O MSAL gera uma exceção significativa se forem especificados o público da autoridade do Microsoft Entra e a ID do locatário.

É recomendável especificar um público-alvo, porque muitos locatários e os aplicativos implantados neles terão usuários convidados. Se o aplicativo for destinado a usuários externos, evite os pontos de extremidade common e organization. Se você não especificar um público-alvo, seu aplicativo segmentará o Microsoft Entra ID e as contas Microsoft pessoais como um público-alvo e se comportará como se common tivesse sido especificado.

Público efetivo

O público efetivo para o aplicativo será o mínimo (se houver uma interseção) do público que definido no aplicativo e o público especificado no registro do aplicativo. Na verdade, a experiência de Registros de aplicativo permite especificar o público (os tipos de conta com suporte) para o aplicativo. Para obter mais informações, consulte Início rápido: Registrar um aplicativo na plataforma de identidade da Microsoft.

Atualmente, a única maneira de obter um aplicativo para conectar usuários com apenas contas pessoais da Microsoft é definir essas duas configurações:

  • Defina o público de registro do aplicativo como Work and school accounts and personal accounts.
  • Defina o público no código/configuração como AadAuthorityAudience.PersonalMicrosoftAccount (ou TenantID = "consumidores").

ID do Cliente

A ID do cliente é a ID exclusiva do aplicativo (cliente) atribuída ao aplicativo pelo Microsoft Entra ID quando o aplicativo foi registrado. Você pode encontrar a ID do aplicativo (cliente) na página Visão geral do aplicativo no Entra ID>Aplicativos empresariais.

URI de redirecionamento

O URI de redirecionamento é o URI para o qual o provedor de identidade envia os tokens de segurança.

URI de redirecionamento para aplicativos cliente públicos

Se for um desenvolvedor de aplicativo cliente público que está usando o MSAL:

  • Deseja usar .WithDefaultRedirectUri() em aplicativos da área de trabalho (MSAL.NET 4.1+). O método .WithDefaultRedirectUri() define a propriedade URI de redirecionamento do aplicativo cliente público para o URI de redirecionamento recomendado padrão para aplicativos cliente públicos.

    Plataforma URI de redirecionamento
    Aplicativo de desktop (.NET Framework) https://login.microsoftonline.com/common/oauth2/nativeclient
    Plataforma Universal do Windows (UWP) valor de WebAuthenticationBroker.GetCurrentApplicationCallbackUri(). Isso habilita o SSO (logon único) com o navegador definindo o valor como o resultado de WebAuthenticationBroker.GetCurrentApplicationCallbackUri(), que precisa ser registrado
    .NET https://localhost permite que o usuário use o navegador do sistema para autenticação interativa, pois o .NET não tem uma interface do usuário para a exibição da Web inserida no momento.

É possível substituir o URI de redirecionamento usando a propriedade RedirectUri (por exemplo, se são usados agentes). Aqui estão alguns exemplos de URIs de redirecionamento para esse cenário:

  • RedirectUriOnAndroid = "msauth-00001111-aaaa-2222-bbbb-3333cccc4444://com.microsoft.identity.client.sample";
  • RedirectUriOnIos = $"msauth.{Bundle.ID}://auth";

Para obter mais informações do Android, consulte Autenticação orientada no Android.

  • Ao criar um aplicativo usando o MSAL Android, você pode configurar o redirect_uri durante a etapa inicial Registro do aplicativo ou adicioná-lo posteriormente.

    • O formato do URI de redirecionamento é: msauth://<yourpackagename>/<base64urlencodedsignature>
    • Exemplo: redirect_uri = msauth://com.azuresamples.myapp/6/aB1cD2eF3gH4iJ5kL6-mN7oP8qR=
  • Para encontrar mais detalhes sobre a configuração do aplicativo MSAL Android, consulte Configuração do MSAL Android.

  • Configurar o URI de redirecionamento em Registros de aplicativo:

    Captura de tela mostrando o painel URI de Redirecionamento e as opções na página Registros de aplicativo.

URI de redirecionamento para aplicativos cliente confidenciais

Para aplicativos Web, o URI de redirecionamento (ou URL de resposta) é o URI que o Microsoft Entra ID usará para enviar o token de volta para o aplicativo. O URI pode ser a URL do aplicativo Web/API Web se o aplicativo confidencial for um deles. O URI de redirecionamento precisa ser registrado no registro do aplicativo. O registro é especialmente importante quando é implantado um aplicativo testado inicialmente de forma local. Em seguida, é necessário adicionar a URL de resposta do aplicativo implantado no portal de registro de aplicativo.

Para aplicativos de daemon, não é necessário especificar um URI de redirecionamento.

Credenciais do aplicativo

Para aplicativos cliente confidenciais, o gerenciamento de credenciais efetivo é essencial. As credenciais podem ser credenciais federadas (recomendadas), um certificado ou um segredo do cliente.

Credenciais de identidade federada

As credenciais de identidade federada são um tipo de credencial que permite que cargas de trabalho, como GitHub Actions, cargas de trabalho em execução no Kubernetes ou cargas de trabalho em execução em plataformas de computação fora do Azure acessem recursos protegidos do Microsoft Entra sem precisar gerenciar segredos usando a federação de identidade de carga de trabalho.

Certificado

Esta opção especifica o certificado para o aplicativo cliente confidencial. Às vezes chamado de chave pública, um certificado é o tipo de credencial recomendado porque ele é considerado mais seguro do que os segredos do cliente.

Segredo do cliente

Esta opção especifica o segredo do cliente para o aplicativo cliente confidencial. O segredo do cliente (senha de aplicativo) é fornecido pelo portal de registro de aplicativo ou fornecido ao Microsoft Entra ID durante o registro do aplicativo com o PowerShell do Microsoft Entra ID, o PowerShell AzureRM ou a CLI do Azure.

Registro em log

Para ajudar em cenários de solução de problemas de falha de depuração e autenticação, o MSAL fornece suporte de log interno. O registro em log em cada biblioteca é abordada nos seguintes artigos:

Próximas etapas

Saiba mais sobre como Criar uma instância de aplicativos cliente usando o MSAL.net e Instanciar aplicativos cliente usando MSAL.js.