Compartir a través de


Tutorial: Preparar una aplicación CLI Node.js para la autenticación

Se aplica a:Círculo blanco con un símbolo X gris. inquilinos de personal Círculo verde con un símbolo de marca de verificación blanca. inquilinos externos (más información)

Este tutorial es la parte 1 de una serie que muestra cómo compilar una aplicación de interfaz de línea de comandos (CLI) Node.js y prepararla para la autenticación mediante el Centro de administración de Microsoft Entra. La aplicación cliente que creas utiliza el flujo de código de autorización OAuth 2.0 con clave de prueba para el intercambio de códigos (PKCE) para la autenticación segura de usuarios.

En este tutorial, harás lo siguiente:

  • Creación de un nuevo proyecto de aplicación Node.js
  • Instalación de dependencias de aplicaciones
  • Crear un objeto de configuración de MSAL

Prerrequisitos

Habilitación del flujo de cliente público

Para identificar la aplicación como cliente público, siga estos pasos:

  1. En Administrar, seleccione Autenticación.

  2. En Configuración avanzada, para Permitir flujos de cliente públicos, seleccione .

  3. Haga clic en Guardar para guardar los cambios.

Creación de un nuevo proyecto de aplicación Node.js

Aquí, creas una nueva aplicación Node.js CLI desde cero. Si prefiere utilizar un ejemplo de código completo para aprender, descargue el ejemplo de aplicación Node.js CLI de GitHub.

Para crear la aplicación Node.js CLI desde cero, siga estos pasos:

  1. Cree una carpeta para alojar su aplicación y asígnele un nombre, como ciam-sign-in-node-cli-app.

  2. En su terminal, navegue al directorio de su proyecto, como cd ciam-sign-in-node-cli-app e inicie su proyecto utilizando npm init. Esto crea un archivo package.json en la carpeta del proyecto, que contiene referencias a todos los paquetes npm.

  3. En el directorio raíz de su proyecto, cree dos archivos y nómbrelos authConfig.js e index.js. El archivo authConfig.js contiene los parámetros de configuración de la autenticación, mientras que index.js contiene la lógica de autenticación de la aplicación.

Después de crear los archivos, debería conseguir la siguiente estructura de proyecto:

ciam-sign-in-node-cli-app/
   ├── authConfig.js
   └── index.js
   └── package.json

Instalación de dependencias de aplicaciones

La aplicación que crea usa el nodo MSAL para iniciar la sesión de los usuarios. Para instalar el paquete del nodo MSAL como dependencia en el proyecto, abra el terminal en el directorio del proyecto y ejecute el siguiente comando.

npm install @azure/msal-node   

También instalará el paquete open que permite a su aplicación Node.js abrir URLs en el navegador web.

npm install open

Crear un objeto de configuración de MSAL

En el editor de código, abra authConfig.js, que contiene los parámetros de configuración del objeto MSAL y agregue el código siguiente:


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,
        },
    },
};

El objeto msalConfig contiene un conjunto de opciones de configuración que se usan para personalizar el comportamiento de los flujos de autenticación. Este objeto de configuración se pasa a la instancia de nuestra aplicación cliente pública tras su creación. En el archivo authConfig.js, busque los marcadores de posición:

  • Enter_the_Application_Id_Here y reemplázalo con el ID de la aplicación (cliente) de la aplicación que registraste anteriormente.

  • Enter_the_Tenant_Subdomain_Here y reemplácelo por el subdominio Directorio (inquilino). Por ejemplo, si el dominio principal del inquilino es contoso.onmicrosoft.com, use contoso. Si no tiene el nombre de dominio del inquilino, aprenda a leer los detalles del inquilino.

En el objeto de configuración, también se agrega LoggerOptions, que contiene dos opciones:

  • loggerCallback: una función de devolución de llamada que controla el registro de instrucciones MSAL
  • piiLoggingEnabled: una opción de configuración que, cuando se establece en true, habilita el registro de información de identificación personal (PII). Para nuestra aplicación, establecemos esta opción en false.

Después de crear el objeto msalConfig, agregue un objeto loginRequest que contenga los ámbitos que requiere nuestra aplicación. Los ámbitos definen el nivel de acceso que la aplicación tiene para los recursos de usuario. Aunque la matriz scopes del fragmento de código de ejemplo no tiene valores, MSAL agrega de forma predeterminada los ámbitos de OIDC (openid, profile, email) a cualquier solicitud de inicio de sesión. Se pide a los usuarios que consienten estos ámbitos durante el inicio de sesión. Para crear el objeto loginRequest, agregue el código siguiente en authConfig.js.

const loginRequest = {
    scopes: [],
};

En authcConfig.js, exporte los msalConfig objetos y loginRequest para hacerlos accesibles cuando se requieran agregando el siguiente código:

module.exports = {
    msalConfig: msalConfig,
    loginRequest: loginRequest,
};

Use un dominio personalizado para personalizar completamente la dirección URL de autenticación. Desde la perspectiva del usuario, los usuarios permanecen en el dominio durante el proceso de autenticación, en lugar de redirigirse a ciamlogin.com nombre de dominio.

Siga estos pasos para usar un dominio personalizado:

  1. Siga los pasos descritos en Habilitación de dominios url personalizados para aplicaciones en inquilinos externos para habilitar el dominio de dirección URL personalizado para el inquilino externo.

  2. En su archivo authConfig.js, localice el objeto auth y luego haga lo siguiente:

    1. Actualice el valor de la authority propiedad a https://Enter_the_Custom_Domain_Here/Enter_the_Tenant_ID_Here. Reemplace por Enter_the_Custom_Domain_Here el dominio de dirección URL personalizado y Enter_the_Tenant_ID_Here por el identificador de inquilino. Si no tiene el identificador del inquilino, obtenga información sobre cómo leer los detalles del inquilino.
    2. Agregue la propiedad knownAuthorities con un valor [Enter_the_Custom_Domain_Here].

Después de realizar los cambios en el archivo authConfig.js , si el dominio de dirección URL personalizado está login.contoso.com y el identificador de inquilino es aaaabbbb-0000-cccc-1111-dddd2222eeee, el archivo debe tener un aspecto similar al siguiente fragmento de código:

//...
const msalConfig = {
    auth: {
        authority: process.env.AUTHORITY || 'https://login.contoso.com/aaaabbbb-0000-cccc-1111-dddd2222eeee', 
        knownAuthorities: ["login.contoso.com"],
        //Other properties
    },
    //...
};

Paso siguiente

Obtenga información sobre cómo agregar soporte de inicio de sesión a una aplicación CLI de Node.js: