MSAL(Microsoft 인증 라이브러리) 앱은 문제를 진단하는 데 도움이 되는 로그 메시지를 생성합니다. 앱은 몇 줄의 코드로 로깅을 구성하고 세부 수준 및 개인 및 조직 데이터 로깅 여부를 사용자 지정 제어할 수 있습니다. MSAL 로깅 구현을 만들고 사용자가 인증 문제가 있을 때 로그를 제출할 수 있는 방법을 제공하는 것이 좋습니다.
MSAL Python 로깅은 표준 Python 로깅 메커니즘을 사용하도록 설계되었기 때문에 Python 로깅에 대한 모든 이전 지식이 MSAL Python 적용됩니다.
- 기본적으로 모든 Python 스크립트의 로깅은 해제됩니다. Python 스크립트 전체의 모든 모듈에 대해 디버그 로깅을 활성화하려면
logging.basicConfig(level=logging.DEBUG)를 사용합니다. - 대부분의 MSAL Python 로그는 디버그 수준에 이미 있으며 기본적으로 해제됩니다. 하지만 Python 스크립트의 다른 모듈을 디버깅하기 위해 디버그 로깅을 사용하도록 설정했고, 이 경우 MSAL의 로그는 출력되지 않게 하려면 MSAL Python에서 사용하는 로거를 끄기만 하면 됩니다:
logging.getLogger("msal").setLevel(logging.WARN). - MSAL Python PII(개인 식별 정보)를 기록하지 않습니다. 따라서 MSAL Python에는 PII 로깅을 켜는 토글조차 없습니다. 앱 개발자는 표준 Python 로깅을 사용하여 콘텐츠를 기록할 수 있습니다. 이렇게 하면 앱은 매우 중요한 데이터를 안전하게 처리하고 규정 요구 사항을 준수해야 합니다.
로깅 수준
MSAL은 다음과 같은 여러 수준의 로깅 세부 정보를 제공합니다.
-
LogAlways: 이 로그 수준에서 수준 필터링이 수행되지 않습니다. 모든 수준의 로그 메시지가 기록됩니다. -
Critical: 복구할 수 없는 애플리케이션 또는 시스템 충돌 또는 즉각적인 주의가 필요한 치명적인 오류를 설명하는 로그입니다. -
Error: 문제가 발생하여 오류가 발생했음을 나타냅니다. 문제를 디버깅하고 식별하는 데 사용됩니다. -
Warning: 반드시 오류나 장애가 발생했다는 뜻은 아니지만, 진단 및 문제의 원인을 정확히 찾아내기 위한 것입니다. -
Informational: MSAL은 반드시 디버깅을 위한 것이 아니라 정보 제공을 위한 이벤트를 기록합니다. -
Verbose(기본값): MSAL은 라이브러리 동작의 전체 세부 정보를 기록합니다.
메모
모든 MSAL 라이브러리에 대해 모든 로그 수준을 사용할 수 있는 것은 아닙니다.
개인 및 조직 데이터
기본적으로 MSAL 로거는 매우 중요한 개인 또는 조직 데이터를 캡처하지 않습니다. 라이브러리는 사용자가 원할 경우 개인 및 조직 데이터의 로깅을 활성화할 수 있는 옵션을 제공합니다.
다음 섹션에서는 애플리케이션에 대한 MSAL 오류 로깅에 대한 자세한 내용을 제공합니다.
Python 로깅용 MSAL
Python MSAL의 로깅은 Python 표준 라이브러리의 로깅 모듈을 활용합니다. 다음과 같이 MSAL 로깅을 구성할 수 있습니다(username_password_sample 작동 중인 것으로 확인).
모든 모듈에 디버그 로깅 사용
기본적으로 모든 Python 스크립트의 로깅은 해제됩니다. 스크립트의 모든 파이썬 모듈에 대해 상세 로깅을 사용하도록 설정하려면, 수준을 logging.DEBUG로 지정한 logging.basicConfig을(를) 사용합니다:
import logging
logging.basicConfig(level=logging.DEBUG)
그러면 로깅 모듈에 제공된 모든 로그 메시지가 표준 출력에 출력됩니다.
MSAL 로깅 수준 구성
로거 이름을 logging.getLogger()가진 메서드를 사용하여 Python 로그 공급자에 대한 MSAL의 "msal" 로깅 수준을 구성할 수 있습니다.
import logging
logging.getLogger("msal").setLevel(logging.WARN)
Azure 앱 Insights를 사용하여 MSAL 로깅 구성
Python 로그는 로그 핸들러에 전달되며, 이 핸들러는 기본적으로 StreamHandler입니다. 계측 키를 사용하여 MSAL 로그를 Application Insights로 보내려면 opencensus-ext-azure 라이브러리에서 제공하는 AzureLogHandler를 사용합니다.
설치하려면 opencensus-ext-azure 종속성에 PyPI의 opencensus-ext-azure 패키지를 추가하거나 pip install로 설치하세요.
pip install opencensus-ext-azure
그런 다음 "msal" 로그 공급자의 기본 처리기를 APP_INSIGHTS_KEY 환경 변수에 설정된 계측 키가 있는 AzureLogHandler 인스턴스로 변경합니다.
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 로깅 방법(방법)을 참조하세요.