如何通过 SharePoint REST 在 SharePoint Online 中查找网站所有者 API/Graph API

How to find Site Owners in SharePoint Online via SharePoint REST API/Graph API

我正在尝试查找所有获准访问 SharePoint Online 网站的用户。

我可以使用以下请求通过 SharePoint REST API 做到这一点:

https://<tenant>.sharepoint.com/sites/<site>/_api/web/RoleAssignments?$expand=Member/Users,RoleDefinitionBindings

响应包含一些隐藏的技术帐户、已明确授予权限的用户以及成员和所有者的默认 SharePoint 网站用户组。 SharePoint 网站成员组显示以下登录名:

c:0o.c|federateddirectoryclaimprovider|<UUID>

其中 <UUID> 是 Azure 组的 ID。然后我可以使用 Graph API 解析它的成员。但是,这里缺少一个在 SharePoint UI 中作为网站所有者列出的用户。

但是,SharePoint 站点所有者组显示以下登录名:

c:0o.c|federateddirectoryclaimprovider|<UUID>_o

其中 <UUID> 与之前的 id 完全相同。因此,我无法使用图表 API 解析其成员,因为 UUID 为我提供了成员组,而包含后缀的 UUID 是无效的组标识符。

此外,SharePoint REST API 似乎将此所有者组(以及成员组)视为用户而不是组,因此我找不到使用以下方法解析其成员的方法这个API要么。

那么我该如何解析作为网站所有者的实际用户?

非常感谢!

是不是就这么简单?

https://<tenant>.sharepoint.com/sites/<site>/_api/site/owner

这里描述了解决方案:https://docs.microsoft.com/en-us/sharepoint/modern-experience-sharing-permissions#team-site-permissions-and-office-365-groups

When you add owners or members to the Microsoft 365 group, they're given access to the SharePoint site along with the other group-connected services. Group owners become site owners, and group members become site members.

这意味着您可以通过以下请求检索网站所有者:

https://graph.microsoft.com/v1.0/groups/<UUID>/owners