Iniciar sessão de utilizadores numa aplicação de ambiente de trabalho WPF de exemplo
Este guia usa um aplicativo WPF (Windows Presentation Foundation) de exemplo para mostrar como adicionar autenticação a um aplicativo de área de trabalho WPF. O aplicativo de exemplo permite que os usuários entrem e saiam. O aplicativo de área de trabalho de exemplo usa a Biblioteca de Autenticação da Microsoft para .NET para .NET para manipular a autenticação.
Pré-requisitos
- Visual Studio Code ou outro editor de código.
- .NET 7.0 ou posterior.
- Um locatário externo. Para criar um, escolha um dos seguintes métodos:
- (Recomendado) Use a extensão de ID Externa do Microsoft Entra para configurar um locatário externo diretamente no Visual Studio Code.
- Crie um novo locatário externo no centro de administração do Microsoft Entra.
Registar a aplicação de ambiente de trabalho
Para permitir que seu aplicativo entre usuários com o Microsoft Entra, a ID Externa do Microsoft Entra deve estar ciente do aplicativo criado. O registo da aplicação estabelece uma relação de confiança entre a aplicação e o Microsoft Entra. Quando você registra um aplicativo, o ID externo gera um identificador exclusivo conhecido como ID do aplicativo (cliente), um valor usado para identificar seu aplicativo ao criar solicitações de autenticação.
As etapas a seguir mostram como registrar seu aplicativo no centro de administração do Microsoft Entra:
Entre no centro de administração do Microsoft Entra como pelo menos um desenvolvedor de aplicativos.
Se tiver acesso a vários inquilinos, utilize o ícone Definições no menu superior para mudar para o inquilino externo a partir do menu Diretórios + subscrições.
Navegue até Registros do aplicativo Identity>Applications>.
Selecione + Novo registo.
Na página Registar uma candidatura que aparece;
- Insira um Nome de aplicativo significativo que é exibido para os usuários do aplicativo, por exemplo, ciam-client-app.
- Em Tipos de conta suportados, selecione Contas somente neste diretório organizacional.
Selecione Registar.
O painel Visão geral do aplicativo é exibido após o registro bem-sucedido. Registre o ID do aplicativo (cliente) a ser usado no código-fonte do aplicativo.
Especifique sua plataforma de aplicativo
Para especificar o tipo de aplicativo para o registro do aplicativo, siga estas etapas:
- Em Gerir, selecione Autenticação.
- Na página Configurações da plataforma, selecione Adicionar uma plataforma e, em seguida, selecione a opção Aplicativos móveis e de desktop.
- No campo de entrada em URI de redirecionamento personalizado, insira
https://login.microsoftonline.com/common/oauth2/nativeclient
manualmente e, em seguida, selecione Configurar. Se você selecionar esse URI na caixa de seleção, poderá receber um erro de URI de redirecionamento.
Conceder consentimento do administrador
Depois de registrar seu aplicativo, ele recebe a permissão User.Read . No entanto, como o locatário é um locatário externo, os próprios usuários do cliente não podem consentir com essa permissão. Você, como administrador, deve consentir com essa permissão em nome de todos os usuários no locatário:
Na página Registros de aplicativos, selecione o aplicativo que você criou (como ciam-client-app) para abrir a página Visão geral.
Em Gerenciar, selecione Permissões de API.
- Selecione Conceder consentimento de administrador para <o nome> do seu inquilino e, em seguida, selecione Sim.
- Selecione Atualizar e verifique se Concedido para <o nome> do locatário aparece em Status da permissão.
Criar um fluxo de utilizador
Siga estas etapas para criar um fluxo de usuário que um cliente pode usar para entrar ou se inscrever em um aplicativo.
Entre no centro de administração do Microsoft Entra como pelo menos um Administrador de Fluxo de Usuário de ID Externo.
Se tiver acesso a vários inquilinos, utilize o ícone Definições no menu superior para mudar para o inquilino externo a partir do menu Diretórios + subscrições.
Navegue até Identidades> externas Fluxos>de usuário.
Selecione + Novo fluxo de usuário.
Na página Criar:
Insira um Nome para o fluxo de usuário, como SignInSignUpSample.
Na lista Provedores de identidade, selecione Contas de email. Esse provedor de identidade permite que os usuários entrem ou se inscrevam usando seu endereço de e-mail.
Nota
Provedores de identidade adicionais serão listados aqui somente depois que você configurar a federação com eles. Por exemplo, se você configurar a federação com o Google ou o Facebook, poderá selecionar esses provedores de identidade adicionais aqui.
Em Contas de e-mail, pode selecionar uma das duas opções. Para este tutorial, selecione E-mail com senha.
- E-mail com senha: permite que novos usuários se inscrevam e entrem usando um endereço de e-mail como nome de login e uma senha como sua credencial de primeiro fator.
- Senha única de e-mail: permite que novos usuários se inscrevam e entrem usando um endereço de e-mail como nome de entrada e senha única de e-mail como sua credencial de primeiro fator. A senha única de e-mail deve ser habilitada no nível do locatário (All Identity Providers>Email One-time-passcode) para que essa opção esteja disponível no nível do fluxo do usuário.
Em Atributos de usuário, escolha os atributos que você deseja coletar do usuário no momento da inscrição. Ao selecionar Mostrar mais, você pode escolher atributos e declarações para País/Região, Nome para exibição e Código Postal. Selecione OK. (Os usuários só são solicitados a fornecer atributos quando se inscrevem pela primeira vez.)
Selecione Criar. O novo fluxo de usuário aparece na lista Fluxos de usuário. Se necessário, atualize a página.
Para habilitar a redefinição de senha de autoatendimento, use as etapas no artigo Habilitar redefinição de senha de autoatendimento.
Associar o aplicativo WPF ao fluxo de usuários
Para que os usuários clientes vejam a experiência de inscrição ou entrada quando usam seu aplicativo, você precisa associar seu aplicativo a um fluxo de usuário. Embora muitos aplicativos possam ser associados ao seu fluxo de usuário, um único aplicativo só pode ser associado a um fluxo de usuário.
No menu da barra lateral, selecione Identidade.
Selecione Identidades externas e, em seguida , Fluxos de usuário.
Na página Fluxos de usuário, selecione o nome do fluxo de usuário criado anteriormente, por exemplo, SignInSignUpSample.
Em Usar, selecione Aplicativos.
Selecione Adicionar aplicativo.
Selecione o aplicativo na lista, como ciam-client-app , ou use a caixa de pesquisa para localizar o aplicativo e, em seguida, selecione-o.
Escolha Selecionar.
Depois de associar seu aplicativo a um fluxo de usuário, você pode testar seu fluxo de usuário simulando a experiência de inscrição ou entrada de um usuário com seu aplicativo a partir do centro de administração do Microsoft Entra. Para fazer isso, use as etapas em Testar seu fluxo de usuário de inscrição e login.
Clone ou baixe um aplicativo WPF de exemplo
Para obter o aplicativo de exemplo, você pode cloná-lo do GitHub ou baixá-lo como um arquivo .zip.
Para clonar o exemplo, abra um prompt de comando e navegue até onde deseja criar o projeto e digite o seguinte comando:
git clone https://github.com/Azure-Samples/ms-identity-ciam-dotnet-tutorial.git
Transfira o ficheiro .zip. Extraia-o para um caminho de arquivo onde o comprimento do nome é inferior a 260 caracteres.
Configurar o aplicativo WPF de exemplo
Abra o projeto em seu IDE (como Visual Studio ou Visual Studio Code) para configurar o código.
No editor de códigos, abra o arquivo appsettings.json na pasta ms-identity-ciam-dotnet-tutorial>1-Authentication>5-sign-in-dotnet-wpf.
Substitua
Enter_the_Application_Id_Here
pelo ID do aplicativo (cliente) do aplicativo que você registrou anteriormente.Substitua
Enter_the_Tenant_Subdomain_Here
pelo subdomínio Directory (locatário). Por exemplo, se o seu domínio principal for contoso.onmicrosoft.com, substituaEnter_the_Tenant_Subdomain_Here
por contoso. Se não tiver o seu domínio principal, saiba como ler os detalhes do inquilino.
Executar e testar o aplicativo de desktop WPF de exemplo
Abra uma janela do console e mude para o diretório que contém o aplicativo de exemplo de área de trabalho WPF:
cd 1-Authentication\5-sign-in-dotnet-wpf
No seu terminal, execute o aplicativo executando o seguinte comando:
dotnet run
Depois de iniciar o exemplo, você verá uma janela com um botão de entrada . Selecione o botão Entrar .
Na página de início de sessão, introduza o endereço de e-mail da sua conta. Se você não tiver uma conta, selecione Sem conta? Crie um, que inicia o fluxo de inscrição. Siga esse fluxo para criar uma nova conta e entrar.
Depois de entrar, você verá uma tela exibindo o login bem-sucedido e informações básicas sobre sua conta de usuário armazenadas no token recuperado. As informações básicas são exibidas na seção Informações do token da tela de entrada
Como funciona
A configuração principal para o aplicativo cliente público é tratada dentro do arquivo App.xaml.cs . A PublicClientApplication
é inicializado junto com um cache para armazenar tokens de acesso. O aplicativo primeiro verificará se há um token armazenado em cache que pode ser usado para fazer login do usuário. Se não houver nenhum token armazenado em cache, o usuário será solicitado a fornecer credenciais e entrar. Ao sair, o cache é limpo de todas as contas e todos os tokens de acesso correspondentes.