다음을 통해 공유


Azure CLI를 사용하여 대화형으로 Azure에 로그인

Azure에 대한 대화형 로그인은 보다 직관적이고 유연한 사용자 환경을 제공합니다. Azure CLI를 사용하면 az login 명령을 통해 Azure에 직접 인증할 수 있습니다. 이 명령은 임시 관리 작업 및 수동 로그인이 필요한 환경(예: MFA(다단계 인증))에 유용합니다. 이 방법을 사용하면 서비스 주체나 기타 비대화형 인증 방법을 미리 구성할 필요 없이 스크립트 테스트, 학습 및 즉석 관리를 위한 액세스가 간소화됩니다.

Important

2025년부터 Microsoft는 Azure CLI 및 기타 명령줄 도구에 대해 필수 MFA를 적용합니다. 이 요구 사항에 대한 자세한 배경 정보는 블로그 게시물참조하세요.

MFA는 Microsoft Entra ID 사용자 ID에만 영향을 미칩니다. 서비스 주체관리 ID같은 워크로드 ID에는 영향을 주지 않습니다.

az login Entra ID 및 암호를 사용하여 스크립트나 자동화된 프로세스를 인증하는 경우, 지금부터 워크로드 ID로의 전환을 계획해야 합니다. 이 변경에 도움이 되는 몇 가지 유용한 링크는 다음과 같습니다.

필수 조건

대화형 로그인

대화형으로 로그인하려면 az login 명령을 사용합니다. Azure CLI 버전 2.61.0부터 Azure CLI는 Windows에서 WAM(웹 계정 관리자)을 사용하고 기본적으로 Linux 및 macOS에서 브라우저 기반 로그인을 사용합니다.

az login

구독 선택기

Azure CLI 버전 2.61.0부터 여러 구독에 액세스할 수 있는 경우 다음 예제와 같이 로그인 시 Azure 구독을 선택하라는 메시지가 표시됩니다.

Retrieving subscriptions for the selection...

[Tenant and subscription selection]

No    Subscription name                     Subscription ID                           Tenant name
----  ------------------------------------  ----------------------------------------  --------------
[1]   Facility Services Subscription        00000000-0000-0000-0000-000000000000      Contoso
[2]   Finance Department Subscription       00000000-0000-0000-0000-000000000000      Contoso
[3]   Human Resources Subscription          00000000-0000-0000-0000-000000000000      Contoso
[4] * Information Technology Subscription   00000000-0000-0000-0000-000000000000      Contoso

The default is marked with an *; the default tenant is 'Contoso' and subscription is
'Information Technology Subscription' (00000000-0000-0000-0000-000000000000).

Select a subscription and tenant (Type a number or Enter for no changes): 2

Tenant: Contoso
Subscription: Finance Department Subscription (00000000-0000-0000-0000-000000000000)

[Announcements]
With the new Azure CLI login experience, you can select the subscription you want to use more easily.
Learn more about it and its configuration at https://go.microsoft.com/fwlink/?linkid=2271236

If you encounter any problem, please open an issue at https://aka.ms/azclibug

다음에 로그인하면 이전에 선택한 테넌트 및 구독이 해당 번호 옆에 별표(*)가 있는 기본값으로 표시됩니다. 이 표시를 사용하면 Enter 눌러 기본 구독을 선택할 수 있습니다.

기본적으로 명령은 선택한 구독에 대해 실행됩니다. az account set 사용하여 언제든지 명령줄에서 구독을 변경할 수 있습니다. 자세한 내용은 Azure CLI를 사용하여 Azure 구독을 관리하는 방법을 참조하세요.

다음은 유의해야 할 구독 선택기에 대한 몇 가지 지침입니다.

  • 구독 선택기는 64비트 Windows, Linux 또는 macOS에서만 사용할 수 있습니다.
  • 구독 선택기는 명령을 사용하는 az login 경우에만 사용할 수 있습니다.
  • 서비스 주체 또는 관리 ID로 로그인할 때 구독을 선택하라는 메시지가 표시되지 않습니다.

