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.
Prérequis
- 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 disposez de 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 vos 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 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 n°2 : Inscrire et configurer manuellement vos application et exemple de code
Étape 1 : Inscrivez votre application
Conseil
Les étapes décrites dans cet article peuvent varier légèrement en fonction du portail de départ.
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 tenants, utilisez l’icône Paramètres dans le menu supérieur pour basculer vers le tenant dans lequel vous voulez 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 changer ultérieurement. - Dans la section Types de comptes pris en charge, sélectionnez Comptes dans un annuaire organisationnel et comptes personnels Microsoft (par exemple, Skype, Xbox, Outlook.com) .
- Sélectionnez Inscrire pour créer l’application.
- Sous Gérer, sélectionnez Authentification.
- Sélectionnez Ajouter une plateforme>Applications de bureau et mobiles.
- 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 que celui qui apparaît dans la case à cochermsal{client_id}://auth
). - Sélectionnez Configurer.
Étape 2 : Téléchargez le projet
Téléchargement de l'exemple d'application WPF
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 : 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 connaître les valeurs de l’ID d’application (client), consultez 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 Comptes dans cet annuaire organisationnel, remplacez cette valeur avec l’ID de locataire ou le nom du 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 connaître les valeurs de l’ID d’annuaire (locataire) et les Types de comptes pris en charge, consultez la page Vue d’ensemble de l’application dans le Centre d’administration Microsoft Entra.
Étape 4 : Exécution de 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. La fenêtre principale (MainWindow) de votre application s’affiche.
Quand 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 des informations d'identification de votre compte Microsoft Entra (compte professionnel ou scolaire) ou de votre compte Microsoft (live.com, Outlook.com).
Si vous exécutez l’application pour la première fois, vous serez invité à fournir un consentement pour autoriser l’application à accéder à votre profil utilisateur et à vous connecter. Après avoir donné son consentement aux autorisations demandées, l’application indique que vous avez réussi à vous connecter. Vous devriez voir des informations de jeton de base et des données utilisateur obtenues à partir de l’appel à l’API Microsoft Graph.
Informations complémentaires
Fonctionnement de l’exemple
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 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 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.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.GetAccountsAsync();
var firstAccount = accounts.FirstOrDefault();
authResult = await app.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.