You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置MS Graph最小应用权限仅读取指定SharePoint站点文档库?

仅访问指定SharePoint站点文档库的最小权限配置

问题原因

你现在用的肯定是租户级的全局权限(比如Sites.Read.All或Files.Read.All),这类权限会让应用能访问租户里所有SharePoint站点的内容——哪怕你代码里指定了单个siteID,应用依然有访问其他站点的权限,这就超出了你需要的范围。

最小权限方案

要实现只让应用访问指定站点的文档库,必须用站点级的应用权限,而不是租户级的全局权限。具体操作如下:

  1. 先删掉全局权限
    去Azure AD应用注册页面找到你的应用,在「API权限」里删掉所有租户级的SharePoint/Graph权限(比如Sites.Read.All、Files.Read.All这些带All后缀的)。

  2. 给目标站点加站点级权限
    有两种方式可以操作:

    • 直接在SharePoint站点里配置
      1. 打开你要访问的目标站点,点右上角设置图标 → 「站点权限」→ 「高级权限设置」→ 「应用权限」。
      2. 点「添加应用权限」,搜索你的Azure AD应用名称,选中它。
      3. 权限类型选「SharePoint」,权限级别选**「读取」**(对应Graph的Sites.Read权限),最后点「添加」。
    • 用PowerShell快速配置
      先安装PnP.PowerShell模块,然后运行:
      Connect-PnPOnline -Url "https://你的租户域名.sharepoint.com/sites/目标站点名" -Interactive
      Register-PnPApp -AppId "你的应用ID" -Permissions "Sites.Read" -Scope Site
      
  3. 验证效果
    你的代码不用改:

    var siteDocumentLibraries = await client.Sites[siteID].Drives.Request().GetAsync();
    

    现在应用只能拿到指定站点的文档库,要是试着访问其他站点的Drives,会直接返回权限不足的错误,完全符合最小权限的要求。

额外说明

  • 如果需要修改文档库内容,就把权限换成**「写入」**(对应Graph的Sites.ReadWrite),同样限制在站点级就行。
  • 站点级权限只对目标站点生效,不会涉及租户里的其他站点,完美匹配你的需求。

内容的提问来源于stack exchange,提问作者G.Mich

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 18:07:28