使用Azure资源图获取其他用户的资源

时间:2020-03-15 22:27:44

标签: azure azure-active-directory azure-rbac

我正在尝试使用应用程序ID查询用户拥有的所有资源。我当前的实现是获取应用程序有权访问的所有资源,然后查询这些资源中每一项的RBAC,以查看用户是否有权访问。使用Azure资源图,对于当前用户而言,似乎需要太多的调用。有没有一种方法可以使用Azure资源图,但可以指定我要为其获取资源的用户(假设我的应用具有读者对租户中所有资源的访问权限)?

1 个答案:

答案 0 :(得分:1)

根据您的描述,希望您要查找的是订阅中的角色分配,其资源类型为Microsoft.Authorization/roleAssignments,这不包括在Azure资源图中。

您的选择是使用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 

enter image description here