如何限制SharePoint Online站点仅允许AAD指定应用的用户访问
配置缺失项及修复方案
核心问题
你当前只完成了给指定AAD应用授予访问权限的配置,并未对SharePoint站点做访问来源限制,默认情况下用户可以通过任意客户端、原生接口直接用账号密码访问站点资源,自然可以绕过指定的TenantID和AppID校验。
需补充的配置步骤
1. 开启SharePoint站点的应用访问严格限制
使用SharePoint Online Management Shell执行以下配置,限制站点仅允许已授权的AAD应用访问:
- 安装模块并连接租户管理中心:
Install-Module -Name Microsoft.Online.SharePoint.PowerShell Connect-SPOService -Url https://<你的租户前缀>-admin.sharepoint.com
- 配置目标站点的应用访问策略:
Set-SPOSite -Identity <目标站点完整URL> -AppAccessPolicyRestriction Strict
Strict模式开启后,所有未在站点完成授权的应用发起的访问请求都会被直接拒绝,即使用户本身有站点权限也无法通过非授权应用操作
2. 配置Azure AD侧的访问限制
- 进入Azure AD「企业应用」面板,找到所有默认允许访问SharePoint的内置客户端(如SharePoint Online PowerShell、PnP PowerShell、浏览器端SharePoint应用等),开启这些应用的「需要分配」选项,且不要给你的操作用户分配这些内置应用的访问权限
- 可选:如需租户级全局限制,可创建Azure AD条件访问策略:
- 分配对象选择需要限制的用户/用户组
- 云应用选择
Office 365 SharePoint Online - 授权规则中指定仅允许你创建的
Update Sharepoint应用访问,拦截其他所有客户端应用的请求 - 会话控制开启应用强制限制
3. 校验站点应用授权配置
确认你之前在/_layouts/15/AppInv.aspx页面提交的权限请求XML的Scope范围和你要限制的站点完全匹配,避免授权范围过大导致其他应用也能继承权限访问。
验证方法
配置完成后先尝试直接用账号密码通过普通PowerShell登录SharePoint执行修改操作,确认返回权限拒绝错误;再通过你预设的TenantID、AppID环境变量配合m365 cli登录,确认可以正常操作即配置生效。
内容的提问来源于stack exchange,提问作者Peter
相关产品推荐
相关产品推荐

