Teams桌面端任务模块中Application Proxy因登录认证问题无法工作
解决方案
针对Teams桌面端出现的Refused to display 'https://login.microsoftonline.com/' in a frame because it set 'X-Frame-Options' to 'deny'错误,可通过以下步骤解决:
启用Application Proxy嵌入式登录
登录Azure门户,找到你的企业应用,进入「Application proxy」配置页,开启「Enable embedded signing」选项。该设置会调整Azure AD认证流程的安全头策略,允许应用在iframe环境中加载登录页面,避免X-Frame-Options的拦截。校验Teams应用Manifest配置
检查应用manifest文件,确保:validDomains列表包含你的Application Proxy域名;- 任务窗口的
contentUrl指向正确的代理站点地址; - 若使用任务模块,确认
taskInfo.url配置符合Teams的iframe加载规则。
切换为弹出式认证流程
如果嵌入式登录仍有问题,改用Teams JS SDK的弹出式认证方法,避免在iframe中加载登录页:microsoftTeams.authentication.authenticate({ url: "https://你的代理域名.com", width: 600, height: 535, successCallback: (result) => { // 处理登录成功逻辑 }, failureCallback: (error) => { // 处理登录失败逻辑 } });排查Azure AD条件访问策略
检查是否有条件访问策略限制了桌面端的iframe登录,比如强制特定认证方式或阻止嵌入式登录。调整相关策略,允许Teams桌面端环境下的认证请求。
补充说明
移动端和浏览器端正常的原因:浏览器端Teams默认用弹出窗口加载登录页,而非iframe;移动端Teams的WebView环境对X-Frame-Options的限制逻辑与桌面端不同,Application Proxy会自动适配移动端的认证流程。
内容的提问来源于stack exchange,提问作者Oleksa
相关产品推荐
相关产品推荐

