Compartir vía


Registro en MSAL.js

Las aplicaciones de la biblioteca de autenticación de Microsoft (MSAL) generan mensajes de registro que pueden ayudar a diagnosticar problemas. Una aplicación puede configurar el registro con unas cuentas líneas de código y tener un control personalizado sobre el nivel de detalle y si se registran o no datos de la organización y personales. Se recomienda crear una implementación de registros de MSAL y proporcionar una forma de que los usuarios envíen registros cuando tengan problemas de autenticación.

Niveles de registro

MSAL ofrece varios niveles de detalle de registro:

  • LogAlways: no se realiza ningún filtrado de nivel en este nivel de registro. Se registrarán los mensajes de registro de todos los niveles.
  • Crítico: registros que describen una aplicación no recuperable o un bloqueo del sistema, o bien un error catastrófico que requiere atención inmediata.
  • Error: indica que algo no ha funcionado bien y se ha generado un error. Se usa para la depuración y la identificación de problemas.
  • Advertencia: No se ha producido necesariamente un error, pero es necesario realizar un diagnóstico e identificar los problemas.
  • Informativo: MSAL registrará los eventos de carácter informativo, no relacionados necesariamente con la depuración.
  • Detallado (predeterminado): MSAL registra todos los detalles del comportamiento de la biblioteca.

Nota

No todos los niveles de registro están disponibles para todos los SDK de MSAL

Datos personales y organizativos

De forma predeterminada, el registrador de MSAL no captura datos personales u organizativos sumamente confidenciales. La biblioteca ofrece la opción de habilitar el registro de datos personales y organizativos si decide hacerlo.

En las secciones siguientes se proporcionan más detalles sobre el registro de errores de MSAL para la aplicación.

Configuración del registro en MSAL.js

Puede habilitar el registro en MSAL.js (JavaScript) si pasa un objeto loggerOptions durante la configuración para crear una instancia de PublicClientApplication. El único parámetro de configuración necesario es el identificador de cliente de la aplicación. Todo lo demás es opcional, pero puede ser necesario en función del modelo de inquilino y aplicación.

El objeto de loggerOptions tiene las siguientes propiedades:

  • loggerCallback: una función de devolución de llamada que puede proporcionar el desarrollador para controlar el registro de instrucciones MSAL de una manera personalizada. Implemente la función loggerCallback según cómo quiera redirigir los registros. La función loggerCallback tiene el formato siguiente: (level: LogLevel, message: string, containsPii: boolean): void
    • Los niveles de registro admitidos son: Error, Warning, Info y Verbose. El valor predeterminado es Info.
  • piiLoggingEnabled (opcional): si se establece en true, registra los datos personales y de la organización. De forma predeterminada, se establece en false para que la aplicación no registre los datos personales. Los registros de datos personales nunca se escriben en salidas predeterminadas, como consola, Logcat o NSLog.
import msal from "@azure/msal-browser"

const msalConfig = {
    auth: {
        clientId: "enter_client_id_here",
        authority: "https://login.microsoftonline.com/common",
        knownAuthorities: [],
        cloudDiscoveryMetadata: "",
        redirectUri: "enter_redirect_uri_here",
        postLogoutRedirectUri: "enter_postlogout_uri_here",
        navigateToLoginRequestUrl: true,
        clientCapabilities: ["CP1"]
    },
    cache: {
        cacheLocation: "sessionStorage",
        storeAuthStateInCookie: false,
        secureCookies: false
    },
    system: {
        loggerOptions: {
            logLevel: msal.LogLevel.Verbose,
            loggerCallback: (level, message, containsPii) => {
                if (containsPii) {
                    return;
                }
                switch (level) {
                    case msal.LogLevel.Error:
                        console.error(message);
                        return;
                    case msal.LogLevel.Info:
                        console.info(message);
                        return;
                    case msal.LogLevel.Verbose:
                        console.debug(message);
                        return;
                    case msal.LogLevel.Warning:
                        console.warn(message);
                        return;
                }
            },
            piiLoggingEnabled: false
        },
    },
};

Pasos siguientes

Para ver más ejemplos de código, consulte Ejemplos de código de la Plataforma de identidad de Microsoft.