我正在尝试使用应用 ID 查询用户拥有的所有资源。我当前的实现是获取我的应用程序有权访问的所有资源,然后查询每个资源的 RBAC 以查看用户是否有权访问。使用 Azure Resource Graph 可以为我当前的用户完成的事情似乎太多了。有没有办法使用 Azure Resource Graph,但指定我要为哪个用户获取资源(假设我的应用程序对租户中的所有资源具有读取权限)?
问问题
616 次
1 回答
1
从您的描述中,您需要找到订阅中的角色分配,其资源类型为Microsoft.Authorization/roleAssignments
,不包含在 Azure Resource Graph 中。
您的选择是使用 REST API - ,使用Azure AD 中的用户进行Role Assignments - List
筛选。ObjectId
要获取访问令牌以使用 AD App(您提到的 AppId)调用 REST API,您需要使用客户端凭据流,请参阅此链接。
样品:
检查scope
响应中的,它们是用户可以访问的资源。
GET https://management.azure.com/subscriptions/<subscription-id>/providers/Microsoft.Authorization/roleAssignments?$filter=principalId eq '<object-id>'&api-version=2018-09-01-preview
于 2020-03-17T07:10:03.500 回答