Share via


Démarrage rapide : Acquérir un jeton et appeler l’API Microsoft Graph à partir d’une application console Node.js en utilisant l’identité de l’application

Bienvenue ! Ce n’est probablement pas la page que vous attendiez. Pendant que nous travaillons sur un correctif, ce lien devrait vous permettre d’accéder au bon article :

Démarrage rapide : acquérir un jeton et appeler Microsoft Graph à partir d'une application de console Node.js

Nous vous prions de nous excuser pour le désagrément et nous vous remercions de votre patience.

Dans ce guide de démarrage rapide, vous téléchargez et vous exécutez un exemple de code qui montre comment une application Node.js peut obtenir un jeton d’accès en utilisant l’identité de l’application pour appeler l’API Microsoft Graph et afficher une liste d’utilisateurs dans l’annuaire. L’exemple de code montre comment un travail sans assistance ou un service Windows peut s’exécuter avec l’identité d’une application, au lieu de l’identité d’un utilisateur.

Ce guide de démarrage rapide utilise la bibliothèque d’authentification Microsoft pour Node.js (MSAL Node) avec l’octroi des informations d’identification du client.

Prérequis

Télécharger et configurer l’exemple d’application

Étape 1 : Configurer l’application dans le portail Azure

Pour que l’exemple de code fonctionne dans ce guide de démarrage rapide, vous devez créer un secret client et ajouter l’autorisation d’application User.Read.All de l’API Graph.

Already configured Votre application est configurée avec ces attributs.

Étape 2 : Télécharger l’exemple de projet Node.js

Notes

Enter_the_Supported_Account_Info_Here

Si vous essayez d’exécuter l’application à ce stade, vous recevez l’erreur HTTP 403 - Interdit : Insufficient privileges to complete the operation. Cette erreur se produit parce que les autorisations d’application uniquement nécessitent le consentement administrateur : un administrateur général de votre répertoire doit accorder son consentement à votre application. Sélectionnez l’une des options ci-dessous en fonction de votre rôle :

Administrateur de locataires général

Si vous êtes administrateur général, accédez à la page Autorisations de l’API et sélectionnez Accorder le consentement administrateur à > Entrer_le_nom_du_locataire_ici.

Utilisateur standard

Si vous êtes utilisateur standard de votre locataire, vous devez demander à un administrateur général d’accorder son consentement administrateur à votre application. Pour ce faire, donnez l’URL suivante à votre administrateur :

https://login.microsoftonline.com/Enter_the_Tenant_Id_Here/adminconsent?client_id=Enter_the_Application_Id_Here

Étape 4 : Exécution de l'application

Localisez le dossier racine de l’exemple (c’est là où se trouve package.json) dans une invite de commandes ou une console. Vous devez installer les dépendances de cet exemple une seule fois :

npm install

Ensuite, exécutez l’application via l’invite de commandes ou la console :

node . --op getUsers

Vous voyez, sur la sortie de la console, un fragment JSON représentant une liste d’utilisateurs dans votre répertoire Microsoft Entra.

À propos du code

Voici quelques-uns des aspects importants de l’exemple d’application.

MSAL Node

MSAL Node est la bibliothèque utilisée pour connecter les utilisateurs et demander des jetons permettant d’accéder à une API protégée par la plateforme d’identités Microsoft. Comme vous l’avez vu, ce guide de démarrage rapide demande des jetons par des autorisations d’application (en utilisant l’identité propre de l’application) au lieu d’autorisations déléguées. Le flux d’authentification utilisé dans ce cas est désigné sous le nom de flux d’informations d’identification de client OAuth 2.0. Pour plus d’informations sur l’utilisation de MSAL Node avec des applications démon, consultez Scénario : Application démon.

Vous pouvez installer MSAL Node en exécutant la commande npm suivante.

npm install @azure/msal-node --save

Initialisation MSAL

Vous pouvez ajouter la référence de MSAL en ajoutant le code suivant :

const msal = require('@azure/msal-node');

Ensuite, initialisez MSAL à l’aide du code suivant :

const msalConfig = {
    auth: {
        clientId: "Enter_the_Application_Id_Here",
        authority: "https://login.microsoftonline.com/Enter_the_Tenant_Id_Here",
        clientSecret: "Enter_the_Client_Secret_Here",
   }
};
const cca = new msal.ConfidentialClientApplication(msalConfig);
Où : Description
clientId Est l’ID d’application (client) de l’application inscrite dans le portail Azure. Vous pouvez retrouver cette valeur dans la page Vue d’ensemble de l’application dans le portail Azure.
authority Point de terminaison STS pour l’utilisateur à authentifier. Généralement https://login.microsoftonline.com/{tenant} pour un cloud public, où {tenant} est le nom ou l’ID de votre locataire.
clientSecret Est le secret client créé pour l’application dans le portail Azure.

Pour plus d’informations, consultez la documentation de référence sur ConfidentialClientApplication

Demande de jetons

Pour demander un jeton à l’aide de l’identité d’application, utilisez la méthode acquireTokenByClientCredential :

const tokenRequest = {
    scopes: [ 'https://graph.microsoft.com/.default' ],
};

const tokenResponse = await cca.acquireTokenByClientCredential(tokenRequest);
Où : Description
tokenRequest Contient les étendues demandées. Pour les clients confidentiels, utilisez un format similaire à {Application ID URI}/.default. Ce format indique que les étendues demandées sont celles qui sont définies de manière statique dans l’objet application défini dans le portail Azure (pour Microsoft Graph, {Application ID URI} pointe vers https://graph.microsoft.com). Pour les API web personnalisées, {Application ID URI} est défini sous la section Exposer une API dans Inscription d’application sur le portail Azure.
tokenResponse La réponse contient un jeton d’accès pour les étendues demandées.

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

Pour plus d’informations sur le développement d’applications démon/console avec MSAL Node, consultez le tutoriel :