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

如何为SharePoint Online特定站点配置Azure AD App-Only非全局权限

SharePoint Online站点级App-Only权限配置方案对比

一、Azure AD App-Only实现站点级权限的正确方式

你之前碰到的全局权限问题,是因为直接在Azure AD中分配了SharePoint全局权限(例如Sites.FullControl.All),实际上Azure AD App-Only完全支持站点级权限授予,无需宽泛的全局权限,具体实现方式如下:

方法1:使用PowerShell(Microsoft Graph模块)

  1. 安装并连接Microsoft Graph PowerShell模块:
Install-Module Microsoft.Graph -Scope CurrentUser
Connect-MgGraph -Scopes "Sites.FullControl.All" # 仅需临时全局权限用于配置,完成后可移除
  1. 获取目标站点的ID:
Get-MgSite -Filter "webUrl eq 'https://yourtenant.sharepoint.com/sites/YourTargetSite'"
  1. 为应用授予该站点的指定权限(示例为只读权限,可按需调整):
New-MgSitePermission -SiteId "你的站点ID" -Permissions @{Read=1} -GrantedToIdentities @{Application=@{Id="你的Azure AD应用ID"; DisplayName="应用名称"}}

配置完成后,可移除Azure AD中给应用分配的全局SharePoint权限,仅保留站点级权限即可。

方法2:使用Microsoft Graph API

发送POST请求到Graph端点,直接为应用添加站点权限:

POST https://graph.microsoft.com/v1.0/sites/{site-id}/permissions
Content-Type: application/json

{
  "grantedToIdentities": [
    {
      "application": {
        "id": "你的Azure AD应用ID",
        "displayName": "应用名称"
      }
    }
  ],
  "permissions": {
    "read": true,
    "write": false
  }
}

二、是否改用传统SharePoint App-Only(XML权限定义)?

传统SharePoint App-Only基于Add-in模型,确实可以通过应用清单的XML配置直接限定权限到单个站点集,例如在AppManifest.xml中添加:

<AppPermissionRequests AllowAppOnlyPolicy="true">
  <AppPermissionRequest Scope="http://sharepoint/content/sitecollection" Right="Read" />
</AppPermissionRequests>

之后在目标站点集的「添加应用」中安装该应用,即可获得对应站点的权限。

但需权衡两种方案的优缺点:

  • 优先选择Azure AD App-Only(站点级):属于微软主推的现代身份模型,与Azure生态集成更紧密,支持Microsoft Graph API,未来兼容性更好,且权限管理更灵活(可通过Graph随时调整站点权限)。
  • 仅在特定场景使用传统SharePoint App-Only:如果你的应用依赖旧版SharePoint Server API(例如部分CSOM旧方法),或者需要更简单的站点绑定流程,可以考虑这种方式,但需注意该模型处于维护状态,微软未来的功能更新会优先面向Azure AD App-Only。

内容的提问来源于stack exchange,提问作者JakeUT

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 23:11:10