Partage via


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

Inscrire et télécharger votre application de démarrage rapide

Vous avez deux options pour démarrer votre application de démarrage rapide :

Option 1 : Inscrire et configurer automatiquement votre application, puis télécharger votre exemple de code

  1. Accédez à l’expérience de démarrage rapide Centre d’administration Microsoft Entra – Inscriptions d’applications.
  2. Entrez un nom pour votre application, puis sélectionnez Inscrire.
  3. 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 :

  1. Connectez-vous au centre d’administration Microsoft Entra .
  2. 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.
  3. Accédez à Identité>Applications>Inscriptions d’applications, puis sélectionnez Nouvelle inscription.
  4. 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.
  5. 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).
  6. Sélectionnez Enregistrer pour créer l'application.
  7. Sous Gérer, sélectionnez Authentification.
  8. Sélectionnez Ajouter une plateforme>Applications mobiles et de bureau.
  9. Dans la section URI de redirection, sélectionnez https://login.microsoftonline.com/common/oauth2/nativeclient et dans URI de redirection personnalisés ajoutez ms-appx-web://microsoft.aad.brokerplugin/{client_id}{client_id} est l’ID d’application (client) de votre application (le même GUID qui apparaît dans la case msal{client_id}://auth).
  10. 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

  1. Extrayez le fichier zip dans un dossier local proche de la racine du disque, par exemple, C :\Azure-Samples.

  2. Ouvrez le projet dans Visual Studio.

  3. Modifiez App.Xaml.cs et remplacez les valeurs des champs ClientId et Tenant 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

Diagramme montrant comment fonctionne l’exemple d’application généré par ce guide de démarrage rapide.

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.