我有一个C#应用程序,它将创建资源组 . 我正在使用ResourceManagementClient来创建资源组(我假设它只是REST API的包装器) . 我正在使用Azure AD应用程序的客户端ID和客户端密钥进行身份验证 .
我收到这个错误:
{“具有对象标识'xxxx'的客户端'xxxx'没有授权在范围'/ subscriptions / xxxx / resourcegroups / test-resource-group'上执行'Microsoft.Resources / subscriptions / resourcegroups / write' . ” }
有没有办法可以在订阅级别将此权限授予Azure AD应用程序?
2 回答
您还可以使用Azure CLI,它允许您自动执行创建服务主体的任务 . 我做了以下(来自here):
Install for your platform
运行
az login
以使用您想要的帐户登录Azure运行
az ad sp create-for-rbac
创建Azure Active Directory应用程序,可以访问当前Azure订阅的Azure Resource Manager您可以使用以下命令获取创建服务主体的订阅ID:
az account list --query "[?isDefault].id" -o tsv
I wrote this code in a gist for macOS here
配置它的步骤是:
在Azure AD中注册应用程序(听起来您已经这样做了)
为您的应用程序创建相应的服务主体(这可能是您注册申请时自动完成的,也可能没有 - 这取决于您用于注册的方法)
为订阅分配服务主体RBAC访问权限 .
这些步骤详细描述here .
我相信您需要为您的服务主体分配Contributor角色以启用资源组创建 .