Поделиться через


Логирование в MSAL.js

Приложения библиотеки проверки подлинности Майкрософт (MSAL) создают сообщения журнала, которые помогают диагностировать проблемы. Приложение может настроить ведение журнала с несколькими строками кода и иметь пользовательский контроль над уровнем детализации и независимо от того, регистрируются ли персональные и организационные данные. Рекомендуется создать реализацию ведения журнала MSAL и предоставить пользователям способ отправки журналов при наличии проблем с проверкой подлинности.

Уровни ведения журнала

MSAL предоставляет несколько уровней сведений о ведении журнала:

  • LogAlways: фильтрация на этом уровне журнала не выполняется. Уровневые сообщения всех типов будут регистрироваться.
  • Критическое: журналы, описывающие неустранимый сбой приложения или системы, или катастрофический сбой, требующий немедленного внимания.
  • Ошибка: указывает, что что-то пошло не так, и возникла ошибка. Используется для отладки и выявления проблем.
  • Предупреждение: не обязательно произошла ошибка или сбой, но предназначены для диагностики и выявления проблем.
  • Информационный: MSAL регистрирует события, предназначенные для информационных целей, не обязательно предназначенных для отладки.
  • Подробный (по умолчанию): MSAL регистрирует полные сведения о поведении библиотеки.

Замечание

Не все уровни журналов доступны для всех пакетов SDK MSAL

Персональные и организационные данные

По умолчанию средство ведения журнала MSAL не записывает конфиденциальные персональные или организационные данные. Библиотека предоставляет возможность включить ведение журнала персональных и организационных данных, если вы решите это сделать.

В следующих разделах приведены дополнительные сведения о ведении журнала ошибок MSAL для приложения.

Настройка ведения журнала в MSAL.js

Включите логирование в MSAL.js (JavaScript), передав объект loggerOptions при настройке для создания экземпляра PublicClientApplication. Единственным обязательным параметром конфигурации является идентификатор клиента приложения. Все остальное является необязательным, но может потребоваться в зависимости от модели клиента и приложения.

Объект loggerOptions имеет следующие свойства:

  • loggerCallback: функция обратного вызова, которую разработчик может предоставить для обработки ведения журнала инструкций MSAL настраиваемым образом. Реализуйте функцию loggerCallback в зависимости от способа перенаправления журналов. Функция loggerCallback имеет следующий формат (level: LogLevel, message: string, containsPii: boolean): void
    • Поддерживаемые уровни журнала: Error, Warning, Infoи Verbose. Значение по умолчанию — Info.
  • piiLoggingEnabled (необязательно): если задано значение true, регистрирует персональные и организационные данные. По умолчанию это является false, чтобы приложение не регистрирует персональные данные. Журналы персональных данных никогда не записываются в выходные данные по умолчанию, такие как Консоль, Logcat или 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
        },
    },
};

Дальнейшие шаги

Дополнительные примеры кода см. в примерах кода платформы удостоверений Майкрософт.