Office js iOS Outlook加载项不尊重对话框中外部站点的设置Cookie标头

Office js iOS Outlook加载项不尊重对话框中外部站点的设置Cookie标头,office-js,outlook-web-addins,Office Js,Outlook Web Addins,我有一个Outlook web加载项,它使用Office.js对话框API打开一个对话框,导航到外部(即不在我的加载项域上)身份验证登录页。当在对话框中加载该页面时,它会传回一个Set Cookie头,返回URL值设置为“我的加载项”中的某个页面,然后重定向到另一个外部站点以执行SAML身份验证(用户将谁配置为其SAML提供程序)。登录完成后,用户将被导航到身份验证登录域上的完成页面,然后该页面将读取最初设置的cookie,并使用cookie中的URL重定向回外接程序 这在桌面平台上运行良好,但

我有一个Outlook web加载项,它使用Office.js对话框API打开一个对话框,导航到外部(即不在我的加载项域上)身份验证登录页。当在对话框中加载该页面时,它会传回一个Set Cookie头,返回URL值设置为“我的加载项”中的某个页面,然后重定向到另一个外部站点以执行SAML身份验证(用户将谁配置为其SAML提供程序)。登录完成后,用户将被导航到身份验证登录域上的完成页面,然后该页面将读取最初设置的cookie,并使用cookie中的URL重定向回外接程序

这在桌面平台上运行良好,但是当通过Outlook IOS应用程序使用外接程序时,我发现设置Cookies标题似乎不起作用,因为当流到达完成页面时,没有Cookies存在

e、 g.(使用占位符URL),从加载的加载项函数文件

  • 外接程序在(加载自的外接程序所在的域)启动对话框

  • 该页面重定向到。Set Cookie头从服务器传回,值为ReturnURL=

  • 重定向到已配置的SAML登录页面,将返回url作为传递给SAML提供程序

  • 当用户成功登录时,他们将被重定向到。 完成页面尝试从cookie读取ReturnURL的值以导航回加载项,但iOS上的cookie中不存在ReturnURL

    • 还可以从代理工具监视请求中看到,在应该设置cookie之后,对auth helper的请求中不存在期望的cookie
从测试结果来看,在对话框中加载外接程序域中的页面时,设置Cookie标头似乎对这些页面有效,即,如果我在打开对话框的页面上传回设置Cookie,然后导航到我的外接程序域中的另一个页面,则Cookie将按预期设置,并且可以从第二个页面读取。但是对于外接程序域之外的页面,似乎无法设置cookie以供以后使用

Set-Cookie: ReturnURL=https://my-addin.com/finalize;Version=1;Path=/auth;Domain=auth-helper;Max-Age=86400;HttpOnly;Secure;SameSite=None
  • 返回的示例标题似乎不适用于iOS加载项对话框
有人能想到这里的解决办法、原因或解决方案吗

  • 我无法在外接程序之外修改页面的行为

  • 我重定向到的页面的X-Frame-Options设置为SameOrgin,因此我无法将其加载到对话框外部的隐藏iFrame中

  • 该流程适用于桌面Safari、Chrome、IE、Windows Outlook客户端、Mac Outlook客户端,此前在2019年9月被视为适用于iOS,这表明平台本身发生了变化

  • 在iOS设备上,Safari设置下的“防止跨站点跟踪”和“阻止所有Cookie”设置均已关闭


iOS设备已从OS 12.4.1升级到13.4.1,并且不再出现此问题。因此,我们将不得不建议用户升级iOS,因为我们还没有找到任何其他解决方法。

iOS设备已从OS 12.4.1升级到13.4.1,此问题不再发生。因此,我们将不得不建议用户升级iOS,因为我们还没有找到其他解决方法。

您使用的是哪个iOS版本?您是否可以共享外接程序的精简版本,以便我们在结束时尝试重新处理此问题?Outlook应用程序为4.34.1。iOS 12.4.1。我无法为此提供外接程序的精简版本,因为我没有任何可公开访问的外部站点可供您使用。外接程序代码应打开Office.context.ui.displayDialogAsync对话框,指向对话框页面。然后,对话框页面应重定向到另一个域上的站点,该站点将返回设置Cookies头。然后转到同一外部域上的另一页,尝试访问本应设置的cookie。您使用的是哪个iOS版本?您是否可以共享外接程序的精简版本,以便我们在结束时尝试重新处理此问题?Outlook应用程序为4.34.1。iOS 12.4.1。我无法为此提供外接程序的精简版本,因为我没有任何可公开访问的外部站点可供您使用。外接程序代码应打开Office.context.ui.displayDialogAsync对话框,指向对话框页面。然后,对话框页面应重定向到另一个域上的站点,该站点将返回设置Cookies头。然后转到同一外部域上的另一页,尝试访问本应设置的cookie。