Démarrage rapide : Connecter des utilisateurs et appeler Microsoft Graph dans une application de bureau Windows
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. L’application de bureau que vous générez utilise le flux de code d’autorisation associé à la norme Proof Key for Code Exchange (PKCE).
Consultez Fonctionnement de l’exemple pour obtenir une illustration.
Conditions préalables
- Visual Studio avec la charge de travail plateforme Windows universelle de développement installée
Inscrire et télécharger votre application de démarrage rapide
Vous avez deux options pour démarrer votre application de démarrage rapide :
- [Express] Option 1 : Inscrire et configurer automatiquement votre application, puis télécharger votre exemple de code
- [Manuel] Option 2 : Inscrire et configurer manuellement votre application et exemple de code
Option 1 : Inscrire et configurer automatiquement votre application, puis télécharger votre exemple de code
- Accédez à l’expérience de démarrage rapide Centre d’administration Microsoft Entra – Inscriptions d’applications.
- Entrez un nom pour votre application, puis sélectionnez Inscrire.
- Suivez les instructions pour télécharger et configurer automatiquement votre nouvelle application en un seul clic.
Option 2 : Inscrire et configurer manuellement votre application et exemple de code
Étape 1 : Inscrire votre application
Pour inscrire votre application et ajouter manuellement les informations d’inscription de l’application à votre solution, procédez comme suit :
- Connectez-vous au centre d’administration Microsoft Entra .
- Si vous avez accès à plusieurs locataires, utilisez l’icône Paramètres
dans le menu supérieur pour basculer vers le locataire dans lequel vous souhaitez inscrire l’application à partir du menu Répertoires + abonnements.
- Accédez à Identité>Applications>Inscriptions d’applications, puis sélectionnez Nouvelle inscription.
- Entrez un nom pour votre application (par exemple,
Win-App-calling-MsGraph
). Les utilisateurs de votre application peuvent voir ce nom et vous pouvez le modifier ultérieurement. - Dans la section Types de comptes pris en charge, sélectionnez Comptes dans n’importe quel annuaire organisationnel et comptes Microsoft personnels (par exemple, Skype, Xbox, Outlook.com).
- Sélectionnez Enregistrer pour créer l'application.
- Sous Gérer, sélectionnez Authentification.
- Sélectionnez Ajouter une plateforme>Applications mobiles et de bureau.
- Dans la section URI de redirection, sélectionnez
https://login.microsoftonline.com/common/oauth2/nativeclient
et dans URI de redirection personnalisés ajoutezms-appx-web://microsoft.aad.brokerplugin/{client_id}
où{client_id}
est l’ID d’application (client) de votre application (le même GUID qui apparaît dans la casemsal{client_id}://auth
). - Sélectionnez . Configurer.
Étape 2 : Télécharger le projet
Télécharger l’exemple d’application WPF
Conseil
Pour éviter les erreurs provoquées par des limitations de longueur de chemin d’accès 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 : Configurer le projet
Extrayez le fichier zip dans un dossier local proche de la racine du disque, par exemple, C :\Azure-Samples.
Ouvrez le projet dans Visual Studio.
Modifiez App.Xaml.cs et remplacez les valeurs des champs
ClientId
etTenant
par le code suivant :private static string ClientId = "Enter_the_Application_Id_here"; private static string Tenant = "Enter_the_Tenant_Info_Here";
Où:
Enter_the_Application_Id_here
est l’ID d’application (client) pour l’application que vous avez inscrite.Pour rechercher la valeur de l’ID d’application (client) , accédez à la page Vue d’ensemble de l’application dans le Centre d’administration Microsoft Entra.
Enter_the_Tenant_Info_Here
: est défini sur l’une des options suivantes :Si votre application prend en charge les comptes dans cet annuaire organisationnel, remplacez cette valeur par l'ID de locataire ou le nom de locataire (par exemple, contoso.microsoft.com)
Si votre application prend en charge Comptes dans un annuaire organisationnel, remplacez cette valeur par
organizations
Si votre application prend en charge Comptes dans un annuaire organisationnel et comptes personnels Microsoft, remplacez cette valeur par
common
.Pour rechercher les valeurs de ID d'annuaire (locataire) et types de comptes pris en charge, accédez à la page Vue d’ensemble de l’application dans le Centre d’administration Microsoft Entra.
Étape 4 : Exécuter l’application
Pour générer et exécuter l’exemple d’application dans Visual Studio, sélectionnez le menu Déboguer>Démarrer le débogage, ou appuyez sur la touche F5. MainWindow de votre application s’affiche.
Lorsque la fenêtre principale de l’application s’affiche, sélectionnez le bouton Appeler l’API Microsoft Graph. Vous serez invité à vous connecter à l’aide de votre compte Microsoft Entra (compte professionnel ou scolaire) ou des informations d’identification de compte Microsoft (live.com, outlook.com).
Si vous exécutez l’application pour la première fois, vous êtes invité à fournir le consentement pour permettre à l’application d’accéder à votre profil utilisateur et de vous connecter. Après avoir accepté les autorisations demandées, l’application affiche que vous avez correctement connecté. Vous devriez voir quelques informations de base sur le jeton et des données utilisateur obtenues à partir de l’appel à l’API Microsoft Graph.
Plus d’informations
Fonctionnement de l’exemple
MSAL.NET
MSAL (Microsoft.Identity.Client) est la bibliothèque utilisée pour connecter des utilisateurs et demander des jetons utilisés pour 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 l'console du Gestionnaire de package de Visual Studio :
Install-Package Microsoft.Identity.Client -IncludePrerelease
Initialisation de MSAL
Vous pouvez ajouter la référence pour 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 |
ID de l'application (client) pour l’application enregistrée dans le centre d’administration Microsoft Entra. Vous pouvez trouver cette valeur dans la page Vue d’ensemble de l'application, dans le Centre d'administration Microsoft Entra. |
Demande de jetons
MSAL a deux méthodes pour acquérir des jetons : AcquireTokenInteractive
et AcquireTokenSilent
.
Obtenir un jeton utilisateur de manière interactive
Certaines situations nécessitent que les utilisateurs interagissent avec la plateforme d’identités Microsoft via une fenêtre contextuelle pour valider leurs informations d’identification ou donner leur consentement. Voici quelques exemples :
- La première fois que les utilisateurs se connectent à l’application
- Lorsque les utilisateurs peuvent avoir besoin de réentérer leurs informations d’identification, car le mot de passe a expiré
- Lorsque votre application demande l’accès à une ressource que l’utilisateur doit donner son consentement
- Quand l’authentification à deux facteurs est requise
authResult = await app.AcquireTokenInteractive(_scopes)
.ExecuteAsync();
Où: | Description |
---|---|
_scopes |
Contient les étendues demandées, telles que { "user.read" } pour Microsoft Graph ou { "api://<Application ID>/access_as_user" } pour les API web personnalisées. |
Obtenir un jeton utilisateur en mode silencieux
Vous ne souhaitez pas demander à l’utilisateur de valider ses informations d’identification chaque fois qu’il doit accéder à une ressource. La plupart du temps, vous souhaitez acquérir et renouveler des jetons sans aucune interaction 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 de AcquireTokenInteractive
initiale :
var accounts = await app.GetAccountsAsync();
var firstAccount = accounts.FirstOrDefault();
authResult = await app.AcquireTokenSilent(scopes, firstAccount)
.ExecuteAsync();
Où: | Description |
---|---|
scopes |
Contient les étendues demandées, telles que { "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, souhaitez signaler un problème ou pour 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 obtenir un guide pas à pas complet sur la création d’applications et de nouvelles fonctionnalités, notamment une explication complète de ce guide de démarrage rapide.