我正在尝试使用应用 ID 查询用户拥有的所有资源。我当前的实现是获取我的应用程序有权访问的所有资源,然后查询每一项资源的 RBAC 以查看用户是否有权访问。对于我当前的用户使用 Azure Resource Graph 可以完成的事情来说,似乎有太多的要求。有没有办法使用 Azure 资源图,但指定我想要获取资源的用户(假设我的应用程序具有对租户中所有资源的读取访问权限)?
最佳答案
根据您的描述,您需要找到的是订阅中的角色分配,其资源类型为 Microsoft.Authorization/roleAssignments
,该资源类型不包含在 Azure 资源图中。
您的选择是使用 REST API - Role Assignments - List
,使用 Azure AD 中用户的 ObjectId
进行筛选。要获取访问 token 以使用 AD App(您提到的 AppId)调用 REST API,您需要使用客户端凭据流程,请参阅此 link .
示例:
检查响应中的范围
,它们是用户可以访问的资源。
GET https://management.azure.com/subscriptions/<subscription-id>/providers/Microsoft.Authorization/roleAssignments?$filter=principalId eq '<object-id>'&api-version=2018-09-01-preview
关于azure - 使用Azure Resource Graph获取其他用户的资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60698301/