【发布时间】:2022-02-03 15:51:38
【问题描述】:
尝试使用 Microsoft 的 Graph API 来遍历 Sharepoint 站点,以便在用户出国时查找并删除对站点的访问。
图形/Sharepoint API 文档:https://docs.microsoft.com/en-us/graph/api/resources/site?view=graph-rest-1.0
我使用 Get Sites 端点获得了所有网站的列表:
https://graph.microsoft.com/v1.0/sites
然后我过滤掉个人/OneDrive 站点,并尝试使用 List Site Permissions 端点来尝试获取管理员/成员:https://docs.microsoft.com/en-us/graph/api/site-list-permissions?view=graph-rest-beta&tabs=http
不幸的是,我得到一个空的 value 数组来响应所有网站:
{'@odata.context': "https://graph.microsoft.com/v1.0/$metadata#sites('<domain>.sharepoint.com%asdfasdgsdf-ca8f-4ec1-bb3e-sdfsdfsdgsdf%2Cbed949c3-3f83-47c2-a263-sdfsdfsdgasdf')/permissions", 'value': []}
我知道查询没问题,因为如果我将其更改为点击站点列表端点,我会得到一个包含各种值的响应:
{'@odata.context': "https://graph.microsoft.com/v1.0/$metadata#sites('<domain>.sharepoint.com%sdfsdfsdgsd-7dce-4564-9de8-eb2dfc02eb86%sdfsdgsdfsdf-ab8c-464f-a77d-sdfsdfsdgsdg')/lists", 'value': [{'@odata.etag': '"sfwsdgsdg-aff1-4295-8443-sdfsdgasdf,7"', 'createdDateTime': '2020-08-26T16:17:41Z', 'description': 'This library contains items that have been modified or deleted but must remain available due to eDiscovery holds. Items cannot be modified...
...
因此,我传递给权限请求的站点 ID 必须正确。那么这是错误的端点吗?或者,Graph API 是否缺少此功能,而我唯一的解决方案是通过 SP Powershell 模块?
我已经尝试过 API 的 v1.0 和 beta 版本。
谢谢!
【问题讨论】:
-
这能回答你的问题吗? Permissions from Graph API seem to be empty
-
很遗憾没有。看起来从来没有任何解决方案,而且我确实拥有引用的 API 权限。