如何获取Sharepoint用户对特定页面和文件夹的权限

问题描述 投票:0回答:1

我正在数据科学部门担任 DE,该部门不属于我们的 IT 部门。我们正在制作一款需要以编程方式映射 Sharepoint 用户访问权限的产品(用户 A:[folder1、folder2、folder3]) 对于特定 Sharepoint 站点,包括所有子文件夹。

问题是,我们的 IT 人员不是开发人员 - 他们通过 Web 控制台管理我们的 Microsoft 生态系统,并且他们的部分工作是外包的。但是,他们可以为我提供对 SP 的 API 访问权限。

我会要求他们为我提供对某些 Sharepoint 站点的 Sharepoint API 访问权限,并授予我足够的权限,以便能够找出每个文件夹的所有权限(特别是如果它们是继承的且未明确设置的)。我很确定他们不知道什么权限足以执行此操作。

  1. 最重要的是,是否有一个标准且简单的方法来获取这些信息?

我的初始测试将包括使用具有足够权限级别的 Graph API。

  1. 如果 Graph API 是可行的方法,我需要什么权限才能确定特定 SP 站点的所有用户和文件夹的继承权限?
python sharepoint permissions microsoft-graph-api
1个回答
0
投票

要使用 SharePoint REST API 获取 SharePoint 用户对特定页面和文件夹的权限,请按照以下步骤操作:

使用 SharePoint REST API 获取权限的步骤

  1. 获取文件夹或文件的角色分配: 您可以使用以下 REST API 调用检索文件夹或文件的角色分配:

    GET /_api/web/GetFileByServerRelativeUrl('/sites/yoursite/Shared Documents/yourfolder/yourfile')/RoleAssignments
    

    对于文件夹:

    GET /_api/web/GetFolderByServerRelativeUrl('/sites/yoursite/Shared Documents/yourfolder')/RoleAssignments
    
  2. 展开角色定义和用户: 您可以展开

    RoleAssignments
    来获取详细的权限信息(例如用户及其角色):

    GET /_api/web/GetFolderByServerRelativeUrl('/sites/yoursite/Shared Documents/yourfolder')/RoleAssignments?$expand=Member,RoleDefinitionBindings
    

    这将为您提供用户/组列表 (

    Member
    ) 以及他们所拥有的角色 (
    RoleDefinitionBindings
    )。

  3. 检查继承: 要检查权限是继承的还是唯一的,请使用以下命令:

    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

此请求将返回用户/组及其对该文件夹的权限。

© www.soinside.com 2019 - 2024. All rights reserved.