我需要ad-hoc连接一个无状态工作程序,以根据用户操作执行长时间运行的作业,该操作在完成时自行破坏。我正在尝试从PoSh功能应用程序中运行New-AzureRmResourceGroupDeployment,并且无法弄清楚如何从PoSh脚本中对Azure进行身份验证。
我试过了:
$accountName = "myID@mydomain.com"
$pwd = ConvertTo-SecureString "password" -AsPlainText -Force
$cred = new-object PSCredential($accountName, $pwd)
Add-AzureRmAccount -Credential $cred
New-AzureResourceGroupDeployment -ResourceGroupName yadda yadda
我收到一条错误消息,我需要使用组织ID(我是,我们的Azure AD是联合的,我们使用AD Sync(和SiteMinder没有WS- *,如果这很重要)):
Add-AzureRmAccount : -Credential parameter can only be used with Organization ID credentials. For more information, please refer to http://go.microsoft.com/fwlink/?linkid=331007&clcid=0x409 for more information about the difference between an organizational account and a Microsoft account.
我尝试了“Login-AzureRMAccount -Credential $ cred”,结果相似。
如果我使用-Credential标志在我的本地计算机(加入AD的成员)上的PoSh窗口中执行Add-或Login- cmdlet,我会收到类似的错误。如果我在没有凭证的情况下运行cmdlet,则会通过交互式ID / PW窗口提示我输入凭据(输入ID后我不必输入密码)。
有谁知道如何进行身份验证?我可以通过上面的身份验证,某种从我们的网络层传递凭证,甚至是我不知道的选项C.
答案 0 :(得分:1)
为此你需要使用Service Principal auth。我不认为有任何关于Azure Doc的回复的问题,请参阅此文档:
答案 1 :(得分:1)
您需要使用服务主体进行身份验证。可在此处找到带说明的示例。
Azure Function role like permissions to Stop Azure Virtual Machines