Microsoft 身份验证库(MSAL)应用生成有助于诊断问题的日志消息。 应用可以使用几行代码配置日志记录,并自定义控制详细信息级别以及是否记录个人和组织数据。 建议创建 MSAL 日志记录实现,并为用户提供在遇到身份验证问题时提交日志的方法。
日志记录级别
MSAL 提供了多个级别的日志记录详细信息:
-
LogAlways:此日志级别上没有执行级别筛选。 将记录所有级别的日志消息。 -
Critical:描述无法恢复的应用程序或系统崩溃的日志,或需要立即注意的灾难性故障。 -
Error:表示出现了问题,并生成了一个错误。 用于调试和识别问题。 -
Warning:不一定是错误或失败,而是用于诊断和查明问题。 -
Informational:MSAL 将记录用于信息性目的的事件,不一定用于调试。 -
Verbose(默认值):MSAL 记录库行为的完整详细信息。
注释
并非所有日志级别都可用于所有 MSAL SDK。
个人和组织数据
默认情况下,MSAL 记录器不会捕获任何高度敏感的个人或组织数据。 如果决定这样做,该库提供了启用记录个人和组织数据的选项。
以下部分提供有关应用程序的 MSAL 错误日志记录的更多详细信息。
MSAL 用于Java日志记录
MSAL for Java 允许你使用应用中已使用的日志库,只要它与 Java 简单日志门面 (SLF4J) 兼容。 MSAL for Java 将 SLF4J 用作各种日志框架的统一简单抽象层,例如 java.util.logging、Logback 和 Log4j。 SLF4J 允许用户在部署时插入所需的日志记录框架,并在部署时自动绑定到 Logback。 MSAL 日志将写入控制台。 本文介绍如何在 Spring Boot Web 应用程序中使用 logback 框架启用 MSAL4J 日志记录。
若要实现日志记录,请在
pom.xml中包含logback包。<dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.2.3</version> </dependency>转到
resources文件夹,添加一个名为logback.xml的文件,然后插入以下代码。 这会将日志追加到控制台。 可以将追加器class更改为将日志写入文件、数据库或所选的任何追加器。<?xml version="1.0" encoding="UTF-8"?> <configuration> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> </encoder> </appender> <root level="debug"> <appender-ref ref="STDOUT" /> </root> </configuration>在 main 方法之前,将
logging.config属性设置为logback.xml文件的位置。 导航到MsalWebSampleApplication.java公共类并将以下代码添加到MsalWebSampleApplication公共类。@SpringBootApplication public class MsalWebSampleApplication { static { System.setProperty("logging.config", "C:\Users\<your path>\src\main\resources\logback.xml"); } public static void main(String[] arrgs) { // Console.log("main"); // System.console().printf("Hello"); // System.out.printf("Hello %s!%n", "World"); System.out.printf("%s%n", "Hello World"); SpringApplication.run(MsalWebSampleApplication.class, args); } }
在租户中,需要为 Web 应用和 Web API 分别注册应用。 对于应用注册和公开 Web API 范围,请按照应用场景中的步骤操作 :对用户进行身份验证和调用 Web API 的 Web 应用。
有关如何绑定到其他日志记录框架的说明,请参阅 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 标识平台代码示例。