【问题标题】:Using Azure Resource Graph to get other user's Resources使用 Azure Resource Graph 获取其他用户的资源
【发布时间】:2020-03-17 15:11:21
【问题描述】:
我正在尝试使用应用 ID 查询用户拥有的所有资源。我目前的实现是获取我的应用程序可以访问的所有资源,然后查询每个资源的 RBAC 以查看用户是否有权访问。使用 Azure Resource Graph 可以为我当前的用户完成的事情似乎太多了。有没有办法使用 Azure Resource Graph,但指定我要为哪个用户获取资源(假设我的应用程序对租户中的所有资源具有读取权限)?
【问题讨论】:
标签:
azure
azure-active-directory
azure-rbac
【解决方案1】:
根据您的描述,您需要查找的是您订阅中的角色分配,其资源类型为Microsoft.Authorization/roleAssignments,不包含在 Azure Resource Graph 中。
您的选择是使用 REST API - Role Assignments - List,使用 Azure AD 中用户的 ObjectId 进行筛选。要获取访问令牌以使用 AD App(您提到的 AppId)调用 REST API,您需要使用客户端凭据流,请参阅此link。
示例:
查看响应中的scope,它们是用户可以访问的资源。
GET https://management.azure.com/subscriptions/<subscription-id>/providers/Microsoft.Authorization/roleAssignments?$filter=principalId eq '<object-id>'&api-version=2018-09-01-preview