Connecter des utilisateurs dans un exemple d'application de bureau WPF

Cet article utilise un exemple d'application Windows Presentation Foundation (WPF) pour vous montrer comment ajouter l'authentification à une application de bureau WPF. L'exemple d'application permet aux utilisateurs de se connecter et de se déconnecter. L'exemple d'application de bureau utilise la bibliothèque d'authentification Microsoft pour .NET pour .NET pour gérer l'authentification.

Prérequis

Enregistrez l'application de bureau

Pour permettre à votre application de connecter des utilisateurs avec Microsoft Entra, vous devez informer ID externe Microsoft Entra de l’existence de l’application que vous créez. L’inscription d’application établit une relation de confiance entre l’application et Microsoft Entra. Lorsque vous enregistrez une application, l'ID externe génère un identifiant unique appelé ID d'application (client), une valeur utilisée pour identifier votre application lors de la création de demandes d'authentification.

Les étapes suivantes vous montrent comment inscrire votre application dans le centre d’administration Microsoft Entra :

  1. Connectez-vous au centre d’administration de Microsoft Entra au minimum en tant que Développeur d’application.

  2. Si vous avez accès à plusieurs tenants, utilisez l’icône Paramètres dans le menu supérieur pour basculer vers votre tenant externe depuis le menu Répertoires + abonnements.

  3. Accédez à Identité>Applications>Inscriptions d’applications.

  4. Sélectionnez + Nouvelle inscription.

  5. Dans la page Inscrire une application qui s’affiche ;

    1. Dans Nom, entrez un nom d’application explicite qui va être présenté aux utilisateurs de l’application, par exemple ciam-client-app.
    2. Sous Types de comptes pris en charge, sélectionnez Comptes dans cet annuaire organisationnel uniquement.
  6. Sélectionnez Inscription.

  7. Le volet Vue d’ensemble de l’application s’affiche après une inscription réussie. Enregistrez l'ID d'application (client) à utiliser dans le code source de votre application.

Spécifiez votre plate-forme d'application

Pour spécifier le type de votre application dans votre inscription d’application, suivez ces étapes :

  1. Sous Gérer, sélectionnez Authentification.
  2. Dans la page Configurations de plateforme, sélectionnez Ajouter une plateforme, puis sélectionnez l’option Application mobile et de bureau.
  3. Dans le champ de saisie sous URI de redirection personnalisé, saisissez manuellement https://login.microsoftonline.com/common/oauth2/nativeclient, puis sélectionnez Configurer. Si vous sélectionnez cet URI dans la zone de sélection, vous pouvez obtenir une erreur d'URI de redirection.

Accorder des autorisations d’API

Comme cette application permet aux utilisateurs de se connecter, ajoutez des autorisations déléguées :

  1. Dans la page inscriptions d’applications, sélectionnez l’application que vous avez créée (par exemple, ciam-client-app) pour ouvrir sa page Vue d’ensemble.

  2. Sous Gérer, sélectionnez Autorisations de l’API.

  3. Sous Autorisations configurées, sélectionnez Ajouter une autorisation.

  4. Sélectionnez l’onglet API Microsoft.

  5. Dans la section API Microsoft couramment utilisées, sélectionnez Microsoft Graph.

  6. Sélectionnez l’option Autorisations déléguées.

  7. Dans la section Sélectionner les autorisations, recherchez et sélectionnez les deux autorisations openid et offline_access.

  8. Sélectionnez le bouton Ajouter des autorisations.

  9. À ce stade, vous avez attribué les autorisations correctement. Toutefois, comme le locataire est celui d’un client, les utilisateurs consommateurs eux-mêmes ne peuvent pas donner leur consentement à ces autorisations. En qualité d’administrateur, vous devez consentir à ces autorisations au nom de tous les utilisateurs du locataire :

    1. Sélectionnez Accorder le consentement administrateur pour <nom de votre locataire>, puis sélectionnez Oui.
    2. Sélectionnez Actualiser, puis vérifiez que Accordé pour <nom de votre locataire> s’affiche sous État pour les deux étendues.

Créer un flux utilisateur

Suivez ces étapes pour créer un flux utilisateur qu’un client peut utiliser pour se connecter ou s’inscrire à une application.

  1. Connectez-vous au Centre d’administration Microsoft Entra au moins en tant qu’Administrateur de flux d’utilisateurs ID externe.

  2. Si vous avez accès à plusieurs tenants, utilisez l’icône Paramètres dans le menu supérieur pour basculer vers votre tenant externe depuis le menu Répertoires + abonnements.

  3. Accédez à Identité>Identités externes>Flux utilisateur.

  4. Sélectionnez + Nouveau flux utilisateur.

  5. Dans la page Créer :

    1. Entrez un nom pour le flux utilisateur, par exemple, SignInSignUpSample.

    2. Dans la liste Fournisseurs d’identité, sélectionnez Comptes de messagerie. Ce fournisseur d’identité permet aux utilisateurs de se connecter ou de s’inscrire avec leur adresse e-mail.

      Notes

      Les fournisseurs d’identité supplémentaires sont listés ici seulement une fois que vous avez configuré la fédération avec eux. Par exemple, si vous configurez la fédération avec Google ou Facebook, vous pouvez sélectionner ces fournisseurs d’identité supplémentaires ici.

    3. Sous Comptes de messagerie, vous pouvez sélectionner une des deux options. Pour ce tutoriel, sélectionnez E-mail avec mot de passe.

      • E-mail avec mot de passe : permet aux nouveaux utilisateurs de s’inscrire et de se connecter en utilisant une adresse e-mail comme nom de connexion et un mot de passe comme informations d’identification de premier facteur.
      • Code secret à usage unique par e-mail : permet aux nouveaux utilisateurs de s’inscrire et de se connecter en utilisant une adresse e-mail comme nom de connexion et un code secret à usage unique par e-mail comme informations d’identification de premier facteur. Le code secret à usage unique par e-mail doit être activé au niveau du locataire (Tous les fournisseurs d’identité>Code secret à usage unique par e-mail) pour que cette option soit disponible au niveau du flux utilisateur.
    4. Sous Attributs utilisateur, choisissez les attributs à collecter auprès de l’utilisateur lors de l’inscription. Sélectionnez Afficher plus afin de choisir des attributs et des revendications pour Pays/région, Nom d’affichage et Code postal. Sélectionnez OK. (Les utilisateurs sont invités à fournir ces attributs que lors de leur première inscription.)

  6. Sélectionnez Create (Créer). Le nouveau flux d’utilisateurs apparaît dans la liste Flux d’utilisateurs. Si nécessaire, actualisez la page.

