Pengelogan di MSAL untuk Python

Aplikasi Pustaka Autentikasi Microsoft (MSAL) menghasilkan pesan log yang dapat membantu mendiagnosis masalah. Aplikasi dapat mengonfigurasi pengelogan dengan beberapa baris kode, dan memiliki kontrol kustom atas tingkat detail dan apakah data pribadi dan organisasi dicatat atau tidak. Sebaiknya Anda membuat implementasi pengelogan MSAL dan menyediakan cara bagi pengguna untuk mengirimkan log saat mereka memiliki masalah autentikasi.

Pengelogan di Python MSAL dirancang untuk menggunakan mekanisme pengelogan Python standar, sehingga semua pengetahuan Anda sebelumnya tentang pengelogan Python berlaku untuk Python MSAL.

  • Secara default, pengelogan dalam skrip Python dinonaktifkan. Jika Anda ingin mengaktifkan pengelogan debug untuk SEMUA modul di seluruh skrip Python, Anda menggunakan logging.basicConfig(level=logging.DEBUG).
  • Sebagian besar log Python MSAL sudah berada di tingkat debug, yang akan dinonaktifkan secara default. Tetapi jika Anda ingin mengaktifkan pengelogan debug untuk men-debug modul LAIN dalam skrip Python Anda, oleh karena itu ingin membungkam MSAL, Anda cukup menonaktifkan pencatat yang digunakan oleh MSAL Python: logging.getLogger("msal").setLevel(logging.WARN).
  • Python MSAL tidak mencatat Informasi Pengidentifikasi Pribadi (PII). Jadi, di MSAL Python bahkan tidak ada sakelar untuk mengaktifkan pencatatan PII. Pengembang aplikasi masih dapat menggunakan pengelogan Python standar untuk mencatat konten apa pun. Dengan demikian, aplikasi bertanggung jawab untuk menangani data yang sangat sensitif dengan aman dan mengikuti persyaratan peraturan.

Tingkat Pengelogan

MSAL menyediakan beberapa tingkat detail pengelogan:

  • LogAlways: Tidak ada pemfilteran tingkat yang dilakukan pada tingkat log ini. Pesan log dari semua tingkatan akan dicatat.
  • Critical: Log yang menjelaskan aplikasi atau crash sistem yang tidak dapat dipulihkan, atau kegagalan bencana yang membutuhkan perhatian segera.
  • Error: Menunjukkan bahwa telah terjadi kesalahan dan sebuah error dihasilkan. Digunakan untuk debugging dan mengidentifikasi masalah.
  • Warning: Belum tentu ada kesalahan atau kegagalan, tetapi ditujukan untuk diagnostik dan menentukan masalah.
  • Informational: MSAL akan mencatat kejadian untuk tujuan informasi yang tidak selalu dimaksudkan untuk penelusuran kesalahan.
  • Verbose (Default): MSAL mencatat detail lengkap perilaku pustaka.

Note

Tidak semua level log tersedia untuk semua pustaka MSAL.

Data pribadi dan organisasi

Secara default, pencatat MSAL tidak mengambil data pribadi atau organisasi yang sangat sensitif. Pustaka menyediakan opsi untuk mengaktifkan pengelogan data pribadi dan organisasi jika Anda memutuskan untuk melakukannya.

Bagian berikut memberikan detail selengkapnya tentang pengelogan kesalahan MSAL untuk aplikasi Anda.

MSAL untuk pengelogan Python

Pengelogan di MSAL untuk Python memanfaatkan modul pengelogan di pustaka standar Python. Anda dapat mengonfigurasi pengelogan MSAL sebagai berikut (dan melihatnya beraksi di username_password_sample):

Mengaktifkan pengelogan debug untuk semua modul

Secara default, pengelogan dalam skrip Python dinonaktifkan. Jika Anda ingin mengaktifkan pencatatan log terperinci untuk semua modul Python dalam skrip Anda, gunakan logging.basicConfig pada tingkat logging.DEBUG:

import logging

logging.basicConfig(level=logging.DEBUG)

Ini akan mencetak semua pesan log yang diberikan ke modul pengelogan ke output standar.

Mengonfigurasi tingkat pengelogan MSAL

Anda dapat mengonfigurasi tingkat pencatatan log penyedia log MSAL untuk Python dengan menggunakan metode logging.getLogger() dengan nama logger "msal":

import logging

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

Mengonfigurasi pengelogan MSAL dengan Azure App Insights

Log Python diteruskan ke handler log, yang secara bawaan adalah StreamHandler. Untuk mengirim log MSAL ke Application Insights dengan Kunci Instrumentasi, gunakan AzureLogHandler yang disediakan oleh pustaka opencensus-ext-azure.

Untuk menginstal, opencensus-ext-azure tambahkan paket opencensus-ext-azure dari PyPI ke dependensi Anda atau gunakan pip install:

pip install opencensus-ext-azure

Kemudian ubah handler default dari penyedia log "msal" menjadi instance AzureLogHandler dengan kunci instrumentasi yang diatur dalam variabel lingkungan 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)))

Data pribadi dan organisasi dalam Python

MSAL untuk Python tidak mencatat data pribadi atau data organisasi. Tidak ada properti untuk mengaktifkan atau menonaktifkan pengelogan data pribadi atau organisasi.

Anda dapat menggunakan pengelogan Python standar untuk mencatat apa pun yang Anda inginkan, tetapi Anda bertanggung jawab untuk menangani data sensitif dengan aman dan mengikuti persyaratan peraturan.

Untuk informasi selengkapnya tentang pengelogan di Python, silakan merujuk ke pengelogan Python: caranya.