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

Adding write permission for creating Resource Groups to an Azure Active Directory Application

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

我收到这个错误:

{"The client 'xxxx' with object id 'xxxx' does not have authorization to perform action 'Microsoft.Resources/subscriptions/resourcegroups/write' over scope '/subscriptions/xxxx/resourcegroups/test-resource-group'."}

有什么方法可以在订阅级别将此权限授予 Azure AD 应用程序?

配置步骤如下:

  1. 在 Azure AD 中注册应用程序(听起来您已经这样做了)
  2. 为您的应用程序创建相应的服务主体(这可能会或可能不会在您注册应用程序时自动完成 - 这取决于您用于注册的方法)
  3. 分配服务主体 RBAC 对订阅的访问权限。

详细描述了步骤here

我认为您需要为您的服务主体分配参与者角色才能创建资源组。

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

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

I wrote this code in a gist for macOS here