azure cli 无法使用命令行选项登录

kum*_*mar 6 azure azure-active-directory

当我尝试通过提供用户名和密码使用 azure cli 登录时。我得到错误

az login -u myemail@email.com -p plaintextpassword
Run Code Online (Sandbox Code Playgroud)

用户名可能无效。对于交叉检查,请尝试“az login”以通过浏览器进行身份验证。

当我使用具有相同用户名和密码的浏览器身份验证方法时,我可以登录。使用此过程,我可以选择“工作或学校帐户”或“个人帐户”。我选择“工作或学校帐户”并输入我的凭据。有没有办法使用命令行选项来选择它。

Shu*_*bao 6

当你的账号是微软账号(如*@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}" 
Run Code Online (Sandbox Code Playgroud)

例子

az ad sp create-for-rbac --name shuiexample --password "Password012!!" 
Run Code Online (Sandbox Code Playgroud)

你可以得到如下结果:

{
  "appId": "bca24913-026d-4020-b9f1-add600bf9045",
  "displayName": "shuiexample1234",
  "name": "http://shuiexample1234",
  "password": "*******",
  "tenant": "*******"
}
Run Code Online (Sandbox Code Playgroud)

3. 使用以下服务主体登录:

$appID="bca24913-026d-4020-b9f1-add600bf9045"
$password="******"
$tenant="*******"
az login --service-principal -u $appID --password $password --tenant $tenant
Run Code Online (Sandbox Code Playgroud)

有关这方面的更多信息,请参阅此链接

  • 我收到此错误:az:错误:无法识别的参数:--password ***** (2认同)