Excel网页版卸载微软商店加载项触发X-Frame-Options报错咨询
问题现象
- 自研Excel加载项已正式上线微软商店,从商店侧执行的安装流程可正常运行
- 桌面版Excel环境下,该加载项的卸载操作可正常完成
- Excel网页版(已完成Chrome、Safari双浏览器环境测试)执行该加载项卸载时操作失败,控制台抛出如下报错:
Refused to display 'https://login.microsoftonline.com/' in a frame because it set 'X-Frame-Options' to 'deny'.
- 目前无法定位卸载流程中调用
https://login.microsoftonline.com/地址的触发逻辑,需要明确问题原因及对应的排查、解决路径
触发原因说明
这个报错的核心逻辑是:微软身份认证端点login.microsoftonline.com默认配置了X-Frame-Options: deny响应头,禁止自身页面被任何iframe嵌套加载,只要流程尝试在iframe上下文内拉起该登录地址,就会被浏览器安全策略直接拦截。
卸载操作触发该地址调用的常见原因分两类:
- 加载项自身配置问题:如果在加载项清单中配置了卸载回调、卸载触发的自定义webhook接口,且该接口配置了Azure AD强制认证规则,当接口检测到当前请求携带的认证令牌过期、权限不足时,会直接返回302响应跳转到登录端点。由于Excel网页版的加载项运行、管理逻辑全部在嵌套iframe中执行,这个iframe内的跳转就会触发安全拦截。
- Office网页版侧流程缺陷:Excel网页版执行加载项卸载操作时,会先校验当前用户对该加载项的管理权限,如果校验用的会话令牌过期,网页版会默认在当前操作所在的iframe上下文内尝试拉起认证流程,没有做顶层窗口跳转适配,直接触发登录端点的X-Frame-Options拦截,这类问题和加载项本身的代码逻辑无关。
排查与解决建议
- 第一步先定位请求来源,排查加载项自身配置问题
- 打开浏览器开发者工具的网络面板,勾选保留日志选项,复现卸载失败的全流程,筛选所有
login.microsoftonline.com相关的请求,查看请求的Referer字段:- 如果Referer指向你自己的加载项托管域名,定位对应接口的逻辑:修改接口的认证处理规则,令牌失效时不要直接返回302跳转到登录页,改为返回401状态码,交由Office宿主统一处理认证流程即可解决
- 检查加载项Manifest文件,确认没有配置多余的卸载触发回调、跨域资源跳转规则
- 打开浏览器开发者工具的网络面板,勾选保留日志选项,复现卸载失败的全流程,筛选所有
- 如果排查确认请求来源是Office网页版自身域名,按以下方式处理
- 临时用户侧规避方案:告知遇到问题的网页版用户,先在浏览器顶层窗口打开Office账户页面完成账号登录、刷新会话有效期后,再回到Excel网页版执行卸载操作,此时权限校验令牌有效,不会触发iframe内的登录跳转,可正常完成卸载
- 正式修复路径:通过微软合作伙伴中心的加载项支持通道提交问题,附带上复现步骤、控制台报错截图、网络请求日志,说明问题为Office网页版在iframe上下文内触发登录跳转违反了身份端点的安全限制,要求Office网页版团队调整认证拉起逻辑,将iframe内的登录跳转改为顶层窗口跳转,即可从平台侧彻底修复该问题
内容的提问来源于stack exchange,提问作者madireddy
相关产品推荐
相关产品推荐

