Freigeben über


Protokollierung in MSAL.js

Die MSAL-Apps (Microsoft Authentication Library) generieren Protokollmeldungen, die bei der Diagnose von Problemen helfen können. Eine App kann die Protokollierung mit einigen Codezeilen konfigurieren und benutzerdefinierte Kontrolle über die Detailebene und darüber verfügen, ob persönliche und organisatorische Daten protokolliert werden. Es wird empfohlen, eine MSAL-Protokollierungsimplementierung zu erstellen und Benutzern die Möglichkeit zu bieten, Protokolle zu übermitteln, wenn Authentifizierungsprobleme auftreten.

Protokolliergrade

MSAL bietet mehrere Ebenen der Protokollierungsdetails:

  • LogAlways: Auf dieser Protokollebene wird keine Ebenenfilterung durchgeführt. Protokollmeldungen aller Ebenen werden protokolliert.
  • Kritisch: Protokolle, die einen unbehebbaren Anwendungs- oder Systemabsturz oder einen katastrophalen Fehler beschreiben, der sofortige Aufmerksamkeit erfordert.
  • Fehler: Gibt an, dass ein Fehler aufgetreten ist und ein Fehler generiert wurde. Wird zum Debuggen und Identifizieren von Problemen verwendet.
  • Warnung: Es ist nicht notwendigerweise ein Fehler oder Ausfall aufgetreten, sondern die Meldung dient zur Diagnose und zum Lokalisieren von Problemen.
  • Informational: MSAL protokolliert Ereignisse, die zwar für Informationszwecke vorgesehen, aber nicht unbedingt für das Debuggen gedacht sind.
  • Verbose (Standard): MSAL protokolliert die vollständigen Details des Bibliotheksverhaltens.

Hinweis

Nicht alle Protokollstufen sind für alle MSAL SDKs verfügbar.

Personenbezogene und organisatorische Daten

Standardmäßig erfasst der MSAL-Logger keine streng vertraulichen persönlichen oder organisatorischen Daten. Die Bibliothek bietet die Möglichkeit, die Protokollierung personenbezogener und organisatorischer Daten zu aktivieren, wenn Sie dies tun möchten.

In den folgenden Abschnitten finden Sie weitere Details zur MSAL-Fehlerprotokollierung für Ihre Anwendung.

Konfigurieren der Protokollierung in MSAL.js

Aktivieren Sie die Protokollierung in MSAL.js (JavaScript), indem Sie beim Konfigurieren ein loggerOptions-Objekt zum Erstellen einer Instanz vom Typ PublicClientApplication übergeben. Der einzige erforderliche Konfigurationsparameter ist die Client-ID der Anwendung. Alles andere ist optional, kann aber je nach Mandanten- und Anwendungsmodell erforderlich sein.

Das loggerOptions-Objekt verfügt über die folgenden Eigenschaften:

  • loggerCallback: Eine Rückruffunktion, die vom Entwickler bereitgestellt werden kann, um die Protokollierung von MSAL-Anweisungen auf benutzerdefinierte Weise zu behandeln. Implementieren Sie die loggerCallback Funktion abhängig davon, wie Sie Protokolle umleiten möchten. Die LoggerCallback-Funktion weist das folgende Format auf: (level: LogLevel, message: string, containsPii: boolean): void
    • Die unterstützten Protokollierungsebenen sind: Error, Warning, Info und Verbose. Der Standardwert ist Info.
  • piiLoggingEnabled (optional): Wenn dieser Wert auf "true" festgelegt ist, protokolliert es persönliche und organisatorische Daten. Standardmäßig ist dies "false", sodass Ihre Anwendung keine personenbezogenen Daten protokolliert. Personenbezogene Datenprotokolle werden niemals in Standardausgaben wie Konsole, Logcat oder NSLog geschrieben.
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
        },
    },
};

Nächste Schritte

Weitere Codebeispiele finden Sie in den Codebeispielen der Microsoft Identity Platform.