python - 如何使用 python 获取对 azure 订阅拥有所有者访问权限的用户列表

标签 python azure azure-active-directory azure-automation azure-sdk-python

我正在尝试获取拥有订阅所有者访问权限的用户列表。

我尝试检查 python azure sdk。但我没有得到任何执行此功能的 api。

订阅列表 API 可用,但它不提供有权访问特定订阅的用户的详细信息。

我尝试了下面的代码

subscriptionClient = SubscriptionClient(credentials)
for subscription in subscriptionClient.subscriptions.list():
    print (subscription)

如有任何帮助,我们将不胜感激

最佳答案

Azure Python SDK

如果您希望使用 Azure Python SDK,那么您应该使用 AuthorizationManagementClient class

您可以尝试在订阅本身的范围内获取订阅的 RoleAssignments。

我与 C# 密切合作,因此手边没有 Python 代码,但稍后会尝试使用 Python 代码更新。

更新

这是一个示例代码。我希望这足以让您继续前进。

from azure.mgmt.authorization import AuthorizationManagementClient

authorizationClient = AuthorizationManagementClient(credentials, '<your subscription guid>')
roles = authorizationClient.role_assignments.list()
for role in roles:
print(role)

REST API

如果您想从代码直接调用 REST API,请使用 Microsoft.Authorization/roleAssignments REST API。

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

{scope} 将是 subscriptions/<your subscriptionId>在订阅级别获取 roleAssignments。

以下是对此 API 的请求和响应示例。

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

请求:

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"}]}

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

关于python - 如何使用 python 获取对 azure 订阅拥有所有者访问权限的用户列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52828180/

相关文章:

azure - 有没有办法使用 bacpac 或类似工具以编程方式备份​​和恢复 Azure 数据库?

python - 重用封装在类中的变量和模型

python - 如何将包含多个文件的 Python 程序编译为 mac?

c# - Azure上托管的ASP .NET MVC项目可使用SSL身份验证连接到clearDB mySQL

azure - .NET Core 关键字不支持 : 'server'

azure - 使用 Microsoft Graph Powershell 删除策略

azure-active-directory - 如何检查我的 AzureAD 版本是 V1 还是 V2?

azure - 从守护程序应用程序访问受 oAuth2 保护的 Azure Function

python - 处理后的照片如何删除?

python - 如何检索原始的@classmethod、@staticmethod 或@property