如何限制SharePoint Rest API仅访问指定站点的列表?
你之前的问题出在权限范围(Scope)设置为租户根级别,所以不管Right是FullControl还是Edit,都会获得全租户站点的访问权限。要限制到指定站点或列表,需将Scope指向目标资源的具体URL,以下是具体示例:
1. 仅允许访问指定站点
将Scope设为目标站点的完整URL,比如你的目标站点是https://yourtenant.sharepoint.com/sites/TargetSite,权限设为Edit(按需替换为Read/FullControl):
<AppPermissionRequests AllowAppOnlyPolicy="true"> <AppPermissionRequest Scope="https://yourtenant.sharepoint.com/sites/TargetSite" Right="Edit" /> </AppPermissionRequests>
2. 仅允许访问指定站点下的特定列表
如果需要更严格的权限,只开放站点内某个列表的访问权限,可使用列表名称或GUID(GUID更稳定,不受列表改名影响):
使用列表名称示例
<AppPermissionRequests AllowAppOnlyPolicy="true"> <AppPermissionRequest Scope="https://yourtenant.sharepoint.com/sites/TargetSite/lists/Documents" Right="Edit" /> </AppPermissionRequests>
使用列表GUID示例
<AppPermissionRequests AllowAppOnlyPolicy="true"> <AppPermissionRequest Scope="https://yourtenant.sharepoint.com/sites/TargetSite/_api/web/lists('{12345678-1234-1234-1234-1234567890AB}')" Right="Edit" /> </AppPermissionRequests>
注:列表GUID可从列表设置页面的URL中获取,格式类似
{12345678-1234-1234-1234-1234567890AB}
替换说明
- 将
yourtenant替换为你的租户域名 TargetSite替换为目标站点的名称Right参数可根据需求调整:Read(只读)、Edit(编辑权限)、FullControl(完全控制)- 配置后需重新在
appinv.aspx提交权限请求,由对应站点或租户管理员完成授权
内容的提问来源于stack exchange,提问作者user3551399
相关产品推荐
相关产品推荐

