使用 Azure CLI 登入

Azure Command-Line 介面 (CLI) 有數種驗證類型,因此如何登入? 要開始使用的最簡單方法是透過 Azure Cloud Shell,這會自動將您登入。 您可以在本機使用 az login 命令,以互動方式透過瀏覽器登入。 在撰寫指令碼時,建議的方法是使用服務主體。 僅授與服務主體所需的適當權限,可讓您保持自動化的安全。

Azure CLI 不會儲存任何登入資訊。 驗證重新整理權杖會由 Azure 產生並儲存。 自 2018 年 8 月起,此權杖將在未使用達 90 天後撤銷,但此值可由 Microsoft 或租用戶管理員變更。 一旦撤銷權杖,您就會從 CLI 收到訊息,指出您需要再次登入。

在登入之後,會針對您的預設訂用帳戶來執行 CLI 命令。 如果您有多個訂用帳戶,可以變更預設訂用帳戶

注意

根據您的登入方法,您的租使用者可能會有條件式存取原則,以限制您對特定資源的存取。

以互動方式登入

Azure CLI 的預設登入驗證方法會使用網頁瀏覽器和存取權杖來登入。

  1. 執行 login 命令。

    az login
    

    如果 CLI 可以開啟您的預設瀏覽器,它會起始 授權碼流程 ,並開啟預設瀏覽器以載入 Azure 登入頁面。

    否則,它會起始 裝置程式碼流程 ,並告訴您在 開啟 https://aka.ms/devicelogin 瀏覽器頁面,並輸入終端機中顯示的程式碼。

    如果沒有網頁瀏覽器可用,或網頁瀏覽器無法開啟,您可以使用 az login --use-device-code強制裝置程式碼流程。

  2. 請在瀏覽器中使用您的帳戶認證登入。

在命令列上,使用認證登入

在命令列中提供您的 Azure 使用者認證。

注意

這個方法不適用於 Microsoft 帳戶或啟用雙重要素驗證的帳戶。

az login -u <username> -p <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

使用服務主體來登入

服務主體是未繫結至任何特定使用者的帳戶,其可以透過預先定義的角色指派來擁有權限。 使用服務主體進行驗證是撰寫安全指令碼或程式的最佳方式,可讓您同時套用權限限制和儲存在本機的靜態認證資訊。 若要深入了解服務主體,請參閱使用 Azure CLI 建立 Azure 服務主體

若要使用服務主體登入,您需要:

  • 與服務主體相關聯 URL 或名稱
  • 服務主體密碼,或用來以 PEM 格式建立服務主體的 X509 憑證
  • 與服務主體相關聯的租用戶,作為 .onmicrosoft.com 網域或 Azure 物件識別碼

注意

憑證必須附加至 PEM 檔案內的私密金鑰。 如需 PEM 檔案格式的範例,請參閱 憑證式驗證

重要

如果您的服務主體使用保存在 Key Vault 中的憑證,該憑證的私密金鑰必須可在不登入 Azure 的情況下取得。 若要擷取 的 az login 憑證,請參閱從 金鑰保存庫擷取憑證

az login --service-principal -u <app-id> -p <password-or-cert> --tenant <tenant>

重要

如果您不希望在主控台中顯示密碼,並且希望以互動方式使用 az login,請在 read -s 以下使用 bash 命令。

read -sp "Azure password: " AZ_PASS && echo && az login --service-principal -u <app-id> -p $AZ_PASS --tenant <tenant>

在 PowerShell 底下,請使用 Get-Credential Cmdlet。

$AzCred = Get-Credential -UserName <app-id>
az login --service-principal -u $AzCred.UserName -p $AzCred.GetNetworkCredential().Password --tenant <tenant>

使用不同的租用戶登入

您可以使用 --tenant 引數選取要登入的租用戶。 這個引數的值可以是 .onmicrosoft.com 網域或租用戶的 Azure 物件識別碼。 互動式和命令列登入方法都是使用 --tenant

az login --tenant <tenant>

使用受控識別登入

若資源已針對 Azure 資源的受控識別進行設定,則您可以使用受控識別來登入。 使用資源身分識別登入可透過 --identity 旗標來完成。

az login --identity

如果資源有多個使用者指派的受控識別,而且沒有系統指派的身分識別,您必須使用 來指定使用者指派受控識別 --username 的用戶端識別碼或物件識別碼或資源識別碼, 以進行登入。

az login --identity --username <client_id|object_id|resource_id>

若要深入了解 Azure 資源的受控識別,請參閱設定 Azure 資源的受控識別使用 Azure 資源的受控識別登入

另請參閱