Pour activer la réinitialisation de mot de passe en libre-service, suivez les étapes de l’article Activer la réinitialisation de mot de passe en libre-service.

Associer l'application WPF au flux utilisateur

Bien que de nombreuses applications puissent être associées à votre flux utilisateur, une seule et même application peut être associée à un seul flux utilisateur. Un flux utilisateur permet de configurer l’expérience utilisateur pour des applications spécifiques. Par exemple, vous pouvez configurer un flux d’utilisateurs qui oblige les utilisateurs à se connecter ou à s’inscrire avec une adresse e-mail.

  1. Dans le menu de la barre latérale, sélectionnez Identité.

  2. Sélectionnez External Identities, puis Flux utilisateur.

  3. Dans la page Flux utilisateur, sélectionnez le nom du flux utilisateur que vous avez créé précédemment, par exemple SignInSignUpSample.

  4. Sous Utiliser, sélectionnez Applications.

  5. Sélectionnez Ajouter une application.

  6. Sélectionnez l’application dans la liste, par exemple, ciam-client-app, ou utilisez la barre de recherche pour la trouver, puis sélectionnez-la.

  7. Choisissez Sélectionner.

Cloner ou télécharger un exemple d'application WPF

Pour obtenir l'exemple de code de l'application de bureau WPF, vous pouvez effectuer l'une des tâches suivantes :

  • Téléchargez le fichier .zip ou clonez l'exemple d'application de bureau à partir de GitHub en exécutant la commande suivante :

        git clone https://github.com/Azure-Samples/ms-identity-ciam-dotnet-tutorial.git
    

Si vous choisissez de télécharger le fichier .zip, extrayez le fichier de l’exemple d’application dans un dossier où la longueur totale du chemin est d’au moins 260 caractères.

Configurer l'exemple d'application WPF

  1. Ouvrez le projet dans votre IDE (comme Visual Studio ou Visual Studio Code) pour configurer le code.

  2. Dans votre éditeur de code, ouvrez le fichier appsettings.json dans le dossier ms-identity-ciam-dotnet-tutorial>1-Authentication>5-sign-in-dotnet-wpf.

  3. Remplacez Enter_the_Application_Id_Here par l’ID d’application (client) de l’application que vous avez inscrite précédemment.

  4. Remplacez Enter_the_Tenant_Subdomain_Here par le sous-domaine d’annuaire (locataire). Par exemple, si votre domaine principal est contoso.onmicrosoft.com, remplacez Enter_the_Tenant_Subdomain_Here par contoso. Si vous n’avez pas votre domaine principal, découvrez comment lire les détails du locataire.

Exécuter et tester un exemple d'application de bureau WPF

  1. Ouvrez une fenêtre de console et accédez au répertoire contenant l'exemple d'application de bureau WPF :

    cd 1-Authentication\5-sign-in-dotnet-wpf
    
  2. Dans votre terminal, exécutez l’application en exécutant la commande suivante :

    dotnet run
    
  3. Après avoir lancé l'exemple, vous devriez voir une fenêtre avec un bouton de connexion. Sélectionnez le bouton Connexion.

    Capture d'écran de l'écran de connexion pour une application de bureau WPF.

  4. Sur la page de connexion, saisissez l'adresse e-mail de votre compte. Si vous n’avez pas de compte, sélectionnez Pas de compte ? Créez-en un, qui démarre le flux d’inscription. Suivez ce flux pour créer un nouveau compte et vous connecter.

  5. Une fois connecté, vous verrez un écran affichant une connexion réussie et des informations de base sur votre compte d'utilisateur stockées dans le jeton récupéré.

    Capture d'écran d'une connexion réussie pour l'application WPF de bureau.

Fonctionnement

La configuration principale de l'application cliente publique est gérée dans le fichier App.xaml.cs. Un PublicClientApplication est initialisé avec un cache pour stocker les jetons d'accès. L'application vérifiera d'abord s'il existe un jeton mis en cache qui peut être utilisé pour connecter l'utilisateur. S'il n'y a pas de jeton mis en cache, l'utilisateur sera invité à fournir des informations d'identification et à se connecter. Lors de la déconnexion, le cache est vidé de tous les comptes et de tous les jetons d'accès correspondants.

Étapes suivantes

Voir le tutoriel sur la création de votre propre application de bureau WPF qui authentifie les utilisateurs