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 à : Locataires de main-d’œuvre
Locataires externes (en savoir plus)
Ce tutoriel fait partie 1 d’une série qui montre comment créer une application d’interface de ligne de commande (CLI) Node.js et la préparer pour l’authentification à l’aide du Centre d’administration Microsoft Entra. L’application cliente que vous générez utilise le flux de code d’autorisation OAuth 2.0 avec une clé de preuve pour l’échange de code (PKCE) pour une authentification utilisateur sécurisée.
Dans ce tutoriel, vous allez :
- Créer un nouveau projet d'application Node.js
- Installer les dépendances d’application
- Créez un objet de configuration MSAL
Conditions préalables
- Inscrivez une nouvelle application 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 de l’annuaire (locataire)
- Ajoutez les URI de redirection suivants via la configuration de la plateforme applications mobiles et de bureau. Pour plus d’informations, consultez Comment ajouter un URI de redirection dans votre application .
- URI de redirection :
http://localhost
- URI de redirection :
- Associez votre application à un flux utilisateur dans le Centre d’administration Microsoft Entra. Ce flux utilisateur peut être utilisé sur plusieurs applications. Pour plus d’informations, consultez Créer des flux d’utilisateurs d’inscription en libre-service pour les applications dans des locataires externes et ajouter votre application au flux utilisateur.
- Même s’il est possible d’utiliser n’importe quel environnement de développement intégré (IDE) prenant en charge les applications React, ce tutoriel utilise Visual Studio Code.
- Node.js.
Activer le flux de client public
Pour identifier votre application en tant que client public, procédez comme suit :
Sous Gérer, sélectionnez Authentification.
Sous Paramètres avancés, pour Autoriser les flux clients publics, sélectionnez Oui.
Cliquez sur Enregistrer pour enregistrer vos modifications.
Créer un nouveau projet d'application Node.js
Ici, vous créez une application CLI Node.js à partir de zéro. Si vous préférez utiliser un exemple de code complet pour l’apprentissage, téléchargez l’exemple d’application Node.js CLI à partir de GitHub.
Pour créer une application CLI Node.js de A à Z, suivez les étapes suivantes :
Créez un dossier pour héberger votre application et attribuez-lui un nom, par exemple ciam-sign-in-node-cli-app.
Dans votre terminal, naviguez jusqu'au répertoire de votre projet, tel que
cd ciam-sign-in-node-cli-app
et initialisez votre projet en utilisantnpm init
. Cela crée un fichier package.json dans le dossier de votre projet, qui contient des références à tous les paquets npm.Dans le répertoire racine de votre projet, créez deux fichiers, puis nommez-les authConfig.js et index.js. Le fichier authConfig.js contient les paramètres de configuration d’authentification tandis que index.js contient la logique d’authentification de l’application.
Après avoir créé les fichiers, vous devez obtenir la structure de projet suivante :
ciam-sign-in-node-cli-app/
├── authConfig.js
└── index.js
└── package.json
Installer les dépendances d’application
L’application que vous générez utilise MSAL Node pour connecter des utilisateurs. Pour installer le package MSAL Node en tant que dépendance dans votre projet, ouvrez le terminal dans le répertoire de votre projet et exécutez la commande suivante.
npm install @azure/msal-node
Vous allez également installer le open
package qui permet à votre application Node.js d’ouvrir des URL dans le navigateur web.
npm install open
Créez un objet de configuration MSAL
Dans votre éditeur de code, ouvrez authConfig.js, qui contient les paramètres de configuration de l’objet MSAL, puis ajoutez le code suivant :
const { LogLevel } = require('@azure/msal-node');
const msalConfig = {
auth: {
clientId: 'Enter_the_Application_Id_Here',
authority: `https://Enter_the_Tenant_Subdomain_Here.ciamlogin.com/`,
},
system: {
loggerOptions: {
loggerCallback(loglevel, message, containsPii) {
// console.log(message);
},
piiLoggingEnabled: false,
logLevel: LogLevel.Verbose,
},
},
};
L’objet msalConfig
contient un ensemble d’options de configuration que vous pouvez utiliser pour personnaliser le comportement de vos flux d’authentification. Cet objet de configuration est passé dans l’instance de notre application cliente publique lors de sa création. Dans votre fichier authConfig.js, recherchez les espaces réservés :
Enter_the_Application_Id_Here
et remplacez-le par l’ID d’application (client) de l’application inscrite précédemment.Enter_the_Tenant_Subdomain_Here
et remplacez-le par le sous-domaine Annuaire (locataire). Par exemple, si votre domaine principal de locataire estcontoso.onmicrosoft.com
, utilisezcontoso
. Si vous n’avez pas le nom de domaine de votre locataire, découvrez comment lire les détails de votre locataire.
Dans l’objet de configuration, vous ajoutez également LoggerOptions
, qui contient deux options :
loggerCallback
: fonction de rappel qui gère la journalisation des instructions MSALpiiLoggingEnabled
- Option de configuration qui, lorsqu’elle est définie sur true, active la journalisation des informations d’identification personnelle (PII). Pour notre application, nous définissons cette option sur false.
Après avoir créé l’objet msalConfig
, ajoutez un loginRequest
objet qui contient les étendues requises par notre application. Les étendues définissent le niveau d’accès de l’application aux ressources utilisateur. Bien que le tableau d’étendues de l’exemple d’extrait de code n’ait pas de valeurs, MSAL ajoute par défaut les étendues OIDC (openid, profil, e-mail) à n’importe quelle demande de connexion. Les utilisateurs sont invités à donner leur consentement à ces étendues lors de la connexion. Pour créer l’objet loginRequest
, ajoutez le code suivant dans authConfig.js.
const loginRequest = {
scopes: [],
};
Dans authcConfig.js, exportez les objets msalConfig
et loginRequest
pour les rendre accessibles si nécessaire en ajoutant le code suivant :
module.exports = {
msalConfig: msalConfig,
loginRequest: loginRequest,
};
Utilisez un domaine personnalisé pour personnaliser entièrement l’URL d’authentification. Du point de vue de l’utilisateur, les utilisateurs restent sur votre domaine pendant le processus d’authentification, au lieu d’être redirigés vers ciamlogin.com nom de domaine.
Procédez comme suit pour utiliser un domaine personnalisé :
Utilisez les étapes décrites dans Activer les domaines d’URL personnalisés pour les applications dans les locataires externes afin d’activer le domaine d’URL personnalisé pour votre locataire externe.
Dans votre fichier authConfig.js , recherchez l’objet
auth
, puis :- Mettez à jour la valeur de la
authority
propriété sur https://Enter_the_Custom_Domain_Here/Enter_the_Tenant_ID_Here. RemplacezEnter_the_Custom_Domain_Here
par votre domaine d’URL personnalisé etEnter_the_Tenant_ID_Here
par votre ID de locataire. Si vous n’avez pas votre identifiant de locataire, apprenez comment consulter les détails de votre locataire. - Ajoutez
knownAuthorities
une propriété avec une valeur [Enter_the_Custom_Domain_Here].
- Mettez à jour la valeur de la
Après avoir apporté les modifications à votre fichier authConfig.js , si votre domaine d’URL personnalisé est login.contoso.com et que votre ID de locataire est aaaabbbb-0000-cccc-1111-dddd222eeee, votre fichier doit ressembler à l’extrait de code suivant :
//...
const msalConfig = {
auth: {
authority: process.env.AUTHORITY || 'https://login.contoso.com/aaaabbbb-0000-cccc-1111-dddd2222eeee',
knownAuthorities: ["login.contoso.com"],
//Other properties
},
//...
};
Étape suivante
Découvrez comment ajouter la prise en charge de la connexion à une application CLI Node.js :