Microsoft Teams Adal静默身份验证失败(iframe沙箱)

时间:2018-07-02 13:02:11

标签: javascript microsoft-teams adal.js

我们已经为Microsoft Teams开发了一个自定义标签,并希望按照本文https://docs.microsoft.com/en-us/microsoftteams/platform/concepts/authentication/auth-silent-aad中的说明使用Adal对用户进行静默身份验证 它在开发环境中运行良好,但在生产环境中运行失败! 控制台显示以下错误消息:

  

不安全的JavaScript尝试从URL为“ https://teams.microsoft.com”的框架开始对起源为“ https://login.microsoftonline.com/common/oauth2/authorize?response_type=id_token&client_id=(...)”的框架进行导航网址“ https://teams.microsoft.com”。尝试在顶级窗口进行导航的框架已被沙箱化,但是未设置“允许顶部导航”或“通过用户激活允许顶部导航”的标志。

我不理解为什么行为在开发和生产环境中会有所不同? 我该如何解决?

谢谢

2 个答案:

答案 0 :(得分:1)

您需要通过为iframe属性提供一些属性值来允许sandbox元素上的顶部导航

<iframe src="yourpage.html" sandbox="allow-top-navigation"></iframe>

看看here,以了解有关这些属性值的更多信息。

答案 1 :(得分:0)

将此标签放入您的标签页

window.onload = function () {

        if (parent.document.getElementById("extension-tab-frame")) {
            var iframe = parent.document.getElementById("extension-tab-frame");
            iframe.sandbox = 'allow-forms allow-modals allow-popups allow-pointer-lock allow-scripts allow-same-origin allow-top-navigation';
        }
    }