Partilhar via


Opções de configuração do aplicativo

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

Autoridade

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

As autoridades comuns são:

URLs de autoridade comum Quando utilizar o
https://login.microsoftonline.com/<tenant>/ Inicie sessão apenas utilizadores 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/ Inicie sessão em utilizadores com contas escolares e profissionais ou contas Microsoft pessoais.
https://login.microsoftonline.com/organizations/ Inicie sessão em utilizadores com contas escolares e profissionais.
https://login.microsoftonline.com/consumers/ Inicie sessão em utilizadores apenas com contas Microsoft pessoais (MSA).

A autoridade especificada em seu 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 Microsoft Entra.
  • Uma autoridade B2C do Azure AD. Consulte as especificidades do B2C.
  • Uma autoridade dos Serviços de Federação do Ative Directory (AD FS). Consulte Suporte do AD FS.

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

  • A instância do provedor de identidade
  • O utilizador de início de sessão da app

A instância e a audiência podem ser concatenadas e fornecidas como a URL da autoridade. Este diagrama mostra como o URL da autoridade é composto:

Como é composto o URL da autoridade

Instância na nuvem

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

MSAL.NET lança uma exceção explícita se ambos Instance forem AzureCloudInstance especificados.

Se você não especificar uma instância, seu aplicativo terá como alvo a instância de nuvem pública do Azure (a instância da URL https://login.onmicrosoftonline.com).

Público do aplicativo

O público de início de sessão depende das necessidades comerciais da sua aplicação:

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

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

Usando MSAL em seu código, você especifica a audiência usando um dos seguintes valores:

  • A enumeração de audiência de autoridade do Microsoft Entra
  • O ID do inquilino, que pode ser:
    • Um GUID (a ID da sua instância do Microsoft Entra), para aplicativos de locatário único
    • Um nome de domínio associado à sua instância do Microsoft Entra (também para aplicativos de locatário único)
  • Um destes espaços reservados como um ID de locatário no lugar da enumeração de audiência de autoridade do Microsoft Entra:
    • organizations para um aplicativo multilocatário
    • consumers Para iniciar sessão em utilizadores apenas com as respetivas contas pessoais
    • common para iniciar sessão em utilizadores com as respetivas contas escolares e profissionais ou com as respetivas contas Microsoft pessoais

O MSAL lança uma exceção significativa se você especificar a audiência de autoridade do Microsoft Entra e a ID do locatário.

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

Audiência efetiva

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

Atualmente, a única maneira de fazer com que um aplicativo entre usuários apenas com contas pessoais da Microsoft é definir estas duas configurações:

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

ID de Cliente

A ID do cliente é a ID exclusiva do Aplicativo (cliente) atribuída ao seu aplicativo pela ID do Microsoft Entra quando o aplicativo foi registrado. Você pode encontrar o ID do Aplicativo (Cliente) na página Visão geral do aplicativo em Entra ID>Aplicativos Empresariais.

Redirecionar URL

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

Redirecionar URI para aplicativos cliente públicos

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

  • Você gostaria de usar .WithDefaultRedirectUri() em aplicativos de desktop (MSAL.NET 4.1+). O .WithDefaultRedirectUri() método 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 Redirecionar URL
    Aplicação de ambiente de trabalho (.NET Framework) https://login.microsoftonline.com/common/oauth2/nativeclient
    UWP (Plataforma Universal do Windows) valor de WebAuthenticationBroker.GetCurrentApplicationCallbackUri(). Isso permite o logon único (SSO) com o navegador, definindo o valor para o resultado de WebAuthenticationBroker.GetCurrentApplicationCallbackUri(), que você precisa registrar
    .NET https://localhost permite que o usuário use o navegador do sistema para autenticação interativa, uma vez que o .NET não tem uma interface do usuário para a exibição da Web incorporada no momento.

Você pode substituir o URI de redirecionamento usando a RedirectUri propriedade (por exemplo, se você usar corretores). 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 detalhes sobre o Android, consulte Brokered auth in Android.

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

    • 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.

  • Configure o URI de redirecionamento em Registros de aplicativos:

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

Redirecionar URI para aplicativos cliente confidenciais

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

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

Credenciais do aplicativo

Para aplicativos cliente confidenciais, gerenciar credenciais de forma eficaz é essencial. As credenciais podem ser credenciais federadas (recomendadas), um certificado ou um segredo de cliente.

Credenciais de identidade federada

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

Certidão

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 eles são considerados mais seguros 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 do aplicativo) é fornecido pelo portal de registro do aplicativo ou fornecido ao Microsoft Entra ID durante o registro do aplicativo com o PowerShell Microsoft Entra ID, PowerShell AzureRM ou CLI do Azure.

Registo

Para ajudar na depuração e na solução de problemas de falha de autenticação, o MSAL fornece suporte interno ao registro em log. O login em cada biblioteca é abordado nos seguintes artigos:

Próximos passos

Saiba mais sobre como instanciar aplicativos cliente usando MSAL.NET e instanciar aplicativos cliente usando MSAL.js.