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.
¡Bienvenido! Probablemente esta no sea la página que esperaba. Mientras trabajamos en una corrección, este vínculo debería llevarle al artículo correcto:
Lamentamos las molestias y agradecemos su paciencia mientras trabajamos para resolverlo.
En este inicio rápido descargará y ejecutará un código de ejemplo que muestra cómo puede obtener una aplicación de consola de Node.js un token de acceso mediante la identidad de la aplicación para llamar a Microsoft Graph API y mostrar una lista de usuarios en el directorio. En el ejemplo de código se muestra cómo se puede ejecutar un trabajo desatendido o un servicio de Windows con una identidad de aplicación, en lugar de la identidad de un usuario.
En este inicio rápido se usa la biblioteca de autenticación de Microsoft para Node.js (MSAL Node) con la concesión de credenciales de cliente.
Prerrequisitos
- Node.js
- Visual Studio Code u otro editor de código
Descarga y configuración de la aplicación de ejemplo
Paso 1: Configuración de la aplicación en Azure Portal
Para que el ejemplo de código de esta guía de inicio rápido funcione, debe crear un secreto de cliente y agregar el permiso de aplicación User.Read.All de Graph API.
La aplicación está configurada con estos atributos.
Paso 2: Descarga del proyecto de ejemplo en Node.js
Nota:
Enter_the_Supported_Account_Info_Here
Paso 3: Consentimiento de administrador
Si intenta ejecutar la aplicación en este momento, recibirá un error HTTP 403 - Prohibido: Insufficient privileges to complete the operation. Este error sucede porque cualquier permiso de solo aplicación requiere el consentimiento del administrador: un administrador del directorio debe otorgar su consentimiento a la aplicación. Seleccione una de las opciones siguientes según el rol:
Administrador del inquilino
Si es administrador, vaya a la página Permisos de API, seleccione Conceder consentimiento del administrador para > Enter_the_Tenant_Name_Here
Usuario estándar
Si es usuario estándar de su inquilino, debe pedir al menos a un administrador de aplicaciones en la nube que conceda consentimiento del administrador para su aplicación. Para ello, proporcione la siguiente dirección URL a su administrador:
https://login.microsoftonline.com/Enter_the_Tenant_Id_Here/adminconsent?client_id=Enter_the_Application_Id_Here
Paso 4: Ejecución de la aplicación
Busque la carpeta raíz del ejemplo (donde package.json reside) en un símbolo del sistema o una consola. Deberá instalar las dependencias de este ejemplo una vez:
npm install
A continuación, ejecute la aplicación a través de la ventana de comandos o la consola:
node . --op getUsers
Debería ver en la salida de la consola algún fragmento de JSON que represente una lista de los usuarios del directorio de Microsoft Entra.
Sobre el código
A continuación, se describen algunos de los aspectos importantes de la aplicación de ejemplo.
Nodo MSAL
MSAL Node es la biblioteca que se usa para iniciar la sesión de los usuarios y solicitar los tokens que se usan para acceder a una API protegida por la plataforma de identidad de Microsoft. Como se ha descrito, en este inicio rápido se solicitan tokens por permisos de aplicación (mediante la identidad propia de la aplicación), en lugar de permisos delegados. El flujo de autenticación usado en este caso se conoce como flujo de credenciales de cliente de OAuth 2.0. Para más información sobre cómo usar MSAL Node con aplicaciones daemónicas, consulte Escenario: aplicación daemon.
Para instalar MSAL Node, ejecute el siguiente comando npm.
npm install @azure/msal-node --save
Inicialización de MSAL
Puede agregar la referencia de MSAL con el código siguiente:
const msal = require('@azure/msal-node');
A continuación, realice la inicialización de MSAL con el siguiente código:
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);
Donde: Descripción clientIdEs el Identificador de aplicación (cliente) de la aplicación registrada en Azure Portal. Puede encontrar este valor en la página Información general de la aplicación en Azure Portal. authorityEl punto de conexión STS para que el usuario pueda autenticarse. Normalmente https://login.microsoftonline.com/{tenant}en la nube pública, donde {tenant} es el nombre o el identificador del inquilino.clientSecretEs el secreto de cliente creado para la aplicación en Azure Portal.
Para más información, consulte la documentación de referencia de ConfidentialClientApplication.
Solicitud de tokens
Para solicitar un token mediante la identidad de la aplicación, use el método acquireTokenByClientCredential:
const tokenRequest = {
scopes: [ 'https://graph.microsoft.com/.default' ],
};
const tokenResponse = await cca.acquireTokenByClientCredential(tokenRequest);
Donde: Descripción tokenRequestContiene los ámbitos solicitados. Con clientes confidenciales se debe usar un formato similar a {Application ID URI}/.defaultpara indicar que los ámbitos que se solicitan son los definidos estáticamente en el objeto de aplicación establecido en Azure Portal (con Microsoft Graph,{Application ID URI}apunta ahttps://graph.microsoft.com). En el caso de las API web personalizadas,{Application ID URI}se define en la sección Exponer una API del registro de aplicación de Azure Portal.tokenResponseLa respuesta contiene un token de acceso para los ámbitos solicitados.
Ayuda y soporte técnico
Si necesita ayuda, desea informar de un problema o desea obtener información sobre las opciones de soporte técnico, consulte Opciones de ayuda y soporte técnico para desarrolladores.
Pasos siguientes
Para obtener más información sobre el desarrollo de aplicaciones de consola o daemon con MSAL Node, consulte el tutorial: