Guia de início rápido: adquira um token e chame a API do Microsoft Graph de um aplicativo da área de trabalho do Windows
Boas-vindas! Esta provavelmente não é a página que você estava esperando. Enquanto trabalhamos em uma correção, este link deve levá-lo ao artigo certo:
Pedimos desculpas pelo inconveniente e agradecemos a sua paciência enquanto trabalhamos para resolver este problema.
Neste início rápido, você baixa e executa um exemplo de código que demonstra como um aplicativo do Windows Presentation Foundation (WPF) pode entrar em usuários e obter um token de acesso para chamar a API do Microsoft Graph.
Consulte Como funciona o exemplo para obter uma ilustração.
Passo 1: Configurar a aplicação no portal do Azure
Para que o exemplo de código neste início rápido funcione, adicione um URI de redirecionamento de https://login.microsoftonline.com/common/oauth2/nativeclient
e ms-appx-web://microsoft.aad.brokerplugin/{client_id}
.
Seu aplicativo está configurado com esses atributos.
Passo 2: Transfira o seu projeto do Visual Studio
Execute o projeto usando o Visual Studio 2019.
Gorjeta
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 perto da raiz da unidade.
Etapa 3: Seu aplicativo está configurado e pronto para ser executado
Configuramos seu projeto com valores das propriedades do seu aplicativo e ele está pronto para ser executado.
Nota
Enter_the_Supported_Account_Info_Here
Mais informações
Como funciona a amostra
MSAL.NET
MSAL (Microsoft.Identity.Client) é a biblioteca usada para entrar usuários e solicitar tokens usados para acessar uma API protegida pela plataforma de identidade da Microsoft. Pode instalar a MSAL ao executar o comando seguinte na Consola do Gestor de Pacotes do Visual Studio:
Install-Package Microsoft.Identity.Client -IncludePrerelease
Inicialização da MSAL
Pode adicionar a referência para MSAL, adicionando o código seguinte:
using Microsoft.Identity.Client;
Em seguida, inicialize a MSAL com o código seguinte:
IPublicClientApplication publicClientApp = PublicClientApplicationBuilder.Create(ClientId)
.WithRedirectUri("https://login.microsoftonline.com/common/oauth2/nativeclient")
.WithAuthority(AzureCloudInstance.AzurePublic, Tenant)
.Build();
Em que: | Description |
---|---|
ClientId |
É o ID de Aplicação (cliente) da aplicação registada no portal do Azure. Pode encontrar este valor na página Descrição geral da aplicação no portal do Azure. |
Solicitar tokens
A MSAL tem dois métodos para comprar tokens: AcquireTokenInteractive
e AcquireTokenSilent
.
Obter um token de utilizador 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 utilizadores iniciam sessão na aplicação
- Quando os utilizadores possam ter de reintroduzir as respetivas credenciais por a palavra-passe ter expirado
- Quando a aplicação está a pedir acesso a um recurso para o qual o utilizador tem de dar consentimento
- Quando é necessária autenticação de dois fatores
authResult = await App.PublicClientApp.AcquireTokenInteractive(_scopes)
.ExecuteAsync();
Em que: | Description |
---|---|
_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 da Web personalizadas. |
Obter um token de utilizador automaticamente
Não vai querer exigir que o utilizador valide as suas credenciais sempre que tiver de aceder a um recurso. Na maioria das vezes, vai querer que as aquisições e renovação de tokens sejam feitas sem qualquer interação do utilizador. Pode utilizar o método AcquireTokenSilent
para obter tokens para aceder a recursos protegidos após o método AcquireTokenInteractive
inicial:
var accounts = await App.PublicClientApp.GetAccountsAsync();
var firstAccount = accounts.FirstOrDefault();
authResult = await App.PublicClientApp.AcquireTokenSilent(scopes, firstAccount)
.ExecuteAsync();
Em que: | Description |
---|---|
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 da Web personalizadas. |
firstAccount |
Especifica o primeiro utilizador na cache (a MSAL suporta vários utilizadores numa única aplicação). |
Ajuda e suporte
Se precisar de ajuda, quiser comunicar um problema ou quiser saber mais sobre as suas opções de suporte, consulte Ajuda e suporte para programadores.
Próximos passos
Experimente o tutorial do ambiente de trabalho do Windows para obter um guia passo a passo completo sobre a criação de aplicações e novas funcionalidades, incluindo uma explicação completa deste início rápido.