添加写入权限以创建资源组到Azure Active Directory应用程序

时间:2016-06-07 20:08:29

标签: azure azure-active-directory

我有一个C#应用程序,它将创建资源组。我使用ResourceManagementClient创建资源组(我假设它只是REST API的包装器)。我使用Azure AD应用程序的客户端ID和客户端密钥进行身份验证。

我收到此错误:

  

{"客户' xxxx'对象ID' xxxx'没有授权   执行行动   ' Microsoft.Resources /订阅/ resourcegroups /写'超范围   ' /订阅/ XXXX / resourcegroups /测试资源组'"}

我是否可以通过订阅级别将此权限授予Azure AD应用程序?

2 个答案:

答案 0 :(得分:5)

配置它的步骤是:

  1. 在Azure AD中注册应用程序(听起来您已经这样做了)
  2. 为您的应用程序创建相应的服务主体(这可能是您注册申请时自动完成的,也可能没有 - 这取决于您用于注册的方法)
  3. 为订阅分配服务主体RBAC访问权限。
  4. 详细描述了步骤here

    我相信您需要为服务主体分配Contributor角色以启用资源组创建。

答案 1 :(得分:0)

您还可以使用Azure CLI,它使您可以自动化创建服务主体的任务。我做了以下操作(来自here):

  1. Install for your platform
  2. 运行az login以使用您的预期帐户登录Azure
  3. 运行az ad sp create-for-rbac创建一个Azure Active Directory应用程序,该应用程序可以访问当前Azure订阅的Azure资源管理器
  4. 您可以使用az account list --query "[?isDefault].id" -o tsv
  5. 获取在其中创建服务主体的订阅ID。

I wrote this code in a gist for macOS here