如何在Powershell Core中连接ConnectAzAccount(无提示)?

Notacorn

我确实看到了这个q / a:Connect-AzAccount,没有提示

但是,当我尝试接受的答案时,出现以下错误:

[6/12/2020 12:36:20 AM] ERROR: Connect-AzAccount : Username + Password authentication is not supported in PowerShell Core. Please use device code authentication for interactive log in, or Service Principal authentication for script log in.

因此,我转到了Connect-AzAccount文档的示例3,该示例指定了“服务主体”身份验证方法,因此我将两者混合使用,因为建议的香草Get-Credential触发了另一个交互式会话。所以这是现在的脚本:

    $User = "[email protected]"
    $PWord = ConvertTo-SecureString -String "**********" -AsPlainText -Force
    $tenant = "f*********************************"
    $Credential = New-Object -TypeName "System.Management.Automation.PSCredential" -ArgumentList $User,$PWord
    # $Credential = Get-Credential
    Connect-AzAccount -Credential $Credential -Tenant $tenant -ServicePrincipal

这带来了我的下一个错误: [6/12/2020 12:45:45 AM] ERROR: Connect-AzAccount : AADSTS700016: Application with identifier 'myemail' was not found in the directory 'f*********************************'. This can happen if the application has not been installed by the administrator of the tenant or consented to by any user in the tenant. You may have sent your authentication request to the wrong tenant.

在这一点上,我真的很困惑,因为我在Azure上所做的一切是:

  1. 创建一个新的Azure帐户
  2. 通过UI设置Azure API管理实例(大约需要20分钟)
  3. 尝试使用上面的代码在本地将Powershell Azure函数内部连接到Azure。

我认为我提供的信息或配置方式有问题。

$User 是我注册到Azure的电子邮件。

$PWord 是我的Azure密码

$tenant 是我打开Azure AD时看到的第一件事:

在此处输入图片说明

我试图通过Powershell Core连接到Azure有什么问题?

Notacorn

我不喜欢Azure文档。它散发出与GCP完全不同的氛围,并且对初学者的友好度大大降低。

随着中说,他们确实有某种写了那个地址我创建一个服务主体,并用它来验证的问题。

实际上,我最终只是找到一个视频(我从来没有这样做),因为我想跳过所有技术术语,只创建织补服务主体。

它甚至都不是直观的-就像Microsoft可以在AZ AD或IAM中添加一个按钮,上面写着“创建服务主体”,但,您必须转到其他页面,其中没有关于服务主体的任何内容。你会看到的:

  1. 在Azure门户中,导航到Azure Active Directory中的``应用程序注册''页面。我无法告诉您,“应用程序注册”与服务主体有什么关系。我也无法告诉您服务主体是什么,但我想它与服务帐户有关。

  2. 进行新注册,并使用某种名称来描述此服务主体的范围。就像普通的服务帐户命名约定一样。我认为帐户类型无关紧要,但我选择了Multitenant重定向URL与服务主体无关,并且老实说使它更加混乱。我永远不会将服务帐户与任何类型的重定向url相关联,但是到了。

  3. 您将到达一个页面,其中包含显示名称(在步骤2中为其提供的服务主体的名称),应用程序(客户端)ID(这实际上是您的服务帐户用户名,这是imo不直观的),并且对象ID(我不知道这是什么,但是我从来不需要使用它。

  4. 猜猜是什么,您只创建了服务帐户的1/3。它甚至还没有密码。在您创建的应用程序注册中,有一个“证书和秘密”页面。在该页面上,您想添加一个新的客户端机密。对于我的描述,我只是将我的服务主体设置为“显示名称”。我认为这不是必需的,因为此客户端机密在应用程序注册的范围之内,因此即使我将其命名为“ poop”,我也可以合理地假设其用途。Azure将生成细微差别的客户端机密并显示它,但不会警告您这是您唯一能够看到密钥的时间。复制它。正常情况下,这是您的服务主体密码。

  5. 对于最后一步,您需要摆脱闪避,我的意思是Azure AD。导航到“订阅”页面,然后单击您的活动订阅由于某种原因,IAM在这里,因此请单击。此时,您的服务主体具有用户名和密码,但没有实际权限-您也必须手动配置。单击添加->添加角色分配对于角色,您应该进行研究,但如果认真的话,贡献者可能是一个不错的选择。它具有读/写功能,但不能取代Owner确保您正在分配对服务主体的访问权限,并搜索其显示名称。保存

完成所有这些工作后,Connect-AzAccount终于奏效了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章