Вход с помощью Azure CLISign in with Azure CLI

Azure CLI поддерживает несколько типов аутентификации.There are several authentication types for the Azure CLI. Проще всего приступить к работе можно с помощью оболочки Azure Cloud Shell, которая автоматически выполняет вход в вашу учетную запись.The easiest way to get started is with Azure Cloud Shell, which automatically logs you in. На локальном компьютере можно выполнить интерактивную процедуру входа в браузере с помощью команды az login.Locally, you can sign in interactively through your browser with the az login command. При написании скриптов рекомендуется использовать субъекты-службы.When writing scripts, the recommended approach is to use service principals. Предоставляя именно те разрешения, которые нужны субъекту-службе, можно обеспечить безопасность скрипта автоматизации.By granting just the appropriate permissions needed to a service principal, you can keep your automation secure.

CLI не хранит ваши сведения о входе.None of your sign-in information is stored by the CLI. Маркер обновления аутентификации создается и сохраняется в Azure.Instead, an authentication refresh token is generated by Azure and stored. Начиная с августа 2018 г., маркер становится недействительным в случае бездействия пользователя в течение 90 дней. Этот срок может быть изменен корпорацией Майкрософт или администратором клиента.As of August 2018 this token is revoked after 90 days of inactivity, but this value can be changed by Microsoft or your tenant administrator. Если маркер становится недействительным, в CLI появится сообщение о необходимости повторно войти в учетную запись.Once the token is revoked you get a message from the CLI saying you need to sign in again.

После входа команды CLI будут выполняться в вашей подписке по умолчанию.After signing in, CLI commands are run against your default subscription. Если у вас есть несколько подписок, можно изменить подписку по умолчанию.If you have multiple subscriptions, you can change your default subscription.

Интерактивный входSign in interactively

Метод проверки подлинности, используемый в Azure CLI по умолчанию, — вход с помощью веб-браузера и маркера доступа.The Azure CLI's default authentication method uses a web browser and access token to sign in.

  1. Выполните команду login.Run the login command.

    az login
    

    Если в CLI можно запустить браузер по умолчанию, откроется браузер со страницей входа.If the CLI can open your default browser, it will do so and load an Azure sign-in page.

    Если нет, самостоятельно откройте в браузере страницу https://aka.ms/devicelogin и введите код авторизации, отображаемый в терминале.Otherwise, open a browser page at https://aka.ms/devicelogin and enter the authorization code displayed in your terminal.

  2. Выполните вход в браузере с помощью учетных данных.Sign in with your account credentials in the browser.

Вход с учетными данными с помощью командной строкиSign in with credentials on the command line

Укажите свои учетные данные пользователя Azure в командной строке.Provide your Azure user credentials on the command line.

Примечание

Этот способ не работает с учетными записями Майкрософт или с учетными записями, которые используют двухфакторную проверку подлинности.This approach doesn't work with Microsoft accounts or accounts that have two-factor authentication enabled.

az login -u <username> -p <password>

Важно!

Если вы не хотите, чтобы ваш пароль отображался в консоли, и используете az login в интерактивном режиме, используйте команду read -s в bash.If you want to avoid displaying your password on console and are using az login interactively, use the read -s command under bash.

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

В PowerShell используйте командлет Get-Credential.Under PowerShell, use the Get-Credential cmdlet.

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

Вход с использованием субъекта-службыSign in with a service principal

Субъекты-службы — это учетные записи, не связаны с определенным пользователем. Они предоставляют разрешения, назначаемые с помощью предопределенных ролей.Service principals are accounts not tied to any particular user, which can have permissions on them assigned through pre-defined roles. Аутентификация с помощью субъекта-службы лучше всего подходит для создания безопасных скриптов и программ, позволяя применять как ограничения разрешений, так и хранимые локально сведения о статических учетных данных.Authenticating with a service principal is the best way to write secure scripts or programs, allowing you to apply both permissions restrictions and locally stored static credential information. Дополнительные сведения о субъектах-службах см. в руководстве по созданию субъекта-службы Azure с помощью Azure CLI .To learn more about service principals, see Create an Azure service principal with the Azure CLI.

Для входа с помощью субъекта-службы необходимы следующие сведения:To sign in with a service principal, you need:

  • URL-адрес или имя, связанное с субъектом-службой;The URL or name associated with the service principal
  • пароль субъекта-службы или сертификат X509 в формате PEM, используемый для создания субъекта-службы;The service principal password, or the X509 certificate used to create the service principal in PEM format
  • идентификатор клиента, связанного с субъектом-службой, в виде домена .onmicrosoft.com или идентификатора объекта Azure.The tenant associated with the service principal, as either an .onmicrosoft.com domain or Azure object ID

Важно!

Если ваш субъект-служба использует сертификат, который хранится в Key Vault, закрытый ключ такого сертификата должен быть доступен без входа в Azure.If your service principal uses a certificate that is stored in Key Vault, that certificate's private key must be available without signing in to Azure. Чтобы получить закрытый ключ для использования в автономном режиме, выполните команду az keyvault secret show.To retrieve a private key for use offline, use az keyvault secret show.

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

Важно!

Если вы не хотите, чтобы ваш пароль отображался в консоли, и используете az login в интерактивном режиме, используйте команду read -s в bash.If you want to avoid displaying your password on console and are using az login interactively, use the read -s command under bash.

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

В PowerShell используйте командлет Get-Credential.Under PowerShell, use the Get-Credential cmdlet.

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

Вход с помощью другого клиентаSign in with a different tenant

С помощью аргумента --tenant можно выбрать клиент, от имени которого выполняется вход.You can select a tenant to sign in under with the --tenant argument. Значением этого аргумента может быть домен .onmicrosoft.com или идентификатор объекта Azure для клиента.The value of this argument can either be an .onmicrosoft.com domain or the Azure object ID for the tenant. Аргумент --tenant поддерживает оба метода входа — интерактивный и с помощью командной строки.Both interactive and command-line sign in methods work with --tenant.

az login --tenant <tenant>

Вход с помощью управляемого удостоверенияSign in with a managed identity

В ресурсы Azure, которые настроены для использования управляемых удостоверений, можно выполнить вход с помощью такого удостоверения.On resources configured for managed identities for Azure resources, you can sign in using the managed identity. Чтобы выполнить вход с помощью удостоверения ресурса, используйте флаг --identity.Signing in with the resource's identity is done through the --identity flag.

az login --identity

Дополнительные сведения об управляемых удостоверениях для ресурсов Azure см. в статьях о настройке управляемых удостоверений для ресурсов Azure и использовании управляемых удостоверений для входа в ресурсы Azure.To learn more about managed identities for Azure resources, see Configure managed identities for Azure resources and Use managed identities for Azure resources for sign in.