共用方式為


使用 Azure CLI 以互動方式登入

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

必要條件

互動式登入

若要以互動方式登入,請使用 az login 命令。 從 Azure CLI 2.61.0開始,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 problem, please 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) 是 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 命令。 生產層級應用程式應該使用服務主體或受控識別。

此方法不適用於已啟用雙因素驗證的 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_v2off來停用訂用帳戶選取器。

# 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 身分識別平台 中的令牌。

使用 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 ,然後選取 [刪除]。

另請參閱