如何为Microsoft Graph API守护程序获取管理员授权并配置特定SharePoint站点权限
核心说明
添加Sites.Selected权限后点击管理员同意,不会直接授予应用对整个租户所有站点的访问权,这个权限只是提供了绑定特定站点的框架,必须后续手动指定具体站点的权限范围。
步骤1:完成Sites.Selected权限的添加与管理员同意
- 进入Azure AD的「应用注册」,找到你的单租户应用
- 左侧栏选择「API权限」,点击「添加权限」
- 选择「Microsoft Graph」>「应用权限」,搜索并勾选
Sites.Selected,点击「添加权限」 - 返回「API权限」页面,点击「授予管理员同意(Default Directory)」——此操作仅确认应用可使用
Sites.Selected权限体系,不涉及具体站点访问权
步骤2:为应用绑定特定SharePoint站点的只读权限
Azure Portal无可视化配置界面,需通过PowerShell或Graph API操作:
方式1:PowerShell(需SharePoint Online管理员权限)
- 安装并连接SPO模块:
Install-Module -Name Microsoft.Online.SharePoint.PowerShell -Force Connect-SPOService -Url https://<你的租户域名>-admin.sharepoint.com
- 获取必要参数:
- 应用对象ID:在Azure AD应用注册的「概述」页面查看
- 目标站点ID/URL:可通过SharePoint站点的「设置>网站信息>查看全部网站信息」获取,或用
Get-SPOSite命令查询
- 授予只读权限:
Set-SPOsite -Identity <站点ID或完整URL> -AppPrincipalId <应用对象ID> -Permissions Read
方式2:Microsoft Graph API(需Sites.Manage.All或Sites.FullControl.All应用权限)
发送POST请求:
POST https://graph.microsoft.com/v1.0/sites/<站点ID>/permissions
请求体(JSON格式):
{ "roles": ["read"], "grantedToIdentities": [ { "application": { "id": "<应用对象ID>", "displayName": "<你的应用名称>" } } ] }
测试环境自建SharePoint站点的方法
若测试账号无可用站点,可自行创建:
- 登录SharePoint Online管理员中心:
https://<你的租户域名>-admin.sharepoint.com - 点击「创建站点」,选择「团队站点」或「通信站点」,按引导完成创建即可用于权限测试
内容的提问来源于stack exchange,提问作者alilland
相关产品推荐
相关产品推荐

