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) Node puede usar el intermediario de autenticación de macOS para habilitar el inicio de sesión único (SSO) y la obtención segura de tokens mediante cuentas reconocidas por el sistema operativo. En este artículo se explica el intermediario de macOS y cómo habilitar y usar la autenticación intermediada en MSAL Node.
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 macOS?
En macOS, el agente de autenticación lo proporciona el complemento Microsoft Enterprise SSO para dispositivos Apple, que se incluye con la aplicación Portal de empresa. El intermediario gestiona los intercambios de autenticación y el ciclo de vida de los tokens de las cuentas conectadas. Entre las ventajas clave se incluyen las siguientes:
- 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. Los tokens de actualización están enlazados al dispositivo y están protegidos contra la filtración.
- Integración del sistema. Los usuarios pueden reutilizar las cuentas de inicio de sesión existentes de Portal de empresa, lo que reduce la reentrización de credenciales.
- Protección de tokens. El broker garantiza que los tokens de actualización estén vinculados al contexto del dispositivo.
Plataformas y arquitecturas compatibles
| Componente | Soportado |
|---|---|
| Arquitectura | ARM64 (Apple Silicon) y x64 (Intel) |
| Versión de macOS | macOS 10.15 (Catalina) y versiones posteriores |
Tip
Se recomienda actualizar a la versión más reciente de macOS para garantizar la compatibilidad con las características de seguridad y las funcionalidades de agente más recientes.
Prerequisites
- Node.js 18 o posterior
- Instala
@azure/msal-node-extensionscomo dependencia - El dispositivo debe inscribirse a través de Portal de empresa. Después de la inscripción, compruebe que otras aplicaciones de Microsoft pueden iniciar sesión a través de la extensión SSO (por ejemplo, puede iniciar sesión en Word a través de Portal de empresa).
- Registra la URI de redireccionamiento del broker en el registro de tu aplicación. Para conocer los valores de URI admitidos, consulte URI de redirección.
URI de redirección
Para los flujos del intermediario de macOS, debe registrar una URI de redireccionamiento específica de la plataforma en la plataforma Aplicaciones móviles y de escritorio del Azure Portal.
Para aplicaciones sin firmar (scripts, herramientas de la CLI):
Use el siguiente URI de redirección para aplicaciones sin firmar, como scripts y herramientas de la CLI:
msauth.com.msauth.unsignedapp://auth
Para aplicaciones firmadas o agrupadas:
Use el siguiente formato de URI de redirección para aplicaciones firmadas o agrupadas:
msauth.<your-bundle-id>://auth
Reemplace por <your-bundle-id> el identificador de lote de Apple de la aplicación (por ejemplo, msauth.com.example.myapp://auth).
Importante
La URI de redireccionamiento del intermediario solo debe utilizarse para los flujos del intermediario. Si la aplicación también usa flujos de autenticación basados en explorador, use un URI de redirección independiente para ellos. Si se proporciona la URI de redireccionamiento del intermediario a un flujo basado en navegador, se producirá un error.
Habilitar la característica
La habilitación del agente de macOS requiere la misma configuración que Windows. 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 por agente en entornos compatibles con el agente para evitar errores inesperados.
Adquisición de tokens
Adquisición interactiva de tokens
Use acquireTokenInteractive para solicitar un token a través del agente de macOS:
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 el almacenamiento en caché personalizado si usas el bróker.
Diferencias al usar el agente de macOS
- Cuando el agente necesita solicitar la interacción, aparece un cuadro de diálogo de autenticación de macOS nativo. 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. - La prueba de posesión (PoP) del token de acceso es compatible a través del intermediario.
Limitaciones
- Las autoridades de Azure AD B2C y Servicios de federación de Active Directory (AD FS) (ADFS) no son compatibles a través del broker de macOS.
- No se admiten proveedores de identidades de terceros (IDP).
- Portal de empresa debe estar instalado y el dispositivo debe inscribirse para que el agente funcione.
-
msal-nodeno recurre a un navegador si el broker no está disponible. Active el broker solo en entornos compatibles.