Compartir a través de


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 algunas líneas de código y tener control personalizado sobre el nivel de detalle y si se registran o no datos personales y de la organización. Se recomienda crear una implementación de registro de MSAL y proporcionar una manera de que los usuarios envíen registros cuando tengan problemas de autenticación.

Niveles de registro

MSAL proporciona varios niveles de detalle de registro:

  • LogAlways: no se realiza ningún filtrado de nivel en este nivel de registro. Los mensajes de registro de todos los niveles serán registrados.
  • Crítico: registros que describen un bloqueo irrecuperable de la aplicación o del sistema, o un fallo catastrófico que requiere atención inmediata.
  • Error: indica que algo ha ido mal y se generó un error. Se usa para la depuración y la identificación de problemas.
  • Advertencia: no se ha producido necesariamente un error o fallo, pero están pensados para diagnósticos e identificar 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 ningún dato personal o organizativo altamente confidencial. La biblioteca proporciona 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 inquilino y el modelo de aplicación.

El objeto 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 loggerCallback función en función de cómo quiera redirigir los registros. La función loggerCallback tiene el siguiente formato (level: LogLevel, message: string, containsPii: boolean): void
    • Los niveles de registro admitidos son: Error, Warning, Infoy Verbose. El valor predeterminado es Info.
  • piiLoggingEnabled (opcional): si se establece en true, registra datos personales y organizativos. De forma predeterminada, esto es false para que la aplicación no registre datos personales. Los registros de datos personales nunca se escriben en salidas predeterminadas como Console, 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 obtener más ejemplos de código, consulte ejemplos de código de la plataforma de identidad de Microsoft.