Início Rápido: Conectar usuários e chamar o Microsoft Graph em um aplicativo da área de trabalho do Windows
Neste início rápido, você baixa e executa um exemplo de código que demonstra como um aplicativo do WPF (Windows Presentation Foundation) pode conectar usuários e obter um token de acesso para chamar a API do Microsoft Graph. O aplicativo de desktop que você constrói usa o fluxo de código de autorização emparelhado com o padrão Chave de Prova para a Troca de Código (PKCE).
Confira Como o exemplo funciona para ver uma ilustração.
Pré-requisitos
- Visual Studio com a carga de trabalho de desenvolvimento da Plataforma Universal do Windows instalada
Registrar e baixar seu aplicativo de início rápido
Você tem duas opções para iniciar seu aplicativo de início rápido:
- [Express] opção 1: registrar e configurar automaticamente seu aplicativo e, em seguida, baixar seu exemplo de código
- [Manual] Opção 2: registrar e configurar manualmente o aplicativo e o exemplo de código
Opção 1: Registrar e configurar automaticamente seu aplicativo e, em seguida, baixar o exemplo de código
- Acesse o Centro de administração do Microsoft Entra – experiência de início rápido dos registros de aplicativo.
- Insira um nome para seu aplicativo e selecione Registre.
- Siga as instruções para baixar e configurar automaticamente seu novo aplicativo com apenas um clique.
Opção 2: registrar e configurar manualmente o aplicativo e o exemplo de código
Etapa 1: Registrar seu aplicativo
Para registrar seu aplicativo e adicionar as informações de registro do aplicativo à sua solução manualmente, siga estas etapas:
- Entre no centro de administração do Microsoft Entra.
- Se você tiver acesso a vários locatários, use o ícone Configurações
na barra de menu superior para alternar para o locatário onde deseja registrar o aplicativo no menu Diretórios + assinaturas.
- Navegue até Identidade>Aplicativos>Registros de aplicativo e selecione Novo registro.
- Insira um Nome para seu aplicativo, por exemplo,
Win-App-calling-MsGraph
. Os usuários do seu aplicativo podem ver esse nome e você pode alterá-lo mais tarde. - Na seção Tipos de conta com suporte, selecione Contas em qualquer diretório organizacional e contas pessoais da Microsoft (por exemplo, Skype, Xbox, Outlook.com).
- Selecione Registrar para criar o aplicativo.
- Em Gerenciar, selecione Autenticação.
- Selecione Adicionar uma plataforma>Aplicativos móveis e de área de trabalho.
- Na seção URIs de redirecionamento, selecione
https://login.microsoftonline.com/common/oauth2/nativeclient
e, em URIs de redirecionamento personalizados, adicionems-appx-web://microsoft.aad.brokerplugin/{client_id}
onde{client_id}
é a ID do cliente do seu aplicativo (o mesmo GUID que aparece na caixa de seleçãomsal{client_id}://auth
). - Selecione Configurar.
Etapa 2: Baixar o projeto
Baixar o aplicativo de exemplo do WPF
Dica
Para evitar erros causados por limitações de comprimento de caminho no Windows, recomendamos extrair o arquivo ou clonar o repositório em um diretório na raiz da unidade.
Etapa 3: Configurar o projeto
Extraia o arquivo zip para uma pasta local perto da raiz do disco, por exemplo, C:\Azure-Samples.
Abra o projeto no Visual Studio.
Edite App.Xaml.cs e substitua os valores dos campos
ClientId
eTenant
pelo seguinte código:private static string ClientId = "Enter_the_Application_Id_here"; private static string Tenant = "Enter_the_Tenant_Info_Here";
Em que:
Enter_the_Application_Id_here
- é a ID do aplicativo (cliente) que você registrou.Para encontrar os valores da ID do aplicativo (cliente), acesse a página Visão Geral do Centro de administração do Microsoft Entra.
Enter_the_Tenant_Info_Here
- está definido como uma das seguintes opções:Se o aplicativo der suporte a contas neste diretório organizacional, substitua esse valor pelo de ID do Locatário ou de nome de locatário (por exemplo, contoso.microsoft.com)
Se o aplicativo der suporte a contas em qualquer diretório organizacional, substitua esse valor por
organizations
Se o aplicativo der suporte a contas em qualquer diretório organizacional e contas pessoais da Microsoft, substitua esse valor por
common
.Para encontrar os valores da ID do d1iretório (locatário) e dos Tipos de conta compatíveis, acesse a página Visão geral no Centro de administração do Microsoft Entra.
Etapa 4: Executar o aplicativo
Para criar e executar o aplicativo de exemplo no Visual Studio, selecione o Menu de depuração>Iniciar Depuração ou pressione a tecla F5. A janela principal do seu aplicativo é exibida.
Quando a janela principal do aplicativo for exibida, selecione o botão Chamar a API do Microsoft Graph. Você será solicitado a entrar usando sua conta do Microsoft Entra (conta corporativa ou de estudante) ou credenciais de conta da Microsoft (live.com, outlook.com).
Se você estiver executando o aplicativo pela primeira vez, será solicitado que você forneça consentimento para permitir que o aplicativo acesse seu perfil de usuário e entre. Depois de consentir com as permissões solicitadas, o aplicativo exibe que você fez logon com êxito. Você deve ver algumas informações básicas de token e dados de usuário obtidos da chamada para a API do Microsoft Graph.
Mais informações
Como o exemplo funciona
MSAL.NET
MSAL (Microsoft.Identity.Client) é a biblioteca usada para conectar usuários e solicitar tokens usados para acessar uma API protegida pela plataforma de identidade da Microsoft. Você pode instalar a MSAL executando o seguinte comando no Console do Gerenciador de Pacotes do Visual Studio:
Install-Package Microsoft.Identity.Client -IncludePrerelease
Inicialização da MSAL
Você pode adicionar a referência para MSAL adicionando o seguinte código:
using Microsoft.Identity.Client;
Em seguida, inicialize a MSAL usando o seguinte código:
IPublicClientApplication publicClientApp = PublicClientApplicationBuilder.Create(ClientId)
.WithRedirectUri("https://login.microsoftonline.com/common/oauth2/nativeclient")
.WithAuthority(AzureCloudInstance.AzurePublic, Tenant)
.Build();
Em que: | Descrição |
---|---|
ClientId |
É a ID do aplicativo (cliente) do aplicativo registrado no Centro de administração do Microsoft Entra. Você pode encontrar esse valor na página Visão geral do aplicativo no Centro de administração do Microsoft Entra. |
Solicitando tokens
A MSAL tem dois métodos para adquirir tokens: AcquireTokenInteractive
e AcquireTokenSilent
.
Obter um token de usuário interativamente
Algumas situações exigem forçar os usuários a interagir com a plataforma de identidade da Microsoft por meio de uma janela pop-up para validar suas credenciais ou dar consentimento. Alguns exemplos incluem:
- A primeira vez que os usuários entrarem no aplicativo
- Quando os usuários podem precisar inserir novamente suas credenciais porque a senha expirou
- Quando seu aplicativo está solicitando acesso a um recurso que o usuário precisa consentir
- Quando a autenticação de dois fatores é necessária
authResult = await app.AcquireTokenInteractive(_scopes)
.ExecuteAsync();
Em que: | Descrição |
---|---|
_scopes |
Contém os escopos que estão sendo solicitados, como { "user.read" } para o Microsoft Graph ou { "api://<Application ID>/access_as_user" } para APIs Web personalizadas. |
Obter um token de usuário silenciosamente
Você não deseja exigir que o usuário valide suas credenciais sempre que precisar acessar um recurso. Na maioria das vezes, você deseja aquisições e renovação de token sem nenhuma interação do usuário. Você pode usar o método AcquireTokenSilent
para obter tokens para acessar recursos protegidos após o método de AcquireTokenInteractive
inicial:
var accounts = await app.GetAccountsAsync();
var firstAccount = accounts.FirstOrDefault();
authResult = await app.AcquireTokenSilent(scopes, firstAccount)
.ExecuteAsync();
Em que: | Descrição |
---|---|
scopes |
Contém os escopos que estão sendo solicitados, como { "user.read" } para o Microsoft Graph ou { "api://<Application ID>/access_as_user" } para APIs Web personalizadas. |
firstAccount |
Especifica o primeiro usuário no cache (a MSAL dá suporte a vários usuários em um único aplicativo). |
Ajuda e suporte
Se você precisar de ajuda, deseje relatar um problema ou quiser saber mais sobre suas opções de suporte, consulte Ajuda e suporte para desenvolvedores.
Próximas etapas
Experimente o tutorial da área de trabalho do Windows para obter um guia passo a passo completo sobre como criar aplicativos e novos recursos, incluindo uma explicação completa deste início rápido.