Démarrage rapide : Acquérir un jeton et appeler l’API Microsoft Graph à partir d’une application de bureau Windows

Bienvenue ! Ce n’est probablement pas la page que vous attendiez. Pendant que nous travaillons sur un correctif, ce lien devrait vous permettre d’accéder au bon article :

Démarrage rapide : Connecter des utilisateurs et appeler Microsoft Graph dans une application de bureau Windows

Nous vous prions de nous excuser pour le désagrément et nous vous remercions de votre patience.

Dans ce guide de démarrage rapide, vous téléchargez et exécutez un exemple de code qui montre comment une application Windows Presentation Foundation (WPF) peut connecter des utilisateurs et obtenir un jeton d’accès pour appeler l’API Microsoft Graph.

Consultez Fonctionnement de l’exemple pour obtenir une illustration.

Étape 1 : Configurer votre application dans le portail Azure

Pour que l’exemple de code de ce guide de démarrage rapide fonctionne, ajoutez l’URI de redirectionhttps://login.microsoftonline.com/common/oauth2/nativeclient et ms-appx-web://microsoft.aad.brokerplugin/{client_id}.

Already configured Votre application est configurée avec ces attributs.

Étape 2 : Télécharger votre projet Visual Studio

Exécutez le projet à l’aide de Visual Studio 2019.

Conseil

Pour éviter les erreurs dues à des limitations de longueur de chemin dans Windows, nous vous recommandons d’extraire l’archive ou de cloner le référentiel dans un répertoire près de la racine de votre lecteur.

Étape 3 : Votre application est configurée et prête à être exécutée

Nous avons configuré votre projet avec les valeurs des propriétés de votre application et il est prêt à être exécuté.

Notes

Enter_the_Supported_Account_Info_Here

Informations complémentaires

Fonctionnement de l’exemple

Shows how the sample app generated by this quickstart works

MSAL.NET

MSAL (Microsoft.Identity.Client) est la bibliothèque utilisée pour connecter les utilisateurs et demander des jetons permettant d’accéder à une API protégée par la plateforme d’identités Microsoft. Vous pouvez installer MSAL en exécutant la commande suivante dans la console du gestionnaire de package de Visual Studio :

Install-Package Microsoft.Identity.Client -IncludePrerelease

Initialisation MSAL

Vous pouvez ajouter la référence de MSAL en ajoutant le code suivant :

using Microsoft.Identity.Client;

Ensuite, initialisez MSAL à l’aide du code suivant :

IPublicClientApplication publicClientApp = PublicClientApplicationBuilder.Create(ClientId)
                .WithRedirectUri("https://login.microsoftonline.com/common/oauth2/nativeclient")
                .WithAuthority(AzureCloudInstance.AzurePublic, Tenant)
                .Build();
Où : Description
ClientId Est l’ID d’application (client) de l’application inscrite dans le portail Azure. Vous pouvez retrouver cette valeur dans la page Vue d’ensemble de l’application dans le portail Azure.

Demande de jetons

MSAL utilise deux méthodes d’acquisition de jetons : AcquireTokenInteractive et AcquireTokenSilent.

Obtenir un jeton d’utilisateur de manière interactive

Certaines situations obligent les utilisateurs à interagir avec la plateforme d’identités Microsoft via une fenêtre contextuelle pour qu’ils valident leurs informations d’identification ou qu’ils donnent leur consentement. Voici quelques exemples :

  • La première connexion des utilisateurs à l’application
  • Quand les utilisateurs doivent de nouveau entrer leurs informations d’identification, car le mot de passe a expiré
  • Lorsque votre application demande l’accès à une ressource pour laquelle l’utilisateur doit donner son consentement
  • Lorsqu’une authentification à 2 facteurs est requise
authResult = await App.PublicClientApp.AcquireTokenInteractive(_scopes)
                                      .ExecuteAsync();
Où : Description
_scopes Contient les étendues demandées, comme { "user.read" } pour Microsoft Graph ou { "api://<Application ID>/access_as_user" } pour les API web personnalisées.

Obtenir un jeton d’utilisateur en mode silencieux

Vous ne voulez pas obliger l’utilisateur à valider ses informations d’identification à chaque fois qu’il doit accéder à une ressource. La plupart du temps, vous souhaitez que les acquisitions et renouvellements de jetons se fassent sans aucune interaction de l’utilisateur. Vous pouvez utiliser la méthode AcquireTokenSilent pour obtenir des jetons pour accéder aux ressources protégées après la méthode AcquireTokenInteractive initiale :

var accounts = await App.PublicClientApp.GetAccountsAsync();
var firstAccount = accounts.FirstOrDefault();
authResult = await App.PublicClientApp.AcquireTokenSilent(scopes, firstAccount)
                                      .ExecuteAsync();
Où : Description
scopes Contient les étendues demandées, comme { "user.read" } pour Microsoft Graph ou { "api://<Application ID>/access_as_user" } pour les API web personnalisées.
firstAccount Spécifie le premier utilisateur dans le cache (MSAL prend en charge plusieurs utilisateurs dans une seule application).

Aide et support

Si vous avez besoin d’aide, si vous souhaitez signaler un problème ou si vous voulez en savoir plus sur vos options de support, consultez Aide et support pour les développeurs.

Étapes suivantes

Essayez le didacticiel de bureau Windows pour apprendre à créer, étape par étape, des applications et des fonctionnalités, y compris une explication complète de ce démarrage rapide.