如何配置IIS仅允许SharePoint Online访问私有页面?
方法1:IP地址范围限制(基础拦截)
- SharePoint Online有公开的出站IP地址段,你可以获取这些IP段后,在IIS的IP地址和域名限制模块中添加允许规则,仅放行SPO的IP范围。
- 注意:SPO的IP段可能会定期更新,需要同步维护;该方法能拦截非SPO发起的直接访问,但无法抵御IP伪造攻击,适合普通安全需求场景。
方法2:验证Referer请求头(低成本拦截)
- SharePoint Online通过iframe加载外部页面时,请求会携带包含SPO站点域名的Referer头(例如
https://yourtenant.sharepoint.com/sites/yoursite)。 - 在IIS中配置URL重写规则实现拦截:
- 安装IIS URL重写模块
- 新建自定义规则,设置条件为
{HTTP_REFERER}不匹配正则表达式^https://yourtenant\.sharepoint\.com/.*$(替换为你的SPO站点域名,规则更严格) - 动作为“拒绝访问”,返回403状态码
- 注意:Referer头存在被伪造的可能,但对普通外部用户门槛较高,适合大多数场景。
方法3:Azure AD身份验证(最高安全级别)
- 为IIS页面配置Azure AD身份验证,确保只有携带合法令牌的请求才能访问:
- 在Azure AD中注册IIS应用,授权SharePoint Online的服务主体访问权限
- 在IIS上安装Azure AD身份验证模块,配置应用ID与租户ID
- 在SPO的Web Part代码中,获取Azure AD令牌并在请求iframe页面时通过自定义Header携带
- IIS验证令牌有效性,仅放行合法请求
- 该方法能确保只有经过Azure AD授权的SPO合法用户才能访问,彻底杜绝未授权外部访问。
额外建议
- 尽量将IIS私有页面部署在内网,通过Azure应用网关或反向代理做前置访问控制,结合上述方法提升安全性。
- 测试时可通过浏览器开发者工具查看请求头,验证Referer或令牌的传递情况,确认拦截规则是否生效。
内容的提问来源于stack exchange,提问作者ASys
相关产品推荐
相关产品推荐

