gpt4 book ai didi

azure - 如何使用 Azure Python SDK 将principal_id 转换为用户名

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

我正在尝试使用 Azure Python SDK 构建一个脚本来审核我们的各种用户角色授权。我可以使用以下命令提取角色分配列表:

authorizationClient = AuthorizationManagementClient(credential, subscription_id)
roles = authorizationClient.role_assignments.list()

这有效,我得到了一个字典列表,其中似乎包含了除principal_name之外我需要的所有信息。响应示例:

{'additional_properties': {}, 'id': '/providers/Microsoft.Management/managementGroups/<group_ID>/providers/Microsoft.Authorization/roleAssignments/<role_ID>', 'name': '<role_ID>', 'type': 'Microsoft.Authorization/roleAssignments', 'scope': '/providers/Microsoft.Management/managementGroups/<scope_ID>', 'role_definition_id': '/subscriptions/<subscription_ID>/providers/Microsoft.Authorization/roleDefinitions/<role_def_id>', 'principal_id': '<principal_ID>', 'principal_type': 'Group', 'can_delegate': None}

使用Azure Python SDK,有没有办法根据给定的principal_id查找principal_name?

我已经阅读了 SDK 文档几个小时,但似乎找不到答案。我所能发现的是,azure cli 默认会输出principal_id 和principal_name,但SDK 不会。如有任何帮助,我们将不胜感激。

最佳答案

您需要使用azure-graphrbac包: https://pypi.org/project/azure-graphrbac/

使用示例:

    objects = graphrbac_client.objects.get_objects_by_object_ids({
'object_ids': [app.object_id],
'types': ['ServicePrincipal']
})

还有一个过滤器语法。我没有用 ID 进行过滤的,但这给了你一个想法:

    users = graphrbac_client.users.list(
filter="displayName eq 'Test Buddy'"
)

graphrbac 的文档: https://azuresdkdocs.blob.core.windows.net/$web/python/azure-graphrbac/0.61.1/azure.graphrbac.html

一些广泛的单元测试可以帮助: https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/graphrbac/azure-graphrbac/tests/test_graphrbac.py

RestAPI 文档可以让您深入了解 SDK 的功能: https://learn.microsoft.com/en-us/previous-versions/azure/ad/graph/api/api-catalog

(我在 MS 的 Python SDK 团队工作)

关于azure - 如何使用 Azure Python SDK 将principal_id 转换为用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64688046/

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