Protokolování v MSAL pro Python

Aplikace Identity a ověřování Microsoftu (MSAL) generují zprávy protokolu, které můžou pomoct s diagnostikou problémů. Aplikace může nakonfigurovat protokolování s několika řádky kódu a mít vlastní kontrolu nad úrovní podrobností a to, jestli se protokolují osobní a organizační data. Doporučujeme vytvořit implementaci protokolování MSAL a poskytnout uživatelům způsob odesílání protokolů, když mají problémy s ověřováním.

Protokolování v Python MSAL je navržené tak, aby používalo standardní mechanismy protokolování Python, takže všechny předchozí znalosti protokolování Python platí pro Python MSAL.

  • Ve výchozím nastavení je protokolování v libovolném Python skriptu vypnuté. Pokud chcete povolit protokolování ladění pro všechny moduly v celém skriptu Python, použijte logging.basicConfig(level=logging.DEBUG).
  • Většina protokolů Python MSAL je již na úrovni ladění, která by byla ve výchozím nastavení vypnutá. Pokud ale chcete zapnout protokolování ladicích informací kvůli ladění ostatních modulů ve skriptu v Pythonu, a chcete proto potlačit protokolování MSAL, jednoduše vypněte logger používaný knihovnou MSAL Python: logging.getLogger("msal").setLevel(logging.WARN).
  • MSAL Python nezapisuje identifikovatelné osobní údaje (PII). Takže v MSAL pro Python není ani přepínač pro zapnutí protokolování PII. Vývojáři aplikací můžou dál používat standardní Python protokolování k protokolování libovolného obsahu. Aplikace tak přebírá odpovědnost za bezpečné zpracování vysoce citlivých dat a dodržování zákonných požadavků.

Úrovně protokolování

MSAL poskytuje několik úrovní podrobností protokolování:

  • LogAlways: Na této úrovni protokolu není provedeno žádné filtrování úrovní. Protokolové zprávy všech úrovní budou zaznamenávány.
  • Critical: Protokoly, které popisují neobnovitelné zhroucení aplikace nebo systému nebo katastrofické selhání vyžadující okamžitou pozornost.
  • Error: Označuje, že se něco nepovedlo a vygenerovala se chyba. Používá se k ladění a identifikaci problémů.
  • Warning: Nemusí se nutně jednat o chybu nebo selhání, ale jsou určené pro diagnostiku a určení problémů.
  • Informational: MSAL bude protokolovat události určené pro informační účely, které nemusí být nutně určeny pro ladění.
  • Verbose (Výchozí): MSAL zaznamenává úplné podrobnosti o chování knihovny.

Note

Ne všechny úrovně protokolů jsou k dispozici pro všechny knihovny MSAL.

Osobní a organizační data

Ve výchozím nastavení protokolovací nástroj MSAL nezachytává žádná vysoce citlivá osobní ani organizační data. Knihovna nabízí možnost povolit protokolování osobních a organizačních dat, pokud se tak rozhodnete.

Následující části obsahují další podrobnosti o protokolování chyb MSAL pro vaši aplikaci.

MSAL pro protokolování Python

Protokolování v MSAL pro Python využívá modul protokolování v Python standardní knihovně. Protokolování MSAL můžete nakonfigurovat následujícím způsobem (a zobrazit ho v akci v username_password_sample):

Povolte protokolování ladění pro všechny moduly

Ve výchozím nastavení je protokolování v libovolném Python skriptu vypnuté. Pokud chcete povolit podrobné protokolování pro všechny moduly Python ve skriptu, použijte logging.basicConfig s úrovní logging.DEBUG:

import logging

logging.basicConfig(level=logging.DEBUG)

Tím se vytisknou všechny zprávy protokolu zadané modulu protokolování do standardního výstupu.

Konfigurace úrovně protokolování MSAL

Úroveň protokolování poskytovatele protokolování MSAL pro Python můžete nakonfigurovat pomocí metody logging.getLogger() se jménem protokolovacího nástroje "msal":

import logging

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

Konfigurace protokolování MSAL pomocí Aplikace Azure Insights

Záznamy Pythonu jsou předávány obslužné rutině protokolování, kterou je ve výchozím nastavení StreamHandler. K odesílání protokolů MSAL do Application Insights pomocí klíče instrumentace použijte AzureLogHandler, kterou poskytuje knihovna opencensus-ext-azure.

Chcete-li nainstalovat, opencensus-ext-azure přidejte balíček opencensus-ext-azure z PyPI mezi závislosti nebo použijte pip install:

pip install opencensus-ext-azure

Pak změňte výchozí obslužný program poskytovatele protokolování "msal" na instanci AzureLogHandler s instrumentačním klíčem nastaveným v proměnné prostředí 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)))

Osobní a organizační data v Python

MSAL pro Python nezapisuje osobní údaje ani data organizace. Není k dispozici žádná vlastnost, která by zapnula nebo vypnula protokolování osobních dat nebo dat organizace.

Standardní protokolování Python můžete použít k protokolování podle potřeby, ale zodpovídáte za bezpečné zpracování citlivých dat a dodržování zákonných požadavků.

Další informace o protokolování v Python najdete v tématu protokolování Python: postupy.