Rejestrowanie w bibliotece MSAL.js

Aplikacje biblioteki Microsoft Authentication Library (MSAL) generują komunikaty dziennika, które mogą pomóc w diagnozowaniu problemów. Aplikacja może skonfigurować rejestrowanie przy użyciu kilku wierszy kodu i mieć niestandardową kontrolę nad poziomem szczegółowości oraz informacją, czy są rejestrowane dane osobiste i organizacyjne. Zalecamy utworzenie implementacji rejestrowania biblioteki MSAL i zapewnienie użytkownikom możliwości przesyłania dzienników w przypadku problemów z uwierzytelnianiem.

Poziomy rejestrowania

Biblioteka MSAL udostępnia kilka poziomów szczegółów rejestrowania:

  • LogAlways: filtrowanie na poziomie nie jest wykonywane na tym poziomie dziennika. Komunikaty dziennika wszystkich poziomów zostaną zarejestrowane.
  • Krytyczne: dzienniki, które opisują nieodwracalną awarię aplikacji lub systemu albo katastrofalną awarię, która wymaga natychmiastowej uwagi.
  • Błąd: wskazuje, że wystąpił problem i został wygenerowany błąd. Służy do debugowania i identyfikowania problemów.
  • Ostrzeżenie: Niekoniecznie wystąpił błąd lub błąd, ale są przeznaczone do diagnostyki i ustalania problemów.
  • Informacje: biblioteka MSAL będzie rejestrować zdarzenia przeznaczone do celów informacyjnych niekoniecznie przeznaczone do debugowania.
  • Pełne (ustawienie domyślne): biblioteka MSAL rejestruje pełne szczegóły zachowania biblioteki.

Uwaga

Nie wszystkie poziomy dziennika są dostępne dla wszystkich zestawów MSAL SDK

Dane osobowe i organizacyjne

Domyślnie rejestrator BIBLIOTEKI MSAL nie przechwytuje żadnych wysoce poufnych danych osobowych ani organizacyjnych. Biblioteka udostępnia opcję włączania rejestrowania danych osobistych i organizacyjnych, jeśli zdecydujesz się to zrobić.

Poniższe sekcje zawierają więcej szczegółowych informacji na temat rejestrowania błędów biblioteki MSAL dla aplikacji.

Konfigurowanie rejestrowania w MSAL.js

Włącz rejestrowanie w MSAL.js (JavaScript) przez przekazanie obiektu loggerOptions podczas konfigurowania PublicClientApplication tworzenia wystąpienia. Jedynym wymaganym parametrem konfiguracji jest identyfikator klienta aplikacji. Wszystko inne jest opcjonalne, ale może być wymagane w zależności od dzierżawy i modelu aplikacji.

Obiekt loggerOptions ma następujące właściwości:

  • loggerCallback: funkcja wywołania zwrotnego, która może być udostępniana przez dewelopera w celu obsługi rejestrowania instrukcji BIBLIOTEKI MSAL w niestandardowy sposób. Zaimplementuj loggerCallback funkcję w zależności od sposobu przekierowywania dzienników. Funkcja loggerCallback ma następujący format (level: LogLevel, message: string, containsPii: boolean): void
    • Obsługiwane poziomy dziennika to: Error, , WarningInfoi Verbose. Wartość domyślna to Info.
  • piiLoggingEnabled (opcjonalnie): jeśli ustawiono wartość true, rejestruje dane osobowe i organizacyjne. Domyślnie jest to wartość false, aby aplikacja nie rejestrowała danych osobowych. Dzienniki danych osobowych nigdy nie są zapisywane w domyślnych danych wyjściowych, takich jak Console, Logcat lub 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
        },
    },
};

Następne kroki

Aby uzyskać więcej przykładów kodu, zapoznaj się z przykładami kodu Platforma tożsamości Microsoft.