我正在数据科学部门担任 DE,该部门不属于我们的 IT 部门。我们正在制作一款需要以编程方式映射 Sharepoint 用户访问权限的产品(用户 A:[folder1、folder2、folder3]) 对于特定 Sharepoint 站点,包括所有子文件夹。
问题是,我们的 IT 人员不是开发人员 - 他们通过 Web 控制台管理我们的 Microsoft 生态系统,并且他们的部分工作是外包的。但是,他们可以为我提供对 SP 的 API 访问权限。
我会要求他们为我提供对某些 Sharepoint 站点的 Sharepoint API 访问权限,并授予我足够的权限,以便能够找出每个文件夹的所有权限(特别是如果它们是继承的且未明确设置的)。我很确定他们不知道什么权限足以执行此操作。
我的初始测试将包括使用具有足够权限级别的 Graph API。
要使用 SharePoint REST API 获取 SharePoint 用户对特定页面和文件夹的权限,请按照以下步骤操作:
获取文件夹或文件的角色分配: 您可以使用以下 REST API 调用检索文件夹或文件的角色分配:
GET /_api/web/GetFileByServerRelativeUrl('/sites/yoursite/Shared Documents/yourfolder/yourfile')/RoleAssignments
对于文件夹:
GET /_api/web/GetFolderByServerRelativeUrl('/sites/yoursite/Shared Documents/yourfolder')/RoleAssignments
展开角色定义和用户: 您可以展开
RoleAssignments
来获取详细的权限信息(例如用户及其角色):
GET /_api/web/GetFolderByServerRelativeUrl('/sites/yoursite/Shared Documents/yourfolder')/RoleAssignments?$expand=Member,RoleDefinitionBindings
这将为您提供用户/组列表 (
Member
) 以及他们所拥有的角色 (RoleDefinitionBindings
)。
检查继承: 要检查权限是继承的还是唯一的,请使用以下命令:
GET /_api/web/GetFolderByServerRelativeUrl('/sites/yoursite/Shared Documents/yourfolder')/ListItemAllFields/HasUniqueRoleAssignments
false
,则文件夹或文件继承权限。true
,则该文件夹或文件的权限是唯一的。GET /_api/web/GetFolderByServerRelativeUrl('/sites/yoursite/Shared Documents/yourfolder')/RoleAssignments?$expand=Member,RoleDefinitionBindings
此请求将返回用户/组及其对该文件夹的权限。