구독 선택기 기능을 사용하지 않도록 설정하려면 core.login_experience_v2 구성 속성을 off로 설정하십시오.

az config set core.login_experience_v2=off
az login

Windows에서 WAM(웹 계정 관리자)으로 로그인

Azure CLI 버전 2.61.0시작하여 WAM(웹 계정 관리자)은 Windows의 기본 인증 방법입니다. WAM은 인증 브로커 역할을 하는 Windows 10 이상 구성 요소입니다. 인증 브로커는 사용자의 컴퓨터에서 실행되는 애플리케이션입니다. 연결된 계정에 대한 인증 핸드셰이크 및 토큰 유지 관리를 관리합니다.

WAM을 사용하면 다음과 같은 몇 가지 이점이 있습니다.

문제가 발생하여 이전 브라우저 기반 인증 방법으로 되돌리려면 core.enable_broker_on_windows 구성 속성을 false설정합니다.

az account clear
az config set core.enable_broker_on_windows=false
az login

WAM은 Windows 10 이상 및 Windows Server 2019 이상에서 사용할 수 있습니다.

브라우저로 로그인

다음 중 하나가 true인 경우 Azure CLI는 기본적으로 브라우저 기반 인증 방법으로 설정됩니다.

  • 운영 체제(OS)가 Mac 또는 Linux이거나 Windows OS가 Windows 10 또는 Windows Server 2019보다 이전 버전입니다.
  • core.enable_broker_on_windows 구성 속성이 .로 설정됩니다false.

브라우저로 로그인하려면 다음 단계를 수행합니다.

  1. az login 명령을 실행합니다.

    az login
    

    Azure CLI가 기본 브라우저를 열 수 있는 경우 권한 부여 코드 흐름을 시작하고 기본 브라우저를 열어 Azure 로그인 페이지를 로드합니다.

    그렇지 않으면 디바이스 코드 흐름을 시작하고 브라우저 페이지를 https://aka.ms/devicelogin열도록 지시합니다. 그런 다음 터미널에 표시되는 코드를 입력합니다.

    웹 브라우저를 사용할 수 없거나 웹 브라우저가 열리지 않으면 az login --use-device-code를 사용하여 디바이스 코드 흐름을 적용할 수 있습니다.

  2. 브라우저에서 계정 자격 증명으로 로그인합니다.

명령줄에서 자격 증명으로 로그인

명령줄에서 Azure 사용자 자격 증명을 제공합니다. Azure CLI 명령을 학습하려면 이 인증 방법만 사용합니다. 프로덕션 수준 애플리케이션의 경우 서비스 주체 또는 관리 ID를 사용합니다.

이 접근 방식은 Microsoft 계정 또는 2단계 인증을 사용하는 계정에서는 작동하지 않습니다. 대화형 인증이 필요한 메시지를 수신 합니다 .

az login --user <username> --password <password>

Important

대화형으로 az login 사용할 때 콘솔에 암호가 표시되지 않도록 하려면 bash아래의 read -s 명령을 사용합니다.

read -sp "Azure password: " AZ_PASS && echo && az login -u <username> -p $AZ_PASS

PowerShell에서 Get-Credential cmdlet을 사용합니다.

$AzCred = Get-Credential -UserName <username>
az login -u $AzCred.UserName -p $AzCred.GetNetworkCredential().Password

다른 테넌트로 로그인

--tenant 인수로 로그인할 테넌트를 선택할 수 있습니다. 이 인수의 값은 테넌트에 대한 .onmicrosoft.com 도메인 또는 Azure 개체 ID일 수 있습니다. 대화형 및 명령줄 로그인 메서드는 둘 다 함께 작동합니다 --tenant.

