共用方式為


使用 Azure CLI 以互動方式登入 Azure

對 Azure 的互動式登入提供更直覺且更有彈性的用戶體驗。 透過 Azure CLI,您可以透過 az login 命令直接向 Azure 進行驗證。 此命令適用於即席管理工作,以及需要手動登入的環境,例如多重要素驗證(MFA)的情境。 此方法可簡化腳本測試、學習和即時管理的存取,而不需要預先設定服務主體或其他非互動式驗證方法。

這很重要

從 2025 年 9 月開始,Microsoft需要 Azure CLI 和其他命令行工具的多重要素驗證 (MFA)。 這項變更僅適用於Microsoft Entra ID 使用者身分識別 ,且不會影響工作負載身分識別,例如 服務主體受控識別

如果您使用 az login 使用者名稱和密碼來驗證腳本或自動化工作流程,現在是移轉至工作負載身分識別的時候。 如需詳細資訊,請參閱 自動化案例中的多重要素驗證對 Azure CLI 的影響

先決條件

互動式登入

若要以互動方式登入,請使用 az login 命令。 從 Azure CLI 2.61.0 版開始,Azure CLI 預設會在 Windows 上使用 Web 帳戶管理員 (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 problems, open an issue at https://aka.ms/azclibug

下次登入時,先前選取的租戶和訂閱會標示為預設值,並在其數字旁顯示星號(*)。 此標記可讓您按 Enter 鍵來選取預設訂用帳戶。

根據預設,命令會針對選取的訂用帳戶執行。 使用 az account set 隨時從命令行變更您的訂用帳戶。 如需詳細資訊,請參閱 如何使用 Azure CLI 管理 Azure 訂用帳戶。

以下是一些應注意的訂閱選擇器指導方針:

  • 訂用帳戶選取器僅適用於64位 Windows、Linux 或macOS。
  • 使用 az login 命令時,訂用帳戶選取器才可用。
  • 當您使用服務主體或受控識別登入時,系統不會提示您選取訂用帳戶。

如果您要停用訂用帳戶選取器功能,請將 core.login_experience_v2 組態屬性設定為 off

az config set core.login_experience_v2=off
az login

在 Windows 上使用 Web 帳戶管理員 (WAM) 登入

從 Azure CLI 版本 2.61.0開始,Web 帳戶管理員 (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 和更新版本上使用。

使用瀏覽器登入

當下列其中一個條件成立時,Azure CLI 預設為瀏覽器型驗證方法:

  • 作系統 (OS) 是 Linux、macOS 或 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 時,您應該只使用此驗證方法。 針對生產層級應用程式,請使用服務主體或受管理的身分識別。

此方法不適用於 Microsoft 帳戶或已啟用多重要素驗證的帳戶。 您收到需要互動式驗證的訊息。

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

這很重要

若要避免以互動方式在 az login 終端機中顯示密碼,請使用 read -s 命令在 Bash 中操作。

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 物件識別碼。 互動式和命令行登入方法都適用於 --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 帳戶註銷相同的過程。 不過,當您清除訂用帳戶快取時,您無法執行 Azure CLI 命令,包括 az account set,直到您再次登入為止。

重新整理令牌

當您使用使用者帳戶登入時,Azure CLI 會產生並儲存驗證重新整理令牌。 由於存取令牌的有效時間很短,因此會在發出存取令牌的同時發出更新令牌。 接著客戶端應用程式可以視需要使用此重新整理令牌兌換新的存取令牌。 如需令牌存留期和到期的詳細資訊,請參閱 在Microsoft身分識別平臺中重新整理令牌

使用 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 屬性不會顯示「折疊」狀態。 這可能會導致採用日光節約時間的國家/地區發生問題。 如需了解「折疊」的技術背景,請參閱PEP 495 – 本地時間消歧義
  • 我們建議下游應用程式使用 expires_on 屬性,因為它使用通用時間代碼 (UTC)。

範例輸出:

{
  "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] 底下新增 ,然後選取 [刪除]。

需要互動式驗證

使用使用者身分識別向 Azure 進行驗證時,您會收到此訊息,而且需要多重要素驗證。 解決方案是使用 工作負載身分識別 ,例如 服務主體受控識別 向 Azure 進行驗證。

針對租戶的驗證失敗

當單一 Entra 使用者身分識別屬於多個 Azure 租使用者時,就會發生此錯誤。 Azure CLI 會逐一巡覽您有權存取的租用戶,並嘗試進行驗證。 若要使用您選擇的租戶登入,請使用 --tenant 參數。 如需詳細資訊,請參閱 使用不同的租戶登入

後續步驟