从功能应用程序中运行New-AzureRmResourceGroupDeployment

时间:2017-02-01 20:21:21

标签: azure azure-functions azure-resource-manager

我需要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.

2 个答案:

答案 0 :(得分:1)

为此你需要使用Service Principal auth。我不认为有任何关于Azure Doc的回复的问题,请参阅此文档:

https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-group-authenticate-service-principal

答案 1 :(得分:1)

您需要使用服务主体进行身份验证。可在此处找到带说明的示例。

Azure Function role like permissions to Stop Azure Virtual Machines