Microsoft Graph - 为什么需要根网站读取访问权限才能访问另一个网站集中的子网站?

Microsoft Graph - Why is root site read access needed to access subsite in another site collection?

我正在尝试访问作为嵌套子网站一部分的列表的项目,如下所示:

https://{mytenant}.sharepoint.com/
    vendorSiteCollection/
        vendorAppSite/
            vendorList

我的测试用户 vendorAppSite 子站点只有 读取权限。我已删除所有其他网站的读取权限,包括位于 https://{mytenant}.sharepoint.com.

root 网站集

如果我在浏览器中导航到这里:

https://{mytenant}.sharepoint.com/sites/{vendorSiteCollection}/{vendorAppSite}/Lists/{vendorList}/AllItems.aspx

然后我看到了列表,正如预期的那样。

但是,当我在 Graph Explorer 中发出此请求时:

https://graph.microsoft.com/v1.0/sites/root:/sites/{vendorSiteCollection}/{vendorAppSite}:/lists/{vendorList}?$expand=items($expand=fields)

我收到 403 禁止响应:

{
    "error": {
        "code": "accessDenied",
        "message": "The caller does not have permission to perform the action.",
        "innerError": {
            "request-id": "15e2087d-8ae5-46e3-abee-4ab165629dfb",
            "date": "2018-04-05T12:08:16"
        }
    }
}

我希望能够通过 API 读取列表项,就像我可以在 SharePoint Online 中看到列表项一样 UI。

当权限级别设置成这样时,如何使用 Microsoft Graph API 阅读项目?

旁注:当测试用户对 https://{mytenant}.sharepoint.comroot 网站集具有读取权限时,API 将按预期工作。但此解决方法对我们不起作用,因为我们不希望我们的用户具有对 root 网站集的读取权限。

此问题似乎已在 MS Graph 中得到修复。