MSAL for Python 中的日志记录

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

日志记录级别

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

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

个人和组织数据

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

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

适用于 Python 的 MSAL 日志记录

MSAL for Python 中的日志记录利用 Python 标准库中的日志记录模块。 可按如下所示配置 MSAL 日志记录(并在 username_password_sample 中查看其运作方式):

为所有模块启用调试日志记录

默认已禁用任何 Python 脚本中的日志记录。 如果要为脚本中的所有 Python 模块启用详细日志记录,请使用 logging.basicConfig 和级别 logging.DEBUG

import logging

logging.basicConfig(level=logging.DEBUG)

这会将提供给日志记录模块的所有日志消息都打印到标准输出。

配置 MSAL 日志记录级别

可以通过将 logging.getLogger() 方法与记录器名称 "msal" 一起使用来配置 MSAL for Python 日志提供程序的日志记录级别:

import logging

logging.getLogger("msal").setLevel(logging.WARN)

使用 Azure App Insights 配置 MSAL 日志记录

Python 日志会提供给日志处理程序(默认情况下为 StreamHandler)。 若要将 MSAL 日志发送到带有检测密钥的 Application Insights,请使用 AzureLogHandler 库提供的 opencensus-ext-azure

若要安装 opencensus-ext-azure,请将 opencensus-ext-azure 包从 PyPI 添加到依赖项或进行 pip 安装:

pip install opencensus-ext-azure

然后将 "msal" 日志提供程序的默认处理程序更改为 AzureLogHandler 的实例,其检测密钥在 APP_INSIGHTS_KEY 环境变量中设置:

import logging
import os

from opencensus.ext.azure.log_exporter import AzureLogHandler

APP_INSIGHTS_KEY = os.getenv('APP_INSIGHTS_KEY')

logging.getLogger("msal").addHandler(AzureLogHandler(connection_string='InstrumentationKey={0}'.format(APP_INSIGHTS_KEY))

Python 中的个人和组织数据

适用于 Python 的 MSAL 不会记录个人数据或组织数据。 没有任何属性可用于启用或者禁用个人或组织数据的日志记录。

你可以使用标准的 Python 日志记录来记录所需的任何内容,但需要责任安全处理敏感数据并遵守法规要求。

有关 Python 中的日志记录的详细信息,请参阅 Python 的日志记录:操作指南

后续步骤

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