如何基于App-ID限制Azure企业应用仅访问特定M365 SharePoint站点
你的思路完全可行,不存在偏差。你提到的offlice_access_scope为拼写误差,实际是offline_access,该scope仅用于获取刷新令牌,本身不决定数据访问范围,访问范围由应用分配的权限+访问控制策略共同决定,具体实现步骤如下:
1. 调整应用权限配置
- 先移除企业应用已分配的全局级SharePoint或Microsoft Graph权限(例如
Sites.ReadWrite.All这类覆盖全租户站点的权限) - 重新分配站点级受限权限:
- 若通过Microsoft Graph访问SharePoint,分配
Sites.Selected应用权限 - 若直接调用SharePoint REST API,分配对应读写等级的
Sites.<权限等级>.Selected应用权限
权限配置完成后需要租户全局管理员或SharePoint管理员完成同意授权。
- 若通过Microsoft Graph访问SharePoint,分配
2. 给应用绑定指定站点的访问权限
该操作无法在Azure Portal界面完成,可通过PowerShell实现,示例命令如下:
# 安装SharePoint Online PnP模块(已安装可跳过) Install-Module PnP.PowerShell # 连接到租户SharePoint管理中心 Connect-PnPOnline -Url https://<你的租户前缀>-admin.sharepoint.com -Interactive # 给目标应用授予指定站点的读写权限,可根据需求调整为Read仅读权限 Grant-PnPAzureADAppSitePermission -AppId <你的企业应用客户端ID> -DisplayName <应用展示名称> -Site <目标SharePoint站点完整URL> -Permissions ReadWrite
3. 访问限制验证
配置完成后,使用应用获取的访问令牌尝试访问租户内其他未授权的SharePoint站点,会返回403禁止访问错误,仅可访问你已授权的指定站点,限制生效。
注意:如果应用曾经被授予过全局级的SharePoint/Graph站点访问权限,必须完全移除所有全局权限后,站点级限制才会生效。
内容的提问来源于stack exchange,提问作者Stefan
相关产品推荐
相关产品推荐

