我如何设置我的Azure帐户以通过REST API进行ARM部署?

时间:2018-07-10 17:27:00

标签: azure azure-active-directory azure-resource-manager

我有一个Azure帐户,我想使用ASP.NET库进行ARM模板的部署。我注意到,在Azure Portal生成的 Deployment 类(在从Portal下载的 DeploymentHelper.cs 文件中),我需要以下字段提供我自己的数据:

string subscriptionId = "your-subscription-id";
string clientId = "your-service-principal-clientId";
string clientSecret = "your-service-principal-client-secret";
string resourceGroupName = "resource-group-name";
string deploymentName = "deployment-name";
string resourceGroupLocation = "resource-group-location";
string pathToTemplateFile = "path-to-template.json-on-disk";
string pathToParameterFile = "path-to-parameters.json-on-disk";
string tenantId = "tenant-id";

我在这些方面遇到了困难:

string clientId = "your-service-principal-clientId";
string clientSecret = "your-service-principal-client-secret";

我知道可以从 Subscriptions 刀片中获得的 subscriptionId 。我也知道,我可以在目录ID 字段下的 Azure Active Directory>属性刀片中找到 tenantId

我已按照this documentation page的要求尝试在 Azure Active Directory 上设置应用注册,我已经读过这是我需要做的获取 cliendId clientSecret 值。我认为值得一提的是,我对 Active Directory Azure Active Directory 没有任何经验。

在遵循文档时,我的第一个问题是使用此刀片:

enter image description here

我不知道应该在“ 登录URL ”字段中输入什么。我试图用我的个人网站填充它只是因为它是必需的(可能是我的第一个错误)。然后使用已注册的应用程序进入“ 应用程序ID ”,并在我的代码中使用值 clientId

然后我在“ 设置”刀片中生成密钥,并将其用作代码中的 clientSecret

但是,当我运行代码时,出现以下错误:

Exception thrown: 'Microsoft.Rest.Azure.CloudException' in System.Private.CoreLib.dll

An exception of type 
'Microsoft.Rest.Azure.CloudException' occurred in System.Private.CoreLib.dll but was not handled in user code

Operation returned an invalid status code 'Forbidden'

我不想进行任何精美的Azure AD设置以便通过Azure进行部署。我正在用我的个人帐户尝试此操作,因此这与设置AD环境并不一样。

1 个答案:

答案 0 :(得分:1)

  

我不知道应在“登录URL”字段中输入什么。我试图用我的个人网站填充它只是因为它是必需的(可能是我的第一个错误)。

如果开发Web应用程序,则可以将Web应用程序作为登录URL进行寻址。根据您的情况,您可以添加无效的网址。您可以添加您的个人网站。

  

操作返回了无效的状态代码“禁止”

这意味着您无权将资源部署到订阅中。

您需要将角色提升到WebApplication。有关更多信息,请参阅how to registry an Azure AD application and assigin role