다음을 통해 공유


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

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

필수 조건

대화형 로그인

대화형으로 로그인하려면 az login 명령을 사용합니다. Azure CLI 버전 2.61.0부터 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을 사용하면 다음과 같은 몇 가지 이점이 있습니다.

  • 보안 강화. 조건부 액세스: 토큰 보호(미리 보기)를 참조하세요.
  • Windows Hello, 조건부 액세스 정책 및 FIDO 키를 지원합니다.
  • 간소화된 Single Sign-On.
  • Windows와 함께 제공되는 버그 수정 및 개선 사항.

문제가 발생하여 이전 브라우저 기반 인증 방법으로 되돌리기 경우 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 할 테넌트를 선택할 수 있습니다. 이 인수의 값은 할 일기본 또는 테넌트에 대한 Azure 개체 ID일 수 있습니다.onmicrosoft.com. 대화형 및 명령줄 로그인 메서드는 둘 다 함께 작동합니다 --tenant.

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

# 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. 구독 선택기에 대한 자세한 내용은 [#interactive 로그인)을 참조하세요.

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

새로 고침 토큰

사용자 계정으로 로그인하면 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 부터 토큰 만료 시간에 대한 속성과 expiresOn 함께 속성을 반환 expires_on 합니다.
  • 이 속성은 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 loginAzure에 로그인하려고 할 때 다음 오류가 발생할 수 있습니다. "이 사이트에 대한 연결은 안전하지 않습니다.". 이 문제를 해결하려면 Microsoft Edge의 edge://net-internals/#hsts 방문하세요. "삭제기본 보안 정책" 아래에 추가하고 localhost 삭제를 선택합니다.

참고 항목