如何使用SharePoint API管理指定文件夹的访问人员权限?
完全可以借助SharePoint相关API实现指定文件夹的访问人员管理,以下是两种常用API的实用操作方式:
Microsoft Graph API 操作步骤
获取文件夹权限列表
发送GET请求:GET /sites/{site-id}/drive/items/{folder-id}/permissions返回结果包含该文件夹所有用户/组的权限条目及对应权限级别。
为用户添加文件夹权限
发送POST请求:POST /sites/{site-id}/drive/items/{folder-id}/permissions请求体示例:
{ "recipients": [ { "email": "target-user@domain.com" } ], "roles": ["write"] // 可选值:read、write、owner等 }更新用户现有权限
发送PATCH请求:PATCH /sites/{site-id}/drive/items/{folder-id}/permissions/{permission-id}请求体示例:
{ "roles": ["owner"] }移除用户文件夹权限
发送DELETE请求:DELETE /sites/{site-id}/drive/items/{folder-id}/permissions/{permission-id}
SharePoint REST API 操作步骤
获取文件夹权限分配
发送GET请求:GET /_api/web/getfolderbyserverrelativeurl('/sites/your-site/folder-path')/ListItemAllFields/RoleAssignments返回结果包含角色分配的用户/组ID及对应权限级别ID。
断开权限继承(必要步骤)
如果文件夹继承了父级权限,需先断开继承才能单独设置权限:POST /_api/web/getfolderbyserverrelativeurl('/sites/your-site/folder-path')/ListItemAllFields/breakroleinheritance(copyroleassignments=true, clearsubscopes=false)参数说明:
copyroleassignments=true保留现有继承权限,false则清空。添加用户权限
发送POST请求(替换用户ID和权限级别ID):POST /_api/web/getfolderbyserverrelativeurl('/sites/your-site/folder-path')/ListItemAllFields/RoleAssignments/addroleassignment(principalid={user-id}, roledefid={role-def-id})常用权限级别ID:
1073741826(只读)、1073741827(编辑)、1073741829(完全控制)。移除用户权限
发送POST请求(替换用户ID和权限级别ID):POST /_api/web/getfolderbyserverrelativeurl('/sites/your-site/folder-path')/ListItemAllFields/RoleAssignments/removeroleassignment(principalid={user-id}, roledefid={role-def-id})
关键注意事项
- 调用API需具备对应权限:Microsoft Graph需
Files.ReadWrite.All或Sites.ReadWrite.All权限;SharePoint REST需当前用户拥有该文件夹的管理权限。 - 批量管理权限时,可结合API批量请求功能减少调用次数。
内容的提问来源于stack exchange,提问作者Oussama Flahi
相关产品推荐
相关产品推荐

