MSAL 기반 Azure CLI
버전 2.30.0부터 Azure CLI는 MSAL(Microsoft 인증 라이브러리 ) 을 기본 인증 라이브러리로 사용합니다. MSAL은 Azure Active Directory v2.0 인증 흐름을 사용하여 더 많은 기능을 제공하고 토큰 캐시에 대한 보안을 강화합니다.
Warning
Azure CLI 2.30.0에는 호환성이 손상되는 변경이 있습니다. 설치하기 전에 문서를 주의 깊게 읽으세요.
accessTokens.json
Deprecation
이전 버전의 Azure CLI는 ADAL(Azure AD 인증 Library) 토큰 및 서비스 주체 항목을 저장했습니다~/.azure/accessToken.json
. 최신 버전의 Azure CLI는 MSAL을 사용하며 더 이상 생성 accessTokens.json
되지 않습니다. accessTokens.json
에 따르는 기존 워크플로는 더 이상 작동하지 않습니다.
MSAL 토큰 캐시 및 서비스 주체 항목은 Windows에서 암호화된 파일로 저장되고 Linux 및 macOS에서는 일반 텍스트 파일로 저장됩니다.
Important
Azure DevOps와 같이 파이프라인에서 Azure CLI를 사용하는 경우 모든 작업 및 단계에서 MSAL 기반 Azure CLI용 v2.30.0 이상의 Azure CLI 버전을 사용하고 있는지 확인합니다. Azure CLI 2.30.0은 이전 버전과 호환되지 않으며 2.30.0 이전 버전으로 작업할 때 오류가 발생합니다.
고려할 대안
안정성을 위해 고려할 수 있는 대안은 다음과 같습니다.
호출 az account get-access-token
터미널에서 수동으로 호출 az account get-access-token
하거나 하위 프로세스를 사용하여 다른 프로그래밍 언어에서 호출할 수 있습니다. 기본적으로 반환된 액세스 토큰은 ARM(Azure Resource Manager) 및 az account show
에 표시된 기본 구독/테넌트용입니다.
# get the active subscription
az account show --output table
# get access token for the active subscription
az account get-access-token
# get access token for a specific subscription
az account get-access-token --subscription "<subscription ID or name>"
액세스 토큰에 대한 자세한 내용은 Azure CLI로 로그인을 참조하세요.
AzureCliCredential
사용
AzureCliCredential
는 모든 기존 언어 SDK의 자격 증명 형식입니다. 하위 프로세스를 사용하여 az account get-access-token
을 호출하여 현재 로그인된 계정에 대한 액세스 토큰을 가져옵니다.
참고 항목
- MSAL
- Python
- Python의 AzureCliCredential 클래스
- .Net
- .NET의 AzureCliCredential 클래스
- Java
Azure CLI