Naplózás az MSAL.js-ben

A Microsoft Authentication Library (MSAL)-alkalmazások olyan naplóüzeneteket hoznak létre, amelyek segíthetnek a problémák diagnosztizálásában. Az alkalmazások néhány sornyi kóddal konfigurálhatják a naplózást, és egyéni vezérléssel szabályozhatják a részletesség szintjét, valamint azt, hogy a rendszer naplózza-e a személyes és szervezeti adatokat. Javasoljuk, hogy hozzon létre egy MSAL-naplózási implementációt, és biztosítson módot a felhasználók számára, hogy hitelesítési problémák esetén küldjenek naplókat.

Naplózási szintek

Az MSAL több szintű naplózási részletet biztosít:

  • LogAlways: Ezen a naplószinten nem történik szintszűrés. A rendszer minden szinten naplózza az üzeneteket.
  • Kritikus: Helyreállíthatatlan alkalmazást vagy rendszerösszeomlást vagy azonnali figyelmet igénylő katasztrofális hibát leíró naplók.
  • Hiba: Azt jelzi, hogy hiba történt, és hiba történt. Hibakeresésre és problémák azonosítására szolgál.
  • Figyelmeztetés: Nem feltétlenül volt hiba vagy hiba, de diagnosztikára és problémák rögzítésére szolgál.
  • Tájékoztató: Az MSAL olyan eseményeket naplóz, amelyek nem feltétlenül hibakeresésre szolgálnak.
  • Részletes (alapértelmezett): Az MSAL naplózza a kódtár viselkedésének teljes részleteit.

Feljegyzés

Nem minden naplószint érhető el az összes MSAL SDK-hoz

Személyes és szervezeti adatok

Alapértelmezés szerint az MSAL-naplózó nem rögzíti a bizalmas személyes vagy szervezeti adatokat. A kódtár lehetővé teszi a személyes és szervezeti adatok naplózását, ha úgy dönt, hogy ezt teszi.

Az alábbi szakaszok további részleteket nyújtanak az alkalmazás MSAL-hibanaplózásáról.

Naplózás konfigurálása MSAL.js

Engedélyezze a naplózást a MSAL.js (JavaScript) szolgáltatásban egy loggerOptions objektum átadásával a példány létrehozásához PublicClientApplication szükséges konfiguráció során. Az egyetlen szükséges konfigurációs paraméter az alkalmazás ügyfélazonosítója. Minden más nem kötelező, de a bérlőtől és az alkalmazásmodelltől függően szükség lehet rá.

A loggerOptions objektum a következő tulajdonságokkal rendelkezik:

  • loggerCallback: egy visszahívási függvény, amelyet a fejlesztő adhat meg az MSAL-utasítások naplózásának egyéni módon történő kezeléséhez. A függvény implementálása attól loggerCallback függően, hogy hogyan szeretné átirányítani a naplókat. A loggerCallback függvény formátuma a következő: (level: LogLevel, message: string, containsPii: boolean): void
    • A támogatott naplószintek a következők: Error, Warning, Infoés Verbose. Az alapértelmezett érték Info.
  • piiLoggingEnabled (nem kötelező): ha igaz értékre van állítva, naplózza a személyes és a szervezeti adatokat. Alapértelmezés szerint ez hamis, így az alkalmazás nem naplózza a személyes adatokat. A személyes adatnaplók soha nem írhatók alapértelmezett kimenetekre, például a Konzolra, a Logcatre vagy az NSLogra.
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
        },
    },
};

Következő lépések

További kódmintákért tekintse meg Microsoft Identitásplatform kódmintákat.