Azure active directory AAD登录office加载项时出现X-Frame-Option拒绝错误

Azure active directory AAD登录office加载项时出现X-Frame-Option拒绝错误,azure-active-directory,adal,office-addins,office-js,adal.js,Azure Active Directory,Adal,Office Addins,Office Js,Adal.js,我正在使用Adal.js为AAD集成构建Office插件。我的外接程序需要一些权限 当我在OneNote中打开外接程序并尝试从adal.js调用login时,它会请求login.microsoftonline.com并给出X-Frame-Option拒绝错误。 我想这是因为office插件在iFrame中运行,我如何解决这个问题 login.microsoftonline.com/common/oauth2/authorize?response_type=id_token&cl…nt-S

我正在使用Adal.js为AAD集成构建Office插件。我的外接程序需要一些权限

当我在OneNote中打开外接程序并尝试从adal.js调用login时,它会请求login.microsoftonline.com并给出X-Frame-Option拒绝错误。
我想这是因为office插件在iFrame中运行,我如何解决这个问题

login.microsoftonline.com/common/oauth2/authorize?response_type=id_token&cl…nt-SKU=Js&x-client-Ver=1.0.13&nonce=ced03385-f1ca-4206-bb23-6c3e8338a0d2:1 Refused to display 'https://login.microsoftonline.com/common/oauth2/authorize?response_type=id_…ient-SKU=Js&x-client-Ver=1.0.13&nonce=ced03385-f1ca-4206-bb23-6c3e8338a0d2' in a frame because it set 'X-Frame-Options' to 'DENY'.

在office web加载项中使用OAUTH流进行身份验证是一个已知的问题。可以找到对该问题的更好解释

由于点击劫持在互联网上的流行,它是常见的 防止登录页面显示在框架内。这个 HTML中的X-FRAME-Options元标记使提供者可以轻松地 在广泛的或特定于域/源的环境中实施此保障措施 基础。不“可框架”的页面将无法在 办公室加载项

因此,您需要依赖于弹出机制。一句话,验证流将在弹出窗口上进行,以避免引发问题

上面的链接有点过时,因为它指出弹出窗口是一种必要的邪恶。微软意识到这个问题,最近提出了解决这个问题的方法

让我们回到我们的Adal.js问题。我认为您应该停止使用adal.js,因为它不应该在我们的外接程序web上下文中使用。即使是他们。如果可用,他们不使用dialogAPI

您应该尝试利用此dialogAPI(如果可用),否则您将遇到许多问题(停用的弹出窗口、安全区域等)


您最好的选择是实现自己的流机制,或者按照

中的说明使用。请注意,DialogAPI还不能用于Outlook Online或任何版本的OWA。@lgaud很好!您需要检查dialogApi的可用性,并在弹出窗口中实现回退。查看我编写的这个示例,了解有关主题重要更新的更多信息:DialogAPI受所有现代MS Office版本的支持。看见