gpt4 book ai didi

c# - 以编程方式从 Azure 订阅中检索所有所有者

转载 作者:行者123 更新时间:2023-12-03 04:16:24 25 4
gpt4 key购买 nike

我想以编程方式检索 azure 订阅的所有所有者。我不想使用 Powershell 来执行此操作。

我开始知道我们可以使用 Azure 管理 REST API 来实现此目的,但无法找到从 Azure 订阅检索所有者列表的确切 API 引用。

有人可以帮我解决这个问题吗?

最佳答案

REST API

您应该能够使用 Microsoft.Authorization/roleAssignments REST API 获取该信息。

GET https://management.azure.com/{scope}/providers/Microsoft.Authorization/roleAssignments?api-version=2015-07-01&$filter={filter}

在您的情况下,由于您正在寻找订阅级别的所有者,因此范围将是 {scope} 将是 subscriptions/{subscriptionId}

另外,

  • 收到响应后,它将包含角色定义 ID,而不是确切的名称。对于所有内置角色,您可以通过访问此 Microsoft documentation 预先知道它是哪个角色。 。例如。 ID 为 Owner role是“8e3af657-a8ff-443c-a75c-2fe8c4bcb635”

  • 要查找所有可能的角色定义的 ID 作为响应的一部分,您可以使用 Role Definitions - List REST API

有用的文档

仔细阅读此 Microsoft 文档,其中详细介绍了如何使用 RBAC 和 REST API 列出、授予访问权限或删除访问权限:Manage Access Using RBAC and REST API

更新(也可用于经典管理员的示例和 API)

我使用试用订阅运行了一些示例。以下是请求和响应。

  1. 查找在订阅级别明确分配“所有者”角色的所有用户

    请求:

    GET https://management.azure.com/subscriptions/{my subscription GUID}/providers/Microsoft.Authorization/roleAssignments?api-version=2018-01-01-preview 

    回应:

注意响应中的角色定义 ID 为“8e3af657-a8ff-443c-a75c-2fe8c4bcb635”。这对应于内置的所有者角色。

    {"value":[{"properties":{"roleDefinitionId":"/subscriptions/{my Subscription GUID}/providers/Microsoft.Authorization/roleDefinitions/8e3af657-a8ff-443c-a75c-2fe8c4bcb635","principalId":"{some user GUID}","principalType":"User","scope":"/subscriptions/{my Subscription GUID}","createdOn":"2018-10-03T05:12:52.7213301Z","updatedOn":"2018-10-03T05:12:52.7213301Z","createdBy":"GUID","updatedBy":"GUID"},"id":"/subscriptions/{my Subscription GUID}/providers/Microsoft.Authorization/roleAssignments/83eee76b-4a0d-4f61-8c62-409501e95457","type":"Microsoft.Authorization/roleAssignments","name":"83eee76b-4a0d-4f61-8c62-409501e95457"}]}
  • 查找凭借经典管理员身份而成为所有者的所有用户(这与注册订阅但尚未使用 Azure 门户 RBAC 显式分配所有者角色的帐户相关)

    请求:注意 URL 末尾的 classicAdministrators,并且 API 版本是旧版本 2015-06-01

    获取https://management.azure.com/subscriptions/6f070baf-bbba-47a5-bbe4-a0450017cdf5/providers/Microsoft.Authorization/classicAdministrators?api-version=2015-06-01

    响应:通知角色是 ServiceAdministrator;AccountAdministrator

    {"value":[{"properties":{"emailAddress":"<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="b2cacacacaf2cacacaca9cd1dddf" rel="noreferrer noopener nofollow">[email protected]</a>","role":"ServiceAdministrator;AccountAdministrator"},"id":"/subscriptions/{mysubscriptionguid}/providers/Microsoft.Authorization/classicAdministrators/00030000B1F89CF0","type":"Microsoft.Authorization/classicAdministrators","name":"00030000B1F89CF0"}]}
  • 关于c# - 以编程方式从 Azure 订阅中检索所有所有者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52563067/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com