当我尝试使用 azure cli 通过提供用户名和密码登录时,出现错误
az login -u [email protected] -p plaintextpassword
用户名可能无效。如需交叉检查,请尝试使用“az login”通过浏览器进行身份验证。
当我使用浏览器身份验证方法并使用相同的用户名和密码时,我能够登录。使用此过程,我得到了“工作或学校帐户”或“个人帐户”选项。我选择“工作或学校帐户”并输入我的凭据。有没有办法使用命令行选项来选择这个?
答案1
当你的账户是微软账户(如:*@outlook.com,*@hotmail.com)时,你会收到这个错误日志。根本原因是微软账户不支持非交互式登录,直接用你的账户登录 Azure 也是不安全的。
如果您计划使用 Azure CLI 2.0 管理您的应用或服务,则应在 Azure Active Directory (AAD) 下运行它服务主体而不是您自己的凭据。请参考以下步骤创建服务主体。
1.登录Azure。
2.使用 az ad sp create-for-rbac 创建服务主体。
az ad sp create-for-rbac --name {appId} --password "{strong password}"
例子
az ad sp create-for-rbac --name shuiexample --password "Password012!!"
您可能会得到如下结果:
{
"appId": "bca24913-026d-4020-b9f1-add600bf9045",
"displayName": "shuiexample1234",
"name": "http://shuiexample1234",
"password": "*******",
"tenant": "*******"
}
3. 使用以下方式使用服务主体登录:
$appID="bca24913-026d-4020-b9f1-add600bf9045"
$password="******"
$tenant="*******"
az login --service-principal -u $appID --password $password --tenant $tenant
有关此内容的更多信息,请参阅关联。
答案2
您使用的帐户是 Microsoft 帐户还是需要多因素身份验证? 这两种方式都需要交互式登录
https://docs.microsoft.com/en-us/cli/azure/authenticate-azure-cli