Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de changer d’annuaire.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer d’annuaire.
S’applique à :
Locataires externes (en savoir plus)
Dans ce guide de démarrage rapide, vous allez apprendre à connecter des utilisateurs et à appeler une API web à partir d’une application web Node.js dans votre locataire externe. L’exemple d’application appelle une API .NET. L’exemple d’application web utilise la bibliothèque d’authentification Microsoft (MSAL) pour Node pour gérer l’authentification.
Conditions préalables
- Effectuez les étapes et prérequis de l’article Démarrage rapide : connectez des utilisateurs dans un exemple d’application web. Cet article vous montre comment connecter des utilisateurs à l’aide d’un exemple d’application web Node.js.
- Un locataire externe. Pour en créer un, choisissez parmi les méthodes suivantes :
- (Recommandé) Utilisez l’extension Microsoft Entra External ID pour configurer un locataire externe directement dans Visual Studio Code.
- Créer un nouveau locataire externe dans le Centre d’administration Microsoft Entra.
- Inscrivez une nouvelle application pour votre API web dans le Centre d’administration Microsoft Entra, configurée pour les comptes dans cet annuaire organisationnel uniquement. Pour plus d’informations, reportez-vous à l'enregistrement d'une application. Enregistrez les valeurs suivantes à partir de la page Vue d’ensemble de l’application pour une utilisation ultérieure :
- ID d’application (client)
- ID d’annuaire (locataire)
- Visual Studio Code ou un autre éditeur de code.
- Node.js.
- .NET 7.0 ou version ultérieure.
Configurer des étendues et des rôles d’API
En inscrivant l’API web, vous devez configurer des étendues d’API pour définir les autorisations qu’une application cliente peut demander d’accéder à l’API web. En outre, vous devez configurer des rôles d’application pour spécifier les rôles disponibles pour les utilisateurs ou les applications, et accorder les autorisations d’API nécessaires à l’application web pour l’activer pour appeler l’API web.
Configurer des étendues d’API
Une API doit publier au moins une étendue, également appelée Autorisation déléguée, pour que les applications clientes obtiennent avec succès un jeton d’accès pour un utilisateur. Pour publier une étendue, effectuez les étapes suivantes :
Dans la page Inscriptions des applications, sélectionnez l’application API que vous avez créée (ciam-ToDoList-api) pour ouvrir sa page Vue d’ensemble.
Sous Gérer, sélectionnez Exposer une API.
En haut de la page, en regard de URI d’ID d’application, sélectionnez le lien Ajouter pour générer un URI unique pour cette application.
Acceptez l’URI d’ID d’application proposé, tel que
api://{clientId}, puis sélectionnez Enregistrer. Lorsque votre application web demande un jeton d’accès pour l’API web, elle ajoute l’URI comme préfixe pour chaque étendue que vous définissez pour l’API.Sous Étendues définies par cette API, sélectionnez Ajouter une étendue.
Entrez les valeurs suivantes qui définit l’accès en lecture à l’API, puis sélectionnez Ajouter une étendue pour sauvegarder vos modifications :
Propriété Valeur Nom de l’étendue ToDoList.Read Qui peut donner son consentement Administrateurs uniquement Nom d’affichage du consentement administrateur Lire la liste des tâches de l’utilisateur à l’aide de « ToDoListApi » Description du consentement de l'administrateur Autoriser l’application à lire la liste de tâches de l’utilisateur à l’aide de « TodoListApi ». État Activé Sélectionnez à nouveau Ajouter une étendue, puis entrez les valeurs suivantes qui définissent une portée d'accès en lecture et en écriture à l'API. Sélectionnez Ajouter une étendue pour enregistrer vos changements :
Propriété Valeur Nom de l’étendue ToDoList.ReadWrite Qui peut donner son consentement Administrateurs uniquement Nom d’affichage du consentement administrateur Lire et écrire la liste ToDo de l’utilisateur à l’aide de « ToDoListApi » Description du consentement de l'administrateur Permet à l’application de lire et écrire la liste ToDo de l’utilisateur à l’aide de « ToDoListApi » État Activé
Découvrez-en plus sur le principe du privilège minimum lors de la publication d’autorisations pour une API web.
Configurer les rôles d’application
Une API doit publier au moins un rôle d'application pour les applications, également appelé autorisation d'application, pour que les applications clientes obtiennent un jeton d'accès en leur propre nom. Les autorisations d’application sont le type d’autorisations que les API doivent publier lorsqu’elles souhaitent permettre aux applications clientes de s’authentifier correctement en tant qu’elles-mêmes et qu’elles n’ont pas besoin de connecter des utilisateurs. Pour publier une autorisation d'application, procédez comme suit :
Dans la page Inscriptions d’applications, sélectionnez l’application que vous avez créée (par exemple, ciam-ToDoList-api) pour ouvrir sa page Vue d’ensemble.
Sous Gérer, sélectionnez Rôles d’applications.
Sélectionnez Créer un rôle d'application, puis saisissez les valeurs suivantes, puis sélectionnez Appliquer pour enregistrer vos modifications :
Propriété Valeur Nom complet ToDoList.Read.All Types de membres autorisés Applications Valeur ToDoList.Read.All Descriptif Autoriser l'application à lire la liste de tâches de chaque utilisateur à l'aide de 'TodoListApi' Voulez-vous activer le rôle de cette application ? Maintenez cette option cochée Sélectionnez à nouveau Créer un rôle d'application, puis saisissez les valeurs suivantes pour le deuxième rôle d'application, puis sélectionnez Appliquer pour enregistrer vos modifications :
Propriété Valeur Nom complet ToDoList.ReadWrite.All Types de membres autorisés Applications Valeur ToDoList.ReadWrite.All Descriptif Autoriser l’application à lire et écrire la liste ToDo de chaque utilisateur à l’aide de « TodoListApi » Voulez-vous activer le rôle de cette application ? Maintenez cette option cochée
Configurer des revendications facultatives
Vous pouvez ajouter la revendication facultative idtyp pour aider l’API web à déterminer si un jeton est un jeton d’application ou une application + jeton utilisateur . Bien que vous puissiez utiliser une combinaison de revendications scp et rôles dans le même but, l’utilisation de la revendication idtyp est le moyen le plus simple de distinguer un jeton d’application d’un jeton utilisateur et application. Par exemple, la valeur de cette revendication est app lorsque le jeton est un jeton d'application uniquement.
Utilisez les étapes de l’article Configurer les revendications facultatives pour ajouter la revendication idtyp au jeton d’accès :
- Pour le type de jeton , sélectionnez Access.
- Dans la liste facultative des revendications, sélectionnez idtyp.
Accorder des autorisations d’API à l’application web
Pour accorder des autorisations d’API à votre application cliente (ciam-client-app), effectuez ces étapes :
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.
Sous Gérer, sélectionnez les autorisations d'API .
Sous Autorisations configurées, sélectionnez Ajouter une autorisation.
Sélectionnez l’onglet API utilisées par mon organisation.
Dans la liste des API, sélectionnez l’API, par exemple ciam-ToDoList-api.
Sélectionnez l’option Autorisations déléguées.
Dans la liste des autorisations, sélectionnez ToDoList.Read, ToDoList.ReadWrite (utilisez la zone de recherche si nécessaire).
Sélectionnez le bouton Ajouter des autorisations. À ce stade, vous avez attribué les autorisations correctement. Cependant, étant donné que le locataire est le locataire d'un client, les utilisateurs consommateurs eux-mêmes ne peuvent pas consentir à ces autorisations. Pour résoudre ce problème, en tant qu’administrateur, vous devez consentir à ces autorisations au nom de tous les utilisateurs du locataire :
Sélectionnez Accorder le consentement administrateur pour <nom de votre locataire>, puis sélectionnez Oui.
Sélectionnez Actualiser, puis vérifiez que Accordé pour <nom de votre locataire> s’affiche sous l’État pour les deux étendues.
Dans la liste Autorisations configurées, sélectionnez les autorisations ToDoList.Read et ToDoList.ReadWrite, une par une, puis copiez l’URI complet de l’autorisation pour l’utiliser ultérieurement. L’URI d’autorisation complet ressemble à
api://{clientId}/{ToDoList.Read}ouapi://{clientId}/{ToDoList.ReadWrite}.
Cloner ou télécharger un exemple d’application web et d’API web
Pour obtenir l’exemple d’application, vous pouvez le cloner à partir de GitHub ou le télécharger en tant que fichier .zip.
Pour cloner l’exemple, ouvrez une invite de commandes et accédez à l’emplacement où vous souhaitez créer le projet, puis entrez la commande suivante :
git clone https://github.com/Azure-Samples/ms-identity-ciam-javascript-tutorial.gitTéléchargez le fichier zip. Extrayez-le dans un chemin de fichier où la longueur du nom est inférieure à 260 caractères.
Installer les dépendances de projet
Ouvrez une fenêtre de console et accédez au répertoire qui contient l’exemple d’application Node.js/Express :
cd 2-Authorization\4-call-api-express\AppExécutez les commandes suivantes pour installer les dépendances d’applications web :
npm install && npm update
Configurer l’exemple d’application web et d’API
Pour utiliser l’inscription de votre application dans l’exemple d’application web cliente :
Dans votre éditeur de code, ouvrez le fichier
App\authConfig.js.Trouvez l’espace réservé :
-
Enter_the_Application_Id_Hereet remplacez-le par l’ID d’application (client) de l’application cliente que vous avez inscrite précédemment. L'application cliente est celle que vous avez enregistrée dans les prérequis. -
Enter_the_Tenant_Subdomain_Hereet remplacez-le par le sous-domaine de l’Annuaire (locataire). Par exemple, si le domaine principal de votre locataire estcontoso.onmicrosoft.com, utilisezcontoso. Si vous ne disposez pas du nom de votre locataire, découvrez de quelle manière consulter les détails de votre locataire. -
Enter_the_Client_Secret_Hereet remplacez-le par la valeur de secret d’application que vous avez copiée précédemment. -
Enter_the_Web_Api_Application_Id_Hereet remplacez-le par l’ID d’application (client) de l’API web que vous avez copiée précédemment dans le cadre des prérequis.
-
Pour utiliser l’inscription de votre application dans l’exemple d’API web :
Dans votre éditeur de code, ouvrez le fichier
API\ToDoListAPI\appsettings.json.Trouvez l’espace réservé :
-
Enter_the_Application_Id_Hereet remplacez-le par l'ID d'application (client) de l'API web que vous avez copié. L’application API web est une application que vous avez inscrite précédemment dans le cadre des conditions préalables. -
Enter_the_Tenant_Id_Hereet remplacez-le par l’ID de répertoire (locataire) que vous avez copié précédemment. -
Enter_the_Tenant_Subdomain_Hereet remplacez-le par le sous-domaine de l’Annuaire (locataire). Par exemple, si le domaine principal de votre locataire estcontoso.onmicrosoft.com, utilisezcontoso. Si vous ne disposez pas du nom de votre locataire, découvrez de quelle manière consulter les détails de votre locataire.
-
Exécuter et tester l’exemple d’application web et l’API
Ouvrez une fenêtre de console, puis exécutez l’API web à l’aide des commandes suivantes :
cd 2-Authorization\4-call-api-express\API\ToDoListAPI dotnet runExécutez le client d’application web à l’aide des commandes suivantes :
cd 2-Authorization\4-call-api-express\App npm install npm startOuvrez votre navigateur et accédez à http://localhost:3000.
Sélectionnez le bouton Se connecter. Vous êtes invité à vous connecter.
Dans la page de connexion, tapez votre Adresse e-mail, sélectionnez Suivant, tapez votre Mot de passe, puis sélectionnez Se connecter. Si vous n’avez aucun compte, sélectionnez le lien Vous n’avez pas de compte ? Créez un lien , qui lance le flux d’inscription.
Si vous choisissez l’option d’inscription, après avoir renseigné votre e-mail, votre code secret à usage unique, le nouveau mot de passe et plus de détails de compte, vous avez terminé l’ensemble du flux d’inscription. Vous observez une page similaire à la capture d’écran suivante. Vous observez une page similaire si vous choisissez l’option de connexion.
Appeler une API
Pour appeler l’API, sélectionnez le lien Afficher votre liste de tâches. Vous observez une page similaire à la capture d’écran suivante.
Manipulez la liste des tâches en créant et en supprimant des éléments.
Fonctionnement
Vous déclenchez un appel d’API chaque fois que vous affichez, ajoutez ou supprimez une tâche. Chaque fois que vous déclenchez un appel d’API, l’application web cliente acquiert un jeton d’accès avec les autorisations (étendues) nécessaires pour appeler un point de terminaison d’API. Par exemple, pour lire une tâche, l'application web cliente doit acquérir un jeton d'accès avec l'autorisation/périmètre ToDoList.Read.
Le point de terminaison de l’API web doit vérifier si les autorisations ou les étendues du jeton d’accès, fournies par l’application cliente, sont valides. Si le jeton d’accès est valide, le point de terminaison répond à la requête HTTP ; sinon, il répond avec une erreur HTTP 401 Unauthorized.