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

Azure AD企业应用调用Microsoft Graph API无法访问SharePoint私有站点

企业应用访问SharePoint私有站点的权限配置方案

问题根因

你为企业应用分配的租户级Sites.ReadWrite.AllMicrosoft Graph应用权限,默认仅支持访问组织内的公开站点,私有站点需要单独为该企业应用(服务主体)授予站点级权限才可访问。
SharePoint前台的「添加成员」面板默认不支持搜索服务主体对象,因此无法通过该路径直接添加企业应用权限。

配置步骤

方法一:通过PnP PowerShell配置(推荐)

  1. 本地安装PnP PowerShell模块,以管理员身份运行PowerShell执行命令:
Install-Module -Name PnP.PowerShell -Force
  1. 连接到需要授权的私有SharePoint站点,使用SharePoint全局管理员或站点集管理员账号完成身份验证:
Connect-PnPOnline -Url https://<你的租户前缀>.sharepoint.com/sites/<私有站点路径> -Interactive
  1. 为企业应用授予站点权限,权限可选值为Read(只读)、Write(读写)、FullControl(完全控制),按需选择即可:
Grant-PnPAzureADAppSitePermission -AppId "<你的企业应用ID>" -DisplayName "<你的企业应用名称>" -Permissions Write

方法二:通过Microsoft Graph API配置

如果不方便安装PowerShell模块,可直接调用Graph API完成配置:

  1. 为用于调用配置接口的账号或应用授予Sites.FullControl.All应用权限并完成管理员同意。
  2. 调用POST接口,接口地址为https://graph.microsoft.com/v1.0/sites/<目标私有站点ID>/permissions,请求体如下:
{
  "roles": ["write"],
  "grantedToIdentities": [{
    "application": {
      "id": "<你的企业应用ID>",
      "displayName": "<你的企业应用名称>"
    }
  }]
}

验证与注意事项

  • 权限配置完成后最多等待15分钟生效,再调用原站点查询接口即可正常返回结果,不再出现Requested site could not be found错误。
  • 站点级权限仅针对当前配置的私有站点生效,符合最小权限安全原则,不建议为企业应用授予租户级Sites.FullControl.All全量权限。
  • 可执行Get-PnPAzureADAppSitePermission命令查看当前站点已配置的应用权限,验证配置是否生效。

内容的提问来源于stack exchange,提问作者Grégoire Thibaud

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 23:45:03