이 문서에서는 앱이 Azure 리소스에 인증하는 데 사용할 수 있는 추가 메서드를 나열합니다. 이 문서의 메서드는 일반적으로 사용되지 않습니다. 가능하면 Azure SDK 개요를 사용하여 Azure에 Python 앱을 인증하는 데 설명된 방법 중 하나를 사용하는 것이 좋습니다.
대화형 브라우저 인증
이 방법은 기본 시스템에서 사용자 자격 증명을 수집하여 InteractiveBrowserCredential을 통해 애플리케이션을 대화형으로 인증합니다.
대화형 브라우저 인증을 사용하면 대화형 로그인 자격 증명에서 허용하는 모든 작업에 애플리케이션을 사용할 수 있습니다. 따라서 구독의 소유자 또는 관리자인 경우 코드는 특정 권한을 할당하지 않고도 해당 구독의 대부분의 리소스에 대한 고유한 액세스 권한을 갖습니다. 이러한 이유로 대화형 브라우저 인증을 사용하는 것은 실험 외에는 권장되지 않습니다.
대화형 브라우저 인증에 대한 애플리케이션 사용
다음 단계를 수행하여 애플리케이션이 대화형 브라우저 흐름을 통해 인증할 수 있도록 합니다. 이러한 단계는 나중에 설명한 디바이스 코드 인증 에도 작동합니다. 코드에서 InteractiveBrowserCredential을(를) 사용하는 경우에만 이 프로세스가 필요합니다.
Azure Portal에서 Microsoft Entra ID로 이동하고 왼쪽 메뉴에서 앱 등록을 선택합니다.
앱에 대한 등록 을 선택한 다음 인증을 선택합니다.
고급 설정에서 공용 클라이언트 흐름 허용에 대해 예를 선택합니다.
변경 내용을 적용하려면 저장을 선택합니다.
특정 리소스에 대한 애플리케이션에 권한을 부여하려면 해당 리소스로 이동하고, API 권한을 선택하고, 액세스하려는 Microsoft Graph 및 기타 리소스를 사용하도록 설정합니다. Microsoft Graph는 기본적으로 사용하도록 설정되어 있습니다.
중요합니다
또한 처음으로 로그인할 때 애플리케이션에 동의를 부여하려면 테넌트 관리자여야 합니다.
Active Directory에서 디바이스 코드 흐름 옵션을 구성할 수 없는 경우 애플리케이션이 다중 테넌트여야 할 수 있습니다. 이렇게 변경하려면 인증 패널로 이동하고, 지원되는 계정 유형 아래의 모든 조직 디렉터리에서 계정을 선택한 다음, 공용 클라이언트 흐름 허용에 대해 예를 선택합니다.
InteractiveBrowserCredential을 사용하는 예제
다음 예제에서는 InteractiveBrowserCredential을 사용하여 SubscriptionClient를 인증하는 방법을 보여 줍니다.
# Show Azure subscription information
import os
from azure.identity import InteractiveBrowserCredential
from azure.mgmt.resource import SubscriptionClient
credential = InteractiveBrowserCredential()
subscription_client = SubscriptionClient(credential)
subscription = next(subscription_client.subscriptions.list())
print(subscription.subscription_id)
리디렉션 URI 설정과 같은 보다 정확한 제어를 위해 InteractiveBrowserCredential와 같은 redirect_uri에 특정 인수를 제공할 수 있습니다.
디바이스 코드 인증
이 방법은 제한된 UI(일반적으로 키보드가 없는 디바이스)를 사용하여 디바이스에서 사용자를 대화형으로 인증합니다.
- 애플리케이션이 인증을 시도하면 자격 증명은 URL 및 인증 코드를 사용하여 사용자에게 메시지를 표시합니다.
- 사용자는 별도의 브라우저 사용 디바이스(컴퓨터, 스마트폰 등)에서 URL을 방문하여 코드를 입력합니다.
- 사용자는 브라우저에서 일반적인 인증 프로세스를 따릅니다.
- 인증에 성공하면 디바이스에서 애플리케이션이 인증됩니다.
자세한 내용은 Microsoft ID 플랫폼 및 OAuth 2.0 디바이스 권한 부여 흐름을 참조하세요.
개발 환경에서 디바이스 코드 인증을 사용하면 애플리케이션이 대화형 로그인 자격 증명에서 허용하는 모든 작업을 수행할 수 있습니다. 따라서 구독의 소유자 또는 관리자인 경우 코드는 특정 권한을 할당하지 않고도 해당 구독의 대부분의 리소스에 대한 고유한 액세스 권한을 갖습니다. 그러나 이 방법은 기본값이 아닌 특정 클라이언트 ID를 사용하여 특정 권한을 할당할 수 있습니다.