Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à : Les locataires de main-d’œuvre
Locataires externes (en savoir plus)
Dans ce guide de démarrage rapide, vous utilisez un exemple d’application web pour vous montrer comment protéger une API web ASP.NET à l’aide de la plateforme d’identités Microsoft. L’exemple utilise la bibliothèque d’authentification Microsoft (MSAL) pour gérer l’authentification et l’autorisation.
Conditions préalables
- Un compte Azure avec un abonnement actif. Créez gratuitement un compte.
- Inscrivez une nouvelle application dans le Centre d’administration Microsoft Entra et enregistrez ses identificateurs à partir de la page Vue d’ensemble de l’application. Pour plus d’informations, consultez Inscrire une application.
- Nom : NewWebAPI1
- Types de comptes pris en charge : comptes dans cet annuaire organisationnel uniquement (locataire unique)
- Visual Studio 2022. Téléchargez Visual Studio gratuitement.
Exposer l’API
Une fois l’API inscrite, vous pouvez configurer son autorisation en définissant les étendues qu’elle expose aux applications clientes. Les applications clientes demandent l’autorisation d’effectuer des opérations en passant un jeton d’accès et les requêtes associées à l’API web protégée. L'API web effectue ensuite l’opération demandée uniquement si le jeton d’accès qu’elle reçoit contient les étendues nécessaires.
Sous Gérer, sélectionnez Exposer une API>Ajouter une étendue. Acceptez l’URI d’ID d’application proposé (
api://{clientId}
) en sélectionnant Enregistrer et continuer, puis entrez les informations suivantes :- Pour nom de portée, entrez
access_as_user
. - Pour qui peut donner son consentement, vérifiez que l’option Administrateurs et utilisateurs est sélectionnée.
- Dans la zone nom d’affichage du consentement administrateur, entrez
Access TodoListService as a user
. - Dans la zone de description du consentement administrateur , entrez
Accesses the TodoListService web API as a user
. - Dans la zone nom d’affichage de consentement utilisateur, entrez
Access TodoListService as a user
. - Dans la zone de description du consentement de l’utilisateur , entrez
Accesses the TodoListService web API as a user
. - Pour l’état, conservez activé.
- Pour nom de portée, entrez
Sélectionnez Ajouter une étendue.
Cloner ou télécharger l’exemple d’application
Pour obtenir l’exemple d’application, vous pouvez le cloner à partir de GitHub ou le télécharger en tant que fichier .zip .
git clone https://github.com/AzureADQuickStarts/AppModelv2-NativeClient-DotNet.git
Conseil / Astuce
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.
Configurer l’exemple d’application
Configurez l’exemple de code pour qu’il corresponde à l’API web inscrite.
Ouvrez la solution dans Visual Studio, puis ouvrez le fichier appsettings.json sous la racine du projet TodoListService.
Remplacez la valeur de
Enter_the_Application_Id_here
par la valeur ID client (ID d'application) de l'application que vous avez enregistrée dans le portail des inscriptions d'applications, à la fois dans les propriétésClientID
etAudience
.
Ajouter la nouvelle étendue au fichier app.config
Pour ajouter la nouvelle étendue au fichier todoListClient app.config , procédez comme suit :
Dans le dossier racine du projet TodoListClient, ouvrez le fichier app.config .
Collez l’ID d’application à partir de l’application que vous avez inscrite pour votre projet TodoListService dans le paramètre
TodoListServiceScope
, en remplaçant la chaîne{Enter the Application ID of your TodoListService from the app registration portal}
.
Remarque
Vérifiez que l’ID d’application utilise le format suivant : api://{TodoListService-Application-ID}/access_as_user
(où {TodoListService-Application-ID}
est le GUID représentant l’ID d’application de votre application TodoListService).
Inscrire l’application web (TodoListClient)
Inscrivez votre application TodoListClient dans les inscriptions d’applications dans le Centre d’administration Microsoft Entra, puis configurez le code dans le projet TodoListClient. Si le client et le serveur sont considérés comme la même application, vous pouvez réutiliser l’application inscrite à l’étape 2. Utilisez la même application si vous voulez que les utilisateurs se connectent avec un compte Microsoft personnel.
Enregistrer l'application
Pour inscrire l’application TodoListClient, effectuez les étapes suivantes :
Connectez-vous au Centre d’administration Microsoft Entra en tant qu’administrateur d’application cloud au moins.
Accédez à Entra ID>inscriptions d’application et sélectionnez Nouvelle inscription.
Sélectionnez Nouvelle inscription.
Lorsque la page Inscrire une application s’ouvre, entrez les informations d’inscription de votre application :
- Dans la section Nom , entrez un nom d’application explicite qui sera affiché aux utilisateurs de l’application (par exemple , NativeClient-DotNet-TodoListClient).
- Pour les types de comptes pris en charge, sélectionnez Comptes dans n’importe quel annuaire organisationnel.
- Sélectionnez Inscrire pour créer l’application.
Remarque
Dans le fichier app.config du projet TodoListClient, la valeur par défaut de
ida:Tenant
est définie surcommon
. Les valeurs possibles sont les suivantes :-
common
: vous pouvez vous connecter à l’aide d’un compte professionnel ou scolaire ou d’un compte Microsoft personnel (car vous avez sélectionné Comptes dans n’importe quel annuaire organisationnel à l’étape précédente). -
organizations
: Vous pouvez vous connecter à l’aide d’un compte professionnel ou scolaire. -
consumers
: Vous pouvez vous connecter à l’aide d’un compte Microsoft personnel uniquement.
Dans la page Vue d’ensemble de l’application, sélectionnez Authentification, puis procédez comme suit pour ajouter une plateforme :
- Sous Configurations de plateforme, sélectionnez le bouton Ajouter une plateforme .
- Pour les applications mobiles etde bureau, sélectionnez Applications mobiles et de bureau.
- Pour les URI de redirection, cochez la case à cocher
https://login.microsoftonline.com/common/oauth2/nativeclient
. - Sélectionnez Configurer.
Sélectionnez les autorisations d’API, puis procédez comme suit pour ajouter des autorisations :
- Sélectionnez le bouton Ajouter une autorisation .
- Sélectionnez l’onglet Mes API .
- Dans la liste des API, sélectionnez AppModelv2-NativeClient-DotNet-TodoListService API ou le nom que vous avez entré pour l’API web.
- Cochez la case access_as_user autorisation si elle n’est pas déjà sélectionnée. Utilisez la zone de recherche, si nécessaire.
- Sélectionnez le bouton Ajouter des autorisations .
Configurer votre projet
Configurez votre projet TodoListClient en ajoutant l’ID d’application au fichier app.config .
Dans le portail des inscriptions d’applications, dans la page Vue d’ensemble , copiez la valeur de l’ID d’application (client).
À partir du dossier racine du projet TodoListClient, ouvrez le fichier app.config , puis collez la valeur d’ID d’application dans le
ida:ClientId
paramètre.
Exécuter l’exemple d’application
Démarrez les deux projets. Pour les utilisateurs de Visual Studio ;
Cliquez avec le bouton droit sur la solution Visual Studio et sélectionnez Propriétés
Dans les propriétés communes, sélectionnez Projet de démarrage , puis Plusieurs projets de démarrage.
Pour les deux projets, choisissez Démarrer comme action
Assurez-vous que le service TodoListService démarre en premier en le plaçant à la première position dans la liste à l’aide de la touche flèche haut.
Connectez-vous pour exécuter votre projet TodoListClient.
Appuyez sur F5 pour démarrer les projets. La page du service s’ouvre, ainsi que l’application de bureau.
Dans todoListClient, en haut à droite, sélectionnez Se connecter, puis connectez-vous avec les mêmes informations d’identification que celles que vous avez utilisées pour inscrire votre application ou connectez-vous en tant qu’utilisateur dans le même répertoire.
Si vous vous connectez pour la première fois, vous pouvez être invité à donner votre consentement à l’API web TodoListService.
Pour vous aider à accéder à l’API web TodoListService et à manipuler la liste de tâches, la connexion demande également un jeton d’accès à l’étendue access_as_user.
Pré-autoriser votre application cliente
Vous pouvez permettre aux utilisateurs d’autres annuaires d’accéder à votre API web en autorisant préalablement l’application cliente à accéder à votre API web. Pour ce faire, ajoutez l’ID d’application de l’application cliente à la liste des applications pré-autorisées pour votre API web. En ajoutant un client pré-autorisé, vous autorisez les utilisateurs à accéder à votre API web sans avoir à fournir le consentement.
- Dans le portail des inscriptions d’applications, ouvrez les propriétés de votre application TodoListService.
- Dans la section Exposer une API , sous Applications clientes autorisées, sélectionnez Ajouter une application cliente.
- Dans la zone ID client , collez l’ID d’application de l’application TodoListClient.
- Dans la section Étendues autorisées , sélectionnez l’étendue de l’API
api://<Application ID>/access_as_user
web. - Sélectionnez Ajouter une application.
Exécuter votre projet
- Appuyez sur F5 pour exécuter votre projet. Votre application TodoListClient s’ouvre.
- En haut à droite, sélectionnez Se connecter, puis connectez-vous à l’aide d’un compte Microsoft personnel, tel qu’un live.com ou un compte hotmail.com , ou un compte professionnel ou scolaire.
Facultatif : Limiter l’accès de connexion à certains utilisateurs
Par défaut, tous les comptes personnels, tels que outlook.com ou live.com comptes, ou les comptes professionnels ou scolaires des organisations intégrées à l’ID Microsoft Entra peuvent demander des jetons et accéder à votre API web.
Pour spécifier qui peut se connecter à votre application, en modifiant la TenantId
propriété dans le fichier appsettings.json .
Étapes suivantes
Découvrez comment protéger une API web ASP.NET Core avec la plateforme d’identités Microsoft.