- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 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/
我是一名优秀的程序员,十分优秀!