Inicio rápido: Inicio de sesión de usuarios y llamada a Microsoft Graph API desde una aplicación web de Node.js mediante MSAL Node

En este inicio rápido, descargará y ejecutará un código de ejemplo que muestra de qué forma puede una aplicación web de Node.js realizar el inicio de sesión de los usuarios mediante el flujo de código de autorización. En el ejemplo de código se muestra cómo obtener un token de acceso para llamar a Microsoft Graph API.

Para ilustrar este tema, consulte el apartado en el que se explica el funcionamiento del ejemplo.

En este inicio rápido se usa la biblioteca de autenticación de Microsoft para Node.js (MSAL Node) con el flujo del código de autorización.

Requisitos previos

Registro y descarga de la aplicación de inicio rápido

Paso 1: Registrar su aplicación

Sugerencia

Los pasos de este artículo pueden variar ligeramente en función del portal desde donde comienza.

  1. Inicie sesión en el Centro de administración de Microsoft Entra como Administrador de aplicaciones en la nube.
  2. Si tiene acceso a varios inquilinos, use el icono Configuración del menú superior para cambiar al inquilino en el que desea registrar la aplicación desde el menú Directorios y suscripciones.
  3. Vaya a Identidad>Aplicaciones>Registros de aplicaciones y seleccione Nuevo registro.
  4. Escriba el nombre de la aplicación. Los usuarios de la aplicación pueden ver este nombre, el cual se puede cambiar más tarde.
  5. En Tipos de cuenta admitidos, seleccione Solo las cuentas de este directorio organizativo.
  6. Establezca el tipo de URI de redirección en Web y el valor en http://localhost:3000/auth/redirect.
  7. Seleccione Registrar.
  8. En la página de información general de la aplicación, anote el valor del Identificador de aplicación (cliente) para su uso posterior.
  9. En Administrar, seleccione Certificados y secretos>Secretos de los clientes>Nuevo secreto de cliente. Deje la descripción en blanco y la expiración predeterminada y, luego, seleccione Agregar.
  10. Anote el valor de Secreto de cliente para usarlo posteriormente.

Paso 2: Descarga del proyecto

Para ejecutar el proyecto con un servidor web con Node.js. descargue los archivos principales del proyecto.

Paso 3: Configuración de la aplicación de Node

Extraiga el proyecto, abra la carpeta ms-identity-node-main y, después, abra el archivo .env en la carpeta App. Sustituya los valores anteriores como se indica a continuación:

Variable Descripción Por ejemplo
Enter_the_Cloud_Instance_Id_Here Instancia en la nube de Azure en la que se registra la aplicación https://login.microsoftonline.com/ (incluya la barra diagonal final)
Enter_the_Tenant_Info_here Id. de inquilino o dominio principal contoso.microsoft.com o aaaabbbb-0000-cccc-1111-dddd2222eeee
Enter_the_Application_Id_Here Id. de cliente de la aplicación que ha registrado 00001111-aaaa-2222-bbbb-3333cccc4444
Enter_the_Client_Secret_Here Secreto de cliente de la aplicación que ha registrado A1b-C2d_E3f.H4i,J5k?L6m!N7o-P8q_R9s.T0u
Enter_the_Graph_Endpoint_Here Instancia de nube de Microsoft Graph API a la que llama la aplicación https://graph.microsoft.com/ (incluya la barra diagonal final)
Enter_the_Express_Session_Secret_Here Cadena de caracteres aleatoria que se usa para firmar la cookie de sesión rápida A1b-C2d_E3f.H4...

El archivo debe ser similar al siguiente:

CLOUD_INSTANCE=https://login.microsoftonline.com/
TENANT_ID=aaaabbbb-0000-cccc-1111-dddd2222eeee
CLIENT_ID=00001111-aaaa-2222-bbbb-3333cccc4444
CLIENT_SECRET=A1b-C2d_E3f.H4...

REDIRECT_URI=http://localhost:3000/auth/redirect
POST_LOGOUT_REDIRECT_URI=http://localhost:3000

GRAPH_API_ENDPOINT=https://graph.microsoft.com/

EXPRESS_SESSION_SECRET=6DP6v09eLiW7f1E65B8k

Paso 4: Ejecución del proyecto

Ejecute el proyecto mediante Node.js.

  1. Para iniciar el servidor, ejecute los siguientes comandos desde el directorio del proyecto:

    cd App
    npm install
    npm start
    
  2. Vaya a http://localhost:3000/.

  3. Seleccione Iniciar sesión para comenzar el proceso de inicio de sesión.

    La primera vez que inicie sesión, se le pedirá que dé su consentimiento para permitir que la aplicación inicie sesión y acceda a su perfil. Una vez que haya iniciado sesión correctamente, se le redirigirá a la página principal de la aplicación.

Más información

Funcionamiento del ejemplo

El ejemplo hospeda un servidor web en localhost, puerto 3000. Si un explorador web accede a esta dirección, la aplicación representa la página principal. Una vez que el usuario selecciona Iniciar sesión, la aplicación redirige el explorador a la pantalla de inicio de sesión de Microsoft Entra, para lo que se usa la dirección URL generada por la biblioteca MSAL Node. Una vez que el usuario da su consentimiento, el explorador lo redirige a la página principal de la aplicación, junto con un identificador y un token de acceso.

MSAL Node

La biblioteca MSAL Node inicia la sesión de los usuarios y solicita los tokens que se usan para acceder a una API protegida por la plataforma de identidad de Microsoft. Puede descargar la versión más reciente mediante el administrador de paquetes de Node.js (npm):

npm install @azure/msal-node

Pasos siguientes

Para más información, cree una aplicación web de ASP.NET Core que inicie la sesión de los usuarios con la siguiente serie de tutoriales de varias partes: