Поделиться через


Вход с помощью субъекта-службы с помощью Azure CLI

Субъекты-службы — это учетные записи, не привязанные к конкретному пользователю, которые могут иметь разрешения на них, назначенные с помощью предопределенных ролей. Аутентификация с помощью субъекта-службы лучше всего подходит для создания безопасных скриптов и программ, позволяя применять как ограничения разрешений, так и хранимые локально сведения о статических учетных данных. Дополнительные сведения о субъектах-службах см. в статье "Работа с субъектами-службами Azure" с помощью Azure CLI.

Для входа с помощью субъекта-службы необходимы следующие сведения:

  • URL-адрес или имя, связанное с субъектом-службой;
  • пароль субъекта-службы или сертификат X509 в формате PEM, используемый для создания субъекта-службы;
  • идентификатор клиента, связанного с субъектом-службой, в виде домена .onmicrosoft.com или идентификатора объекта Azure.

Обратите внимание на два важных факта при работе с субъектами-службами и Azure CLI:

  • В PEM-файле нужно добавить CERTIFICATE к PRIVATE KEY. Пример файла в формате PEM см. в разделе Аутентификация на основе сертификата.

  • Если ваш субъект-служба использует сертификат, который хранится в Key Vault, закрытый ключ такого сертификата должен быть доступен без входа в Azure. Сведения о том, как получить сертификат для az login, см. в разделе Получение сертификата из Key Vault.

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.

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

См. также