Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a: inquilinos de personal
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
- Registre una nueva aplicación en el Centro de administración de Microsoft Entra, configurada solo para Cuentas en este directorio organizativo. Consulte Registro de una aplicación para obtener más detalles. Registre los valores siguientes en la página Información general de la aplicación para su uso posterior:
- Id. de aplicación (cliente)
- Id. de directorio (inquilino)
- Agregue los siguientes URI de redirección mediante la configuración de la plataforma de aplicaciones móviles y de escritorio . Consulte How to add a redirect URI in your application (Cómo agregar un URI de redirección en la aplicación ) para obtener más detalles.
- URI de redirección:
http://localhost
- URI de redirección:
- Asocie la aplicación a un flujo de usuario en el Centro de administración de Microsoft Entra. Este flujo de usuario se puede usar en varias aplicaciones. Para obtener más información, consulte Creación de flujos de usuario de registro de autoservicio para aplicaciones en inquilinos externos y Agregar la aplicación al flujo de usuario.
- Aunque se puede usar cualquier entorno de desarrollo integrado (IDE) que admita aplicaciones React, este tutorial usa Visual Studio Code.
- Node.js.
Habilitación del flujo de cliente público
Para identificar la aplicación como cliente público, siga estos pasos:
En Administrar, seleccione Autenticación.
En Configuración avanzada, para Permitir flujos de cliente públicos, seleccione Sí.
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:
Cree una carpeta para alojar su aplicación y asígnele un nombre, como ciam-sign-in-node-cli-app.
En su terminal, navegue al directorio de su proyecto, como
cd ciam-sign-in-node-cli-app
e inicie su proyecto utilizandonpm init
. Esto crea un archivo package.json en la carpeta del proyecto, que contiene referencias a todos los paquetes npm.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 escontoso.onmicrosoft.com
, usecontoso
. 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 MSALpiiLoggingEnabled
: 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:
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.
En su archivo authConfig.js, localice el objeto
auth
y luego haga lo siguiente:- Actualice el valor de la
authority
propiedad a https://Enter_the_Custom_Domain_Here/Enter_the_Tenant_ID_Here. Reemplace porEnter_the_Custom_Domain_Here
el dominio de dirección URL personalizado yEnter_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. - Agregue la propiedad
knownAuthorities
con un valor [Enter_the_Custom_Domain_Here].
- Actualice el valor de la
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: