Condividi tramite


Registrazione in MSAL.js

Le app di Microsoft Authentication Library (MSAL) generano messaggi di log che consentono di diagnosticare i problemi. Un'app può configurare la registrazione con alcune righe di codice e avere un controllo personalizzato sul livello di dettaglio, oltre che sulla necessità di registrare o meno i dati personali o dell'organizzazione. È consigliabile creare un'implementazione della registrazione MSAL e fornire agli utenti un modo per inviare i log in caso di problemi di autenticazione.

Livelli di registrazione

MSAL offre diversi livelli di dettaglio della registrazione:

  • LogAlways: nessun filtro a livello viene eseguito a questo livello di log. Verranno registrati i messaggi di log di tutti i livelli.
  • Critico: log che descrivono un'applicazione o un arresto anomalo del sistema irreversibile o un errore irreversibile che richiede attenzione immediata.
  • Errore: indica che si è verificato un errore e che è stato generato un errore. Usato per il debug e l'identificazione dei problemi.
  • Avviso: non si è necessariamente verificato un errore o un errore, ma sono destinati alla diagnostica e all'individuazione dei problemi.
  • Informativo: MSAL registra gli eventi destinati a scopi informativi non necessariamente destinati al debug.
  • Dettagliato (impostazione predefinita): MSAL registra i dettagli completi del comportamento della libreria.

Nota

Non tutti i livelli di log sono disponibili per tutti gli SDK MSAL

Dati personali e dell'organizzazione

Per impostazione predefinita, il logger MSAL non acquisisce dati personali o aziendali estremamente sensibili. La libreria offre la possibilità di abilitare la registrazione dei dati personali e dell'organizzazione se si decide di farlo.

Le sezioni seguenti forniscono altri dettagli sulla registrazione degli errori MSAL per l'applicazione.

Configurare la registrazione in MSAL.js

Abilitare la registrazione in MSAL.js (JavaScript) passando un oggetto loggerOptions durante la configurazione per la creazione di un'istanza PublicClientApplication . L'unico parametro di configurazione obbligatorio è l'ID client dell'applicazione. Tutto il resto è facoltativo, ma può essere necessario a seconda del tenant e del modello di applicazione.

L'oggetto loggerOptions ha le proprietà seguenti:

  • loggerCallback: funzione di callback che può essere fornita dallo sviluppatore per gestire la registrazione delle istruzioni MSAL in modo personalizzato. Implementare la loggerCallback funzione in base alla modalità di reindirizzamento dei log. La funzione loggerCallback ha il formato seguente (level: LogLevel, message: string, containsPii: boolean): void
    • I livelli di log supportati sono: Error, Warning, Infoe Verbose. Il valore predefinito è Info.
  • piiLoggingEnabled (facoltativo): se impostato su true, registra i dati personali e dell'organizzazione. Per impostazione predefinita, questo è false in modo che l'applicazione non registri i dati personali. I log dei dati personali non vengono mai scritti negli output predefiniti come 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
        },
    },
};

Passaggi successivi

Per altri esempi di codice, vedere esempi di codice di Microsoft Identity Platform.