Azure active directory OAuth2/OpenID身份验证登录重定向未显示在phone Office Web app或IOS Office Web app中

Azure active directory OAuth2/OpenID身份验证登录重定向未显示在phone Office Web app或IOS Office Web app中,azure-active-directory,office365-apps,Azure Active Directory,Office365 Apps,我目前正在尝试开发一个Office web插件,集成在Outlook中(阅读和撰写)。 除了身份验证过程之外,一切正常。 实际上,我们必须从Azure AD中验证用户以访问另一个应用程序(我们自己的应用程序使用Azure AD体系结构,我们需要在其中调用一些web API) 我使用的解决方案来自Richard diZerega的这篇伟大文章: 此解决方案(我们选择最后一种方案)在我们的桌面和基于Web的解决方案中运行良好 但它显然不适用于手机网络应用程序和IOS应用程序 问题来自允许用户登录的

我目前正在尝试开发一个Office web插件,集成在Outlook中(阅读和撰写)。
除了身份验证过程之外,一切正常。
实际上,我们必须从Azure AD中验证用户以访问另一个应用程序(我们自己的应用程序使用Azure AD体系结构,我们需要在其中调用一些web API)

我使用的解决方案来自Richard diZerega的这篇伟大文章:

此解决方案(我们选择最后一种方案)在我们的桌面和基于Web的解决方案中运行良好

但它显然不适用于手机网络应用程序和IOS应用程序

问题来自允许用户登录的弹出窗口

实际上,window.open、window.location.replace等。。。不要在Outlook框架中“按预期”工作。
每次它都会打开一个弹出窗口。(当用户使用桌面或web Outlook应用程序时,这是一个很好的解决方案) 我记得在某个地方读到,加载插件的Office窗口是一个安全的窗口,我们不能在其中进行任何重定向

我尝试使用ADAL.js,当然支持隐式流,但问题是相同的。我们需要将框架重定向到Azure AD登录页面


最后,问题是:如何在Outlook web加载项中处理OAuth2/OpenID身份验证,以及何时我们希望它可以用于所有类型的设备?

默认情况下,Adal.Js中的登录是一个页面重定向。你没有弹出问题。Js获取idtoken最初用于您自己的后端。它还执行iframe请求以获取API端点的访问令牌。Office365 api支持CORS api请求,您可以使用adal.js发送请求。如果在配置中定义端点,则令牌将附加到请求

您可以在此处阅读示例:

或在此: