MSAL.js 中的日志记录
Microsoft 身份验证库 (MSAL) 应用生成日志消息,这些消息可以用来诊断问题。 应用可以通过数行代码配置日志记录,并可对详细程度以及是否记录个人和组织数据进行自定义控制。 建议创建 MSAL 日志记录实现,并提供一种方式来让用户在遇到身份验证问题时提交日志。
日志记录级别
MSAL 提供多个日志记录详细级别:
- LogAlways:此日志级别不执行级别筛选。 将记录所有级别的日志消息。
- 严重:描述不可恢复的应用程序/系统崩溃或需要立即引起注意的灾难性故障的日志。
- 错误:指示出现问题并已生成错误。 用于调试并确定问题。
- 警告:不一定会出现错误或故障,只是为了诊断和指出问题。
- 信息:MSAL 将要记录的事件可为用户提供信息,不一定用于调试。
- 详细(默认值):MSAL 将记录库行为的完整详细信息。
注意
并非所有日志级别都适用于所有 MSAL SDK
个人和组织数据
默认情况下,MSAL 记录器不捕获任何高度敏感的个人或组织数据。 该库提供相关选项,允许你自行决定是否记录个人和组织数据。
以下各节将详细介绍应用程序的 MSAL 错误日志记录。
在 MSAL.js 中配置日志记录
可以在 MSAL.js (JavaScript) 中启用日志记录,方法是在配置过程中传递一个 loggerOptions 对象,以便创建 PublicClientApplication
实例。 唯一必需的配置参数是应用程序的客户端 ID。 其他所有内容都是可选的,但可能需要,具体取决于租户和应用程序模型。
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.partner.microsoftonline.cn/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
},
},
};
后续步骤
有关更多代码示例,请参阅 Microsoft 标识平台代码示例。