Partager via


Tutoriel : Préparer une application CLI Node.js pour l’authentification

S’applique à :Cercle blanc avec un symbole X gris. Locataires de main-d’œuvre Cercle vert avec un symbole de coche blanche. 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

Activer le flux de client public

Pour identifier votre application en tant que client public, procédez comme suit :

  1. Sous Gérer, sélectionnez Authentification.

  2. Sous Paramètres avancés, pour Autoriser les flux clients publics, sélectionnez Oui.

  3. 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 :

  1. Créez un dossier pour héberger votre application et attribuez-lui un nom, par exemple ciam-sign-in-node-cli-app.

  2. 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 utilisant npm init. Cela crée un fichier package.json dans le dossier de votre projet, qui contient des références à tous les paquets npm.

  3. 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 est contoso.onmicrosoft.com, utilisez contoso. 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 MSAL
  • piiLoggingEnabled - 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é :

  1. 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.

  2. Dans votre fichier authConfig.js , recherchez l’objet auth , puis :

    1. Mettez à jour la valeur de la authority propriété sur https://Enter_the_Custom_Domain_Here/Enter_the_Tenant_ID_Here. Remplacez Enter_the_Custom_Domain_Here par votre domaine d’URL personnalisé et Enter_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.
    2. Ajoutez knownAuthorities une propriété avec une valeur [Enter_the_Custom_Domain_Here].

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 :