Share via


Protokollierung in MSAL.js

Mit Microsoft Authentication Library-Apps (MSAL-Apps) werden Protokollmeldungen generiert, die Sie beim Diagnostizieren von Problemen unterstützen. Eine App kann die Protokollierung mit wenigen Codezeilen konfigurieren und hat benutzerdefinierte Kontrolle über den Detailgrad und darüber, ob personenbezogene Daten und Organisationsdaten protokolliert werden oder nicht. Es wird empfohlen, eine MSAL-Protokollierungsimplementierung festzulegen und Benutzern eine Möglichkeit zu bieten, Protokolle zu übermitteln, wenn Authentifizierungsprobleme auftreten.

Protokolliergrade

MSAL bietet mehrere Grade für Protokollierungsdetails:

  • LogAlways: Auf dieser Protokollstufe erfolgt keine Ebenenfilterung. Protokollmeldungen aller Protokollstufen werden protokolliert.
  • Critical: Protokolle, die einen nicht behebbaren Anwendungs- oder Systemabsturz bzw. einen schwerwiegenden Fehler beschreiben, der unmittelbare Aufmerksamkeit erfordert.
  • Error: Gibt an, dass ein Problem aufgetreten ist und ein Fehler generiert wurde. Wird zum Debuggen und Identifizieren von Problemen verwendet.
  • Warnung: Es muss nicht unbedingt zu einem Fehler oder Ausfall gekommen sein. Dieser Grad ist für das Diagnostizieren und Ermitteln von Problemen vorgesehen.
  • Informational: MSAL protokolliert Ereignisse, die für Informationszwecke und nicht unbedingt für das Debuggen vorgesehen sind.
  • Verbose (Standard): MSAL protokolliert die vollständigen Details des Bibliotheksverhaltens.

Hinweis

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

Personenbezogene Daten und Organisationsdaten

Die MSAL-Protokollierung erfasst standardmäßig keine streng vertraulichen personenbezogenen Daten oder Organisationsdaten. Die Bibliothek bietet jedoch die Option, die Protokollierung von personenbezogenen Daten und Organisationsdaten zu aktivieren.

In den folgenden Abschnitten finden Sie weitere Einzelheiten 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 jedoch je nach Mandant und Anwendungsmodell auch erforderlich sein.

Das loggerOptions-Objekt weist die folgenden Eigenschaften auf:

  • 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 entsprechend der Art und Weise, in der Protokolle umgeleitet werden sollen. Die loggerCallback-Funktion hat das folgende Format: (level: LogLevel, message: string, containsPii: boolean): void
    • Die unterstützten Protokollierungsebenen sind: Error, Warning, Info und Verbose. Der Standardwert lautet Info.
  • piiLoggingEnabled (optional): protokolliert personenbezogene und organisationsbezogene Daten, wenn der Wert auf „true“ festgelegt wird. Dieser Parameter ist standardmäßig auf „false“ festgelegt, damit Ihre Anwendung keine personenbezogenen Daten protokolliert. Protokolle mit personenbezogenen Daten werden nie in Standardausgaben wie die 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 unter Microsoft Identity Platform-Codebeispiele.