【问题标题】:Adding write permission for creating Resource Groups to an Azure Active Directory Application将创建资源组的写入权限添加到 Azure Active Directory 应用程序
【发布时间】:2018-10-01 23:03:30
【问题描述】:

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

我收到此错误:

{"对象id为'xxxx'的客户端'xxxx'没有权限 执行动作 'Microsoft.Resources/subscriptions/resourcegroups/write' 超出范围 '/subscriptions/xxxx/resourcegroups/test-resource-group'。"}

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

【问题讨论】:

    标签: azure azure-active-directory


    【解决方案1】:

    配置步骤如下:

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

    步骤详细描述here。

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

    【讨论】:

    • 你说得对,在你真正回复之前我已经想通了。您需要将订阅级别的应用程序添加为贡献者(通过新门户)。我希望为应用程序提供更精细的角色,但它现在解决了我的问题。
    • 如果你真的想要,你可以定义一个只有所需权限的custom role。
    • 非常感谢。会去看看。
    • azure 是最糟糕的服务。如果您转到详细信息页面,则屏幕截图不再全部正确。用户界面已更改。
    【解决方案2】:

    您还可以使用 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. 您可以使用以下方式获取创建服务主体的订阅 ID:az account list --query "[?isDefault].id" -o tsv

    I wrote this code in a gist for macOS here

    【讨论】:

      猜你喜欢
      • 2019-06-19
      • 1970-01-01
      • 1970-01-01
      • 2019-10-25
      • 1970-01-01
      • 1970-01-01
      • 2018-02-17
      • 2015-05-29
      • 2019-06-17
      相关资源
      最近更新 更多