Démarrage rapide : connecter des utilisateurs et appeler Microsoft Graph dans une application UWP
Dans ce guide de démarrage rapide, vous téléchargez et exécutez un exemple de code qui montre comment une application de plateforme Windows universelle (UWP) 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.
Prérequis
- Compte Azure avec un abonnement actif. Créez un compte gratuitement.
- Visual Studio
Remarque
MSAL.NET versions 4.61.0 et ultérieures ne prennent pas en charge la plateforme Windows universelle (UWP), Xamarin Android et Xamarin iOS. Nous vous recommandons de migrer vos applications UWP vers des frameworks modernes comme WINUI. En savoir plus sur la dépréciation dans Annonce de la dépréciation à venir de MSAL.NET pour Xamarin et UWP.
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 au centre d’administration Microsoft Entra – Expérience de démarrage rapide des 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.
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 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,
UWP-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, puis consignez l’ID d’application (client) en vue de son utilisation dans une étape ultérieure.
- Sous Gérer, sélectionnez Authentification.
- Sélectionnez Ajouter une plateforme>Applications de bureau et mobiles.
- Sous URI de redirection, sélectionnez
https://login.microsoftonline.com/common/oauth2/nativeclient
. - Sélectionnez Configurer.
Étape 2 : Téléchargez le projet
Téléchargement de l'exemple d'application UWP
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 l’archive .zip dans un dossier local proche de la racine de votre lecteur. Par exemple, dans C:\Azure-Samples.
Ouvrez le projet dans Visual Studio. Si vous y êtes invité, installez la charge de travail Développement pour la plateforme Windows universelle et éventuellement des composants individuels du kit SDK.
Dans MainPage.Xaml.cs, remplacez la valeur de la variable
ClientId
par l’ID d’application (client) de l’application que vous avez inscrite précédemment.private const string ClientId = "Enter_the_Application_Id_here";
Vous pouvez trouver l'ID d'application (client) dans le volet Présentation de l'application dans le centre d'administration Microsoft Entra (Inscriptions d'>applications d'>applications d'identité>{Inscription de votre application}).
Créez un certificat auto-signé de test pour le package et sélectionnez-le :
- Dans l’Explorateur de solutions, double-cliquez sur le fichier Package.appxmanifest.
- Sélectionnez Empaquetage>Choisir un certificat...>Créer... .
- Entrez un mot de passe, puis sélectionnez OK. Un certificat nommé Native_UWP_V2_TemporaryKey.pfx est créé.
- Sélectionnez OK pour fermer la boîte de dialogue Choisir un certificat, puis vérifiez que Native_UWP_V2_TemporaryKey.pfx s’affiche dans l’Explorateur de solutions.
- Dans l’Explorateur de solutions, cliquez avec le bouton droit sur le projet Native_UWP_V2, puis sélectionnez Propriétés.
- Choisissez Signature, puis sélectionnez le fichier .pfx que vous avez créé dans la liste déroulante Choisir un fichier de clé de nom fort.
Étape 4 : Exécuter l’application
Pour exécuter l’exemple d’application sur votre ordinateur local :
Dans la barre d’outils Visual Studio, choisissez la bonne plateforme (probablement x64 ou x86, mais pas ARM). L’appareil cible doit passer de Appareil à Machine locale.
Sélectionnez Déboguer>Démarrer sans débogage
Si vous êtes invité à le faire, vous devrez peut-être d’abord activer Mode développeur, puis à nouveau Démarrer sans débogage pour lancer l’application.
Quand la fenêtre de l’application s’affiche, vous pouvez sélectionner le bouton Appeler l’API Microsoft Graph, entrer vos informations d’identification, puis donner votre consentement aux autorisations demandées par l’application. En cas de réussite, l’application affiche des informations de jeton ainsi que les données obtenues de l’appel à l’API Microsoft Graph.
Fonctionnement de l’exemple
MSAL.NET
MSAL (Microsoft.Identity.Client) est la bibliothèque utilisée pour connecter les utilisateurs et demander des jetons de sécurité. Les jetons de sécurité sont utilisés pour accéder à une API protégée par la plateforme d'identité 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
Initialisation MSAL
Vous pouvez ajouter la référence de MSAL en ajoutant le code suivant :
using Microsoft.Identity.Client;
MSAL est ensuite initialisé à l’aide du code suivant :
public static IPublicClientApplication PublicClientApp;
PublicClientApp = PublicClientApplicationBuilder.Create(ClientId)
.WithRedirectUri("https://login.microsoftonline.com/common/oauth2/nativeclient")
.Build();
La valeur de ClientId
est l’ID d’application (client) de l’application que vous avez enregistrée dans le centre d’administration Microsoft Entra. Vous pouvez trouver cette valeur sur la page Présentation de l’application dans le centre d’administration Microsoft Entra.
Demande de jetons
MSAL utilise deux méthodes d’acquisition de jetons dans une application UWP : 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 :
- Lorsque des utilisateurs se connectent pour la première fois à 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 PublicClientApp.AcquireTokenInteractive(scopes)
.ExecuteAsync();
Le paramètre 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
Utilisez la méthode AcquireTokenSilent
pour obtenir des jetons d’accès aux ressources protégées après la méthode AcquireTokenInteractive
initiale. 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 voulez que les acquisitions et renouvellements de jetons se fassent sans aucune interaction de l’utilisateur.
var accounts = await PublicClientApp.GetAccountsAsync();
var firstAccount = accounts.FirstOrDefault();
authResult = await PublicClientApp.AcquireTokenSilent(scopes, firstAccount)
.ExecuteAsync();
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 compte du premier utilisateur dans le cache (MSAL prend en charge plusieurs utilisateurs dans une même 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.