선택한 환경에서 Azure CLI 버전 2.61.0부터 구성 속성을 core.login_experience_v2.로 설정하여 먼저 구독 선택기를 사용하지 않도록 설정 off 해야 합니다.

# disable the subscription selector (v. 2.61.0 and up)
az config set core.login_experience_v2=off

# login with a tenant ID
az login --tenant 00000000-0000-0000-0000-000000000000

구독 선택기를 다시 사용하도록 지정하려면 을 실행합니다 az config set core.login_experience_v2=on. 구독 선택기에 대한 자세한 내용은 대화형 로그인참조하세요.

로그인한 후 활성 테넌트 변경하려는 경우 활성 테넌트변경하는 방법을 참조하세요.

--scope를 사용하여 로그인

az login --scope https://management.core.windows.net//.default

로그아웃

Azure에 대한 액세스를 제거하려면 az logout 명령을 사용합니다.

az logout

구독 캐시 지우기

구독 목록을 업데이트하려면 az account clear 명령을 사용합니다. 업데이트된 목록을 보려면 다시 로그인해야 합니다.

az account clear

az login

구독 캐시를 지우는 것은 기술적으로 Azure에서 로그아웃하는 것과 동일한 프로세스가 아닙니다. 그러나 구독 캐시를 지우면 다시 로그인할 때까지 az account set포함하여 Azure CLI 명령을 실행할 수 없습니다.

새로 고침 토큰

사용자 계정으로 로그인하면 Azure CLI에서 인증 새로 고침 토큰을 생성하고 저장합니다. 액세스 토큰은 짧은 기간 동안만 유효하므로 액세스 토큰이 발급될 때 동시에 새로 고침 토큰이 발급됩니다. 클라이언트 애플리케이션은 필요한 경우 새 액세스 토큰을 이 새로 고침 토큰으로 교환할 수 있습니다. 토큰 수명 및 만료에 대한 자세한 내용은 Microsoft ID 플랫폼 새로 고침 토큰을 참조하세요.

az account get-access-token 명령을 사용하여 액세스 토큰을 검색합니다.

# 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>"

다음은 액세스 토큰 만료 날짜에 대한 몇 가지 추가 정보입니다.

  • 만료 날짜는 MSAL 기반 Azure CLI에서 지원하는 형식으로 업데이트됩니다.
  • Azure CLI 2.54.0 az account get-access-token 부터 토큰 만료 시간에 대한 속성과 expires_on 함께 속성을 반환 expiresOn 합니다.
  • 이 속성은 expires_on POSIX(이식 가능한 운영 체제 인터페이스) 타임스탬프를 나타내고 expiresOn 속성은 로컬 날짜/시간을 나타냅니다.
  • 일광 절약 시간이 끝날 때 속성은 expiresOn "접기"를 표시하지 않습니다. 이로 인해 일광 절약 시간이 채택된 국가 또는 지역에서 문제가 발생할 수 있습니다. "fold"에 대한 자세한 내용은 PEP 495 – 현지 시간 명확성을 참조 하세요.
  • UTC(유니버설 타임 코드)를 사용하므로 다운스트림 애플리케이션에서 이 속성을 사용하는 expires_on 것이 좋습니다.

예제 출력:

{
  "accessToken": "...",
  "expiresOn": "2023-10-31 21:59:10.000000",
  "expires_on": 1698760750,
  "subscription": "...",
  "tenant": "...",
  "tokenType": "Bearer"
}

문제 해결

기본 브라우저가 Microsoft Edge인 경우 az login사용하여 Azure에 대화형으로 로그인하려고 할 때 다음과 같은 오류가 발생할 수 있습니다. "이 사이트에 대한 연결은 안전하지 않습니다." 이 문제를 해결하려면 Microsoft Edge의 edge://net-internals/#hsts 방문하세요. "localhost 삭제" 아래에 추가하고 삭제를 선택합니다.

참고 항목