通过 REST API 获取 Azure 用户

Get Azure users via REST APIs

我想通过 REST API 获取 Azure 活跃用户列表及其权限(角色)集。

到目前为止,我无法直接获取它们。我试图使用 Active Directory 找出它们,但到目前为止没有成功。

这里是 documentation 的 Azure REST API

提前致谢。

您可以通过查询订阅的角色分配来获取用户的角色。

示例URL:

https://management.azure.com/subscriptions/aaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa/providers/Microsoft.Authorization/roleAssignments?$filter=atScope()&api-version=2015-07-01

当然,您需要将您的订阅 ID 放在那里:)

$filter=atScope() 是仅获取订阅角色所必需的,否则还需要 returns 资源组和资源的角色。

示例响应:

{
  "value": [
    {
      "properties": {
        "roleDefinitionId": "/subscriptions/aaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa/providers/Microsoft.Authorization/roleDefinitions/aaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
        "principalId": "aaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
        "scope": "/subscriptions/aaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
        "createdOn": "2018-03-04T19:38:21.9632037Z",
        "updatedOn": "2018-03-04T19:38:21.9632037Z",
        "createdBy": "aaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
        "updatedBy": "aaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
      },
      "id": "/subscriptions/aaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa/providers/Microsoft.Authorization/roleAssignments/aaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
      "type": "Microsoft.Authorization/roleAssignments",
      "name": "aaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
    }
  ]
}

principalId 将是分配给此角色的服务主体、组或用户的 objectId

您还需要找出每个角色的 ID 是什么。 在这里,我得到了 roleDefinitionId 并使用它通过另一个查询来获取角色的定义,例如:

https://management.azure.com/subscriptions/aaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa/providers/Microsoft.Authorization/roleDefinitions/aaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa?api-version=2015-07-01

它的回应是:

{
    "properties": {
        "roleName": "Contributor",
        "type": "BuiltInRole",
        "description": "Lets you manage everything except access to resources.",
        "assignableScopes": [
            "/"
        ],
        "permissions": [
            {
                "actions": [
                    "*"
                ],
                "notActions": [
                    "Microsoft.Authorization/*/Delete",
                    "Microsoft.Authorization/*/Write",
                    "Microsoft.Authorization/elevateAccess/Action"
                ]
            }
        ],
        "createdOn": "0001-01-01T08:00:00.0000000Z",
        "updatedOn": "2016-12-14T02:04:45.1393855Z",
        "createdBy": null,
        "updatedBy": null
    },
    "id": "/subscriptions/aaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa/providers/Microsoft.Authorization/roleDefinitions/aaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa",
    "type": "Microsoft.Authorization/roleDefinitions",
    "name": "aaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
}

您也可以通过省略 id 来获取所有角色。

Microsoft 引入了 Graph APIs 来获取用户详细信息和附加的角色。 用户详细信息 API:

https://graph.windows.net//用户数?api-version=1.6

授权:访问令牌

访问令牌 您可以使用资源作为 https://graph.windows.net/ 和身份验证端点作为 https://login.microsoftonline.com/.

注意:您还必须具有 Microsoft Graph API 权限。

下面是一些其他图表 API 端点:

https://msdn.microsoft.com/en-us/library/azure/ad/graph/api/directoryroles-operations

目录角色:

https://graph.windows.net/myorganization/directoryRoles?api-version=1.6

列出具有角色的用户:

https://graph.windows.net/myorganization/directoryRoles/ce8c598b-20eb-42b6-89c6-cf6c184ba416/$links/members?api-version=1.6