通过 Microsoft Graph API 检索 SharePoint Online 对象权限

Nat*_*huk 4 sharepoint-online microsoft-graph-api

我需要映射所有 SharePoint Online 对象(网站、列表、列表项、附件、文件、文件夹)的权限。这似乎可以通过 CSOM API 实现,但在 Microsoft Graph 中没有找到类似的东西。

以下查询成功检索请求的项目

https://graph.microsoft.com/beta/sites/root/Lists/{List ID}/items/{item ID}/
Run Code Online (Sandbox Code Playgroud)

但以下查询没有按我的预期返回权限:

https://graph.microsoft.com/beta/sites/root/Lists/{List ID}/items/{item ID}/permissions
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

{
    "error": {
        "code": "BadRequest",
        "message": "Resource not found for the segment 'permissions'.",
        "innerError": {
            "request-id": "ab9f4cfe-f0e1-433b-9767-96d4b3e58c59",
            "date": "2019-03-18T18:52:21"
        }
    }
}  
Run Code Online (Sandbox Code Playgroud)

以下查询也收到相同的错误:

https://graph.microsoft.com/beta/sites/root/Lists/{List ID}/permissions
Run Code Online (Sandbox Code Playgroud)

一年前有人问过非常类似的问题,答案是不可能。

现在可以吗?如果是的话我做错了什么?

Mar*_*eur 7

List或资源文档均不ListItem显示permissions为有效的属性或关系。

如果它List是一个文档库,那么您可以使用关联DriveItem来查看它的permission集合:

GET /v1.0/sites/root/lists/{list-id}/items/{item-id}/driveitem/permissions
Run Code Online (Sandbox Code Playgroud)

例如,/v1.0/sites/root/lists/eacf1ff2-7f98-4f71-963a-44e0cf35f608/items/4/driveitem/permissionsGraph Explorer中执行将返回:

GET /v1.0/sites/root/lists/{list-id}/items/{item-id}/driveitem/permissions
Run Code Online (Sandbox Code Playgroud)