Python için MSAL’de Günlükleme

Microsoft Authentication Library (MSAL) uygulamaları sorunları tanılamaya yardımcı olabilecek günlük iletileri oluşturur. Bir uygulama birkaç kod satırıyla günlüğe kaydetmeyi yapılandırabilir ve ayrıntı düzeyi ile kişisel ve kuruluş verilerinin günlüğe kaydedilip kaydedilmediği üzerinde özel denetime sahip olabilir. Bir MSAL günlük uygulaması oluşturmanızı ve kullanıcıların kimlik doğrulaması sorunları olduğunda günlük göndermeleri için bir yol sağlamanızı öneririz.

MSAL Python'da günlüğe kaydetme, standart Python günlüğe kaydetme mekanizmalarını kullanacak şekilde tasarlanmıştır, böylece Python günlük kaydıyla ilgili önceki tüm bilgileriniz MSAL Python için geçerlidir.

  • Varsayılan olarak, herhangi bir Python betiğinde günlük kaydı devre dışıdır. Python betiğinizin tamamındaki TÜM modüller için hata ayıklama günlüğünü etkinleştirmek istiyorsanız logging.basicConfig(level=logging.DEBUG) kullanın.
  • MSAL Python günlüklerinin çoğu zaten hata ayıklama düzeyindedir ve bu varsayılan olarak kapatılır. Ancak Python betiğinizdeki diğer modüllerde hata ayıklama için hata ayıklama günlük kaydını etkinleştirmek, dolayısıyla MSAL’yi susturmak istiyorsanız, MSAL Python’ın kullandığı logger’ı kapatmanız yeterlidir: logging.getLogger("msal").setLevel(logging.WARN).
  • MSAL Python, Kişisel Olarak Tanımlanabilir Bilgileri (PII) günlüğe almaz. Yani MSAL Python'da PII günlüğünü etkinleştirme anahtarı bile yok. Uygulama geliştiricileri, içeriği günlüğe kaydetmek için standart Python günlüğünü kullanmaya devam edebilir. Bunu yaparak uygulama, son derece hassas verileri güvenli bir şekilde işleme ve mevzuat gereksinimlerini takip etme sorumluluğunu üstlenir.

Günlük düzeyleri

MSAL, çeşitli günlükleme ayrıntı düzeyleri sunar:

  • LogAlways: Bu günlük düzeyinde düzey filtrelemesi yapılmaz. Tüm düzeylerdeki günlük mesajları kaydedilecektir.
  • Critical: Kurtarılamayan bir uygulamayı veya sistem kilitlenmesini ya da acil dikkat gerektiren yıkıcı bir hatayı açıklayan günlükler.
  • Error: Bir sorun oluştuğunu ve bir hata oluşturulduğunu gösterir. Hata ayıklama ve sorunları tanımlama için kullanılır.
  • Warning: Her zaman bir hata ya da arıza olduğu anlamına gelmez, ancak bunlar tanılama ve sorunları tespit etmeye yöneliktir.
  • Informational: MSAL, hata ayıklamaya yönelik olması gerekmeyen bilgilendirme amaçlı olayları günlüğe kaydeder.
  • Verbose (Varsayılan): MSAL, kitaplık davranışının tüm ayrıntılarını günlüğe kaydeder.

Note

Tüm MSAL kitaplıkları için tüm günlük düzeyleri kullanılamaz.

Kişisel ve kurumsal veriler

Varsayılan olarak, MSAL günlükçü son derece hassas kişisel veya kuruluş verilerini yakalamaz. Kitaplık, siz karar verirseniz kişisel ve kurumsal verilerin günlüğe kaydedilmesini etkinleştirme seçeneği sunar.

Aşağıdaki bölümlerde uygulamanız için MSAL hata günlüğü hakkında daha fazla ayrıntı sağlanır.

Python için MSAL günlük kaydı

Python için MSAL'de günlük kaydı, Python standart kitaplığındaki logging modülünden yararlanır. MSAL günlüğünü aşağıdaki gibi yapılandırabilirsiniz (ve username_password_sample uygulamada görebilirsiniz):

Tüm modüller için hata ayıklama günlüğünü etkinleştirme

Varsayılan olarak, herhangi bir Python betiğinde günlükleme devre dışıdır. Betiğinizdeki tüm Python modülleri için ayrıntılı günlük kaydını etkinleştirmek istiyorsanız, logging.DEBUG düzeyiyle logging.basicConfig kullanın:

import logging

logging.basicConfig(level=logging.DEBUG)

Bu, günlük modülüne verilen tüm günlük iletilerini standart çıkışa yazdırır.

MSAL günlüğe kaydetme düzeyini yapılandırma

"msal" günlük kaydedici adıyla logging.getLogger() yöntemini kullanarak Python için MSAL günlük sağlayıcısının günlükleme düzeyini yapılandırabilirsiniz:

import logging

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

Azure Uygulaması Insights ile MSAL günlüğünü yapılandırma

Python günlükleri varsayılan olarak olan bir günlük işleyicisine StreamHandlerverilir. MSAL günlüklerini Instrumentation Key içeren bir Application Insights'a göndermek için, opencensus-ext-azure kitaplığı tarafından sağlanan AzureLogHandler öğesini kullanın.

Yüklemek için, opencensus-ext-azure bağımlılıklarınıza PyPI'den opencensus-ext-azure paketini ekleyin veya pip install kullanın:

pip install opencensus-ext-azure

Ardından, APP_INSIGHTS_KEY ortam değişkeninde ayarlanmış bir ölçüm anahtarına sahip AzureLogHandler örneğiyle "msal" günlük sağlayıcısının varsayılan işleyicisini değiştirin:

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'da kişisel ve kuruluş verileri

Python için MSAL, kişisel verileri veya kuruluş verilerini günlüğe kaydetmez. Kişisel veya kuruluş verilerinin günlüğe kaydedilmesini etkinleştirecek veya kapatacak bir özellik yoktur.

İstediğiniz her şeyi günlüğe kaydetmek için standart Python günlüğü kullanabilirsiniz, ancak hassas verileri güvenli bir şekilde işlemek ve mevzuat gereksinimlerini takip etmek sizin sorumluluğundadır.

Python'da günlük kaydı hakkında daha fazla bilgi için lütfen Python'ın Günlük Kaydı: Nasıl Yapılır belgesine bakın.