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.
Biblioteca de autenticación de Microsoft (MSAL) para Node puede usar el agente Microsoft Single Sign-on for Linux para ofrecer inicio de sesión único (SSO) y una adquisición segura de tokens en las distribuciones de Linux compatibles. El intermediario gestiona los intercambios de autenticación y el ciclo de vida de los tokens, permitiendo que los usuarios se beneficien de la integración con cuentas que el sistema conoce.
En este artículo se explica qué es el broker de Linux, qué distribuciones admite y cómo habilitar la adquisición de tokens mediante broker en una aplicación Node.js.
Para obtener información general sobre la compatibilidad con el agente en todas las plataformas, consulte Uso del nodo MSAL con el agente de token nativo.
¿Qué es el broker de Linux?
El inicio de sesión único de Microsoft para Linux es un intermediario de autenticación distribuido por separado de la distribución de Linux. Instálelo con un administrador de paquetes (sudo apt install microsoft-identity-broker o sudo dnf install microsoft-identity-broker). También se incluye como dependencia de aplicaciones de Microsoft como Portal de empresa.
Entre las ventajas clave se incluyen las siguientes:
- Inicio de sesión único. Simplifica la forma en que los usuarios se autentican con Microsoft Entra ID y protegen los tokens de actualización de la filtración y el uso incorrecto.
- Seguridad mejorada. Las mejoras de seguridad se entregan a través de actualizaciones de agente sin necesidad de cambios en el código de la aplicación.
- Protección de tokens. El agente garantiza que los tokens de actualización estén enlazados al dispositivo.
- Integración del sistema. Las aplicaciones se conectan al selector de cuentas integrado, lo que permite a los usuarios seleccionar rápidamente una cuenta existente.
Distribuciones admitidas
- Ubuntu 22.04 / 24.04 (x64)
- Red Hat Enterprise Linux (RHEL) 8 / 9 / 10 (x64)
Prerequisites
- Node.js 18 o posterior
- Instala
@azure/msal-node-extensionscomo dependencia -
microsoft-identity-brokerdebe estar instalado en el dispositivo. - Registre el URI de redirección del intermediario en el registro de su aplicación (consulte URI de redirección a continuación).
- Instale las dependencias del sistema necesarias (consulte Dependencias del sistema a continuación).
URI de redirección
Para los flujos del broker en Linux, registra el siguiente URI de redireccionamiento en la plataforma Aplicaciones móviles y de escritorio del Azure Portal:
https://login.microsoftonline.com/common/oauth2/nativeclient
Dependencias del sistema
Ubuntu 22.04/24.04
sudo apt install libsecret-1-0 libdbus-1-3
- libsecret : almacena y recupera de forma segura los tokens de autenticación a través del llavero del sistema (GNOME Keyring o KDE Wallet).
-
dbus : comunicación entre procesos con el agente de autenticación. Un bus de sesión D-Bus debe ejecutarse (estándar en entornos de escritorio; los servidores sin encabezado pueden necesitar
dbus-run-sessiono equivalente).
sudo apt install libwebkit2gtk-4.1-0 libgtk-3-0
- WebKitGTK : proporciona el explorador incrustado para la interfaz de usuario de inicio de sesión interactiva.
- GTK : el kit de herramientas de interfaz de usuario subyacente requerido por WebKitGTK.
Habilitar la característica
Para habilitar el broker de Linux se usa la misma configuración que en Windows y macOS. Pase una instancia de NativeBrokerPlugin en la configuración del broker:
import { PublicClientApplication, Configuration } from "@azure/msal-node";
import { NativeBrokerPlugin } from "@azure/msal-node-extensions";
const msalConfig: Configuration = {
auth: {
clientId: "your-client-id",
},
broker: {
nativeBrokerPlugin: new NativeBrokerPlugin(),
},
};
const pca = new PublicClientApplication(msalConfig);
Note
msal-node no recurre a un flujo basado en el navegador si el agente de intermediación no está disponible. Habilite solo la autenticación mediada en dispositivos Linux compatibles para evitar fallos inesperados.
Adquisición de tokens
Adquisición interactiva de tokens
Use acquireTokenInteractive para solicitar un token mediante el agente de Linux:
const tokenRequest = {
scopes: ["User.Read"],
};
const result = await pca.acquireTokenInteractive(tokenRequest);
console.log("Access token:", result.accessToken);
Adquisición silenciosa de tokens
Después de un inicio de sesión interactivo inicial, las solicitudes de token posteriores se pueden realizar de forma silenciosa:
const accounts = await pca.getAllAccounts();
if (accounts.length > 0) {
const silentRequest = {
scopes: ["User.Read"],
account: accounts[0],
};
const result = await pca.acquireTokenSilent(silentRequest);
console.log("Access token (silent):", result.accessToken);
}
Almacenamiento en caché de tokens
El intermediario de autenticación se encarga del almacenamiento en caché de los tokens de actualización y de acceso. Los tokens adquiridos a través del agente se administran mediante el propio agente y están enlazados al dispositivo. No es necesario configurar una caché personalizada cuando se utiliza el broker.
Diferencias al usar el broker de Linux
- Cuando el agente necesita solicitar la interacción, aparece un cuadro de diálogo de inicio de sesión nativo (basado en WebKitGTK). Esto cambia la experiencia del usuario (UX) en comparación con la autenticación basada en explorador.
- No se admite el
forceRefreshparámetro paraacquireTokenSilent. Puede recibir un token almacenado en caché del intermediario independientemente de este indicador. - Debe haber un bus de sesión D-Bus en ejecución para que la comunicación con el broker funcione.
Limitaciones
- Las autoridades de Azure AD B2C y Servicios de federación de Active Directory (AD FS) (AD FS) no son compatibles con el broker de Linux.
- No se admiten proveedores de identidades de terceros (IDP).
-
microsoft-identity-brokerdebe estar instalado en el dispositivo para que el broker funcione. -
msal-nodeno recurre a un navegador si el broker no está disponible. Active el broker solo en entornos compatibles. - La prueba de posesión del token de acceso (PoP) no es compatible actualmente mediante el broker de Linux.