Protokolování v MSAL.js

Aplikace Microsoft Authentication Library (MSAL) generují zprávy protokolu, které můžou pomoct s diagnostikou problémů. Aplikace může nakonfigurovat protokolování s několika řádky kódu a mít vlastní kontrolu nad úrovní podrobností a to, jestli se protokolují osobní a organizační data. Doporučujeme vytvořit implementaci protokolování MSAL a poskytnout uživatelům způsob odesílání protokolů, když mají problémy s ověřováním.

Úrovně protokolování

MSAL poskytuje několik úrovní podrobností protokolování:

  • LogAlways: Na této úrovni protokolu není provedeno žádné filtrování na úrovni. Protokolují se zprávy protokolu všech úrovní.
  • Kritické: Protokoly, které popisují neopravitelnou aplikaci nebo systémovou chybu nebo katastrofické selhání, které vyžaduje okamžitou pozornost.
  • Chyba: Označuje, že se něco nepovedlo a vygenerovala se chyba. Používá se k ladění a identifikaci problémů.
  • Upozornění: Nemusí se nutně jednat o chybu nebo selhání, ale jsou určené pro diagnostiku a určení problémů.
  • Informační: MSAL bude protokolovat události určené pro informativní účely, které nemusí být nutně určeny pro ladění.
  • Podrobné (výchozí): MSAL zaprokoluje úplné podrobnosti o chování knihovny.

Poznámka:

Ne všechny úrovně protokolů jsou k dispozici pro všechny sady MSAL SDK.

Osobní a organizační data

Ve výchozím nastavení protokolovací nástroj MSAL nezachytává žádná vysoce citlivá osobní ani organizační data. Knihovna nabízí možnost povolit protokolování osobních a organizačních dat, pokud se tak rozhodnete.

Následující části obsahují další podrobnosti o protokolování chyb MSAL pro vaši aplikaci.

Konfigurace protokolování v MSAL.js

Povolte protokolování v MSAL.js (JavaScript) předáním objektu loggerOptions během konfigurace pro vytvoření PublicClientApplication instance. Jediným povinným parametrem konfigurace je ID klienta aplikace. Všechno ostatní je volitelné, ale může se vyžadovat v závislosti na vašem tenantovi a modelu aplikace.

Objekt loggerOptions má následující vlastnosti:

  • loggerCallback: Funkce zpětného volání, kterou může vývojář poskytnout pro zpracování protokolování příkazů MSAL vlastním způsobem. loggerCallback Implementujte funkci v závislosti na tom, jak chcete přesměrovat protokoly. Funkce loggerCallback má následující formát. (level: LogLevel, message: string, containsPii: boolean): void
    • Podporované úrovně protokolů jsou: Error, Warning, Infoa Verbose. Výchozí hodnota je Info.
  • piiLoggingEnabled (volitelné): Pokud je nastavená hodnota true, protokoluje osobní a organizační data. Ve výchozím nastavení je tato hodnota false, aby vaše aplikace neukládala osobní údaje. Protokoly osobních dat se nikdy nezapisují do výchozích výstupů, jako je Konzola, Logcat nebo 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
        },
    },
};

Další kroky

Další ukázky kódu najdete v ukázkách kódu platformy Microsoft Identity Platform.