Ведение журнала в 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, чтобы приложение не сохраняло в журнал персональные данные. Журналы персональных данных никогда не записываются в выходные данные по умолчанию, например в Console, 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
},
},
};
Следующие шаги
Другие примеры кода можно найти в статье Примеры кода для платформы удостоверений Майкрософт.