MSAL for Java 中的日志记录

Microsoft 身份验证库 (MSAL) 应用生成日志消息,这些消息可以用来诊断问题。 应用可以通过数行代码配置日志记录,并可对详细程度以及是否记录个人和组织数据进行自定义控制。 建议创建 MSAL 日志记录回调,并提供一种方式来让用户在遇到身份验证问题时提交日志。

日志记录级别

MSAL 提供多个日志记录详细级别:

  • 错误:指示出现问题并已生成错误。 用于调试并确定问题。
  • 警告:不一定会出现错误或故障,只是为了诊断和指出问题。
  • 信息:MSAL 将要记录的事件可为用户提供信息,不一定用于调试。
  • 详细:默认。 MSAL 将记录库行为的完整详细信息。

个人和组织数据

默认情况下,MSAL 记录器不捕获任何高度敏感的个人或组织数据。 该库提供相关选项,允许你自行决定是否记录个人和组织数据。

以下各节将详细介绍应用程序的 MSAL 错误日志记录。

适用于 Java 的 MSAL 日志记录

适用于 Java 的 MSAL 允许使用已在应用中使用的日志记录库,只要该库与 SLF4J 兼容即可。 适用于 Java 的 MSAL 使用适用于 Java 的简单日志记录结构 (SLF4J) 作为各种日志记录框架(例如 java.util.loggingLogbackLog4j)的简单结构或抽象层。 SLF4J 允许用户在部署时插入所需的日志记录框架。

例如,若要使用 Logback 作为应用程序中的日志记录框架,请将 Logback 依赖项添加到应用程序的 Maven pom 文件中:

<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>1.2.3</version>
</dependency>

然后添加 Logback 配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true">

</configuration>

在部署时,SLF4J 会自动绑定到 Logback。 MSAL 日志将写入控制台。

有关如何绑定到其他日志记录框架的说明,请参阅 SLF4J 手册

个人和组织信息

默认情况下,MSAL 日志记录不会捕获或者记录任何个人或组织数据。 在以下示例中,默认已禁用个人或组织数据的日志记录:

    PublicClientApplication app2 = PublicClientApplication.builder(PUBLIC_CLIENT_ID)
            .authority(AUTHORITY)
            .build();

可以通过在客户端应用程序生成器中设置 logPii() 来启用个人和组织数据的日志记录。 如果启用个人或组织数据的日志记录,则应用必须负责安全处理高度敏感的数据,并遵守任何法规要求。

在以下示例中,默认已启用个人或组织数据的日志记录:

PublicClientApplication app2 = PublicClientApplication.builder(PUBLIC_CLIENT_ID)
        .authority(AUTHORITY)
        .logPii(true)
        .build();

后续步骤

有关更多代码示例,请参阅 Microsoft 标识平台代码示例