Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在Outlook加载项中存储凭据_Javascript_Security_Outlook Web Addins - Fatal编程技术网

Javascript 如何在Outlook加载项中存储凭据

Javascript 如何在Outlook加载项中存储凭据,javascript,security,outlook-web-addins,Javascript,Security,Outlook Web Addins,我正在寻找在Outlook加载项中存储第三方API凭据的正确、安全的方法。在不同的存储选项中,只有not表示在设置中存储凭据,而不是将凭据放在何处,因此我认为漫游设置可以。然后我遇到了关于漫游设置的信息,上面说那也不是正确的位置 然后问题就变成了:什么是正确的地方?我应该构建自己的存储解决方案并将凭据存储/加密到文件或cookie中吗?这也不是很安全,因为我们讨论的基本上是在Iframe中运行的web应用程序。您可以像Outlook本身对其POP3/SMTP/IMAP4密码所做的那样使用/Win

我正在寻找在Outlook加载项中存储第三方API凭据的正确、安全的方法。在不同的存储选项中,只有not表示在设置中存储凭据,而不是将凭据放在何处,因此我认为漫游设置可以。然后我遇到了关于漫游设置的信息,上面说那也不是正确的位置


然后问题就变成了:什么是正确的地方?我应该构建自己的存储解决方案并将凭据存储/加密到文件或cookie中吗?这也不是很安全,因为我们讨论的基本上是在Iframe中运行的web应用程序。

您可以像Outlook本身对其POP3/SMTP/IMAP4密码所做的那样使用/Windows API函数。数据只能在用于加密数据的本地Windows帐户下解密,因此不能将其带到其他计算机并解密


我认为您无法从JavaScript访问这些函数。这是针对OWA加载项的,不是针对Outlook应用程序的,是吗?

我假设您无法为您的API实现另一个授权方案(基于令牌、cookies等),并且您必须进行基本身份验证和验证。如果您使用的是ASP.NET,那么在所有示例可用的情况下,添加另一个更适合web客户端的身份验证方案(例如Office web加载项)可能非常容易

话虽如此,对我来说,最好的选择是使用HTML5存储或cookie存储(如果不是通过浏览器实现的话)来存储您的凭证

应用程序是iFramed这一事实其实没什么大不了的。这些存储(HTML5:sessionStorage/localStorage)依赖于域分离,这意味着您将放置凭据的存储槽将不会被其他应用程序看到,即使是那些生活在父iFrame上的应用程序


您也可以考虑这样一个事实,即您可以为同一域中的Web插件和API服务。它们都是web应用程序

你能告诉我们更多关于“第三方”API的信息吗。当你说“第三方”时,我想这不是你的web应用程序,它既不是Microsoft API(EWS、outlook API、office365等),也不是你的web应用程序,对吗?这个api如何安全?除非它只支持基本身份验证,否则您可以检索某种令牌或授权代码,您必须保留这些令牌或授权代码,这比保留原始凭据更安全。您是对的,“第三方”可能是错误的术语。我指的是我们自己的web API,Outlook插件正在为其构建。一种从Outlook中访问服务的方法。API使用基本身份验证(通过SSL)。您找到解决方案了吗?正如您所建议的,我使用了HTML 5本地存储,它似乎工作正常。我将把这个回答标记为正确答案。非常感谢。我们谈论的是Office 365附加模块(仍然可以在本地安装),其工具于2015年发布。它们是运行特殊JS库的HTML应用程序。此处的更多信息:无法帮助您使用web加载项,抱歉。我更新了你帖子的标签。问题是,新的加载项不仅适用于Office 365 web客户端,还可以用于Office桌面软件。因此,我觉得outlook web加载项标记并不完全正确。不过,我主要责怪微软,因为十年来,他们至少在三个不同的方面重复使用相同的名称(Office插件、Office应用程序)。任何谷歌搜索都会出错,我100%同意。我也不介意自己找到一个好的解决方案。如果您想要任何安全性,HTML5本地存储可能是您能做的最好的。您可以使用Office.context.roamingSettings,但密码可能不是您要存储在邮箱中的内容。实际上,为Office插件重命名应用程序是个坏主意。称它们为web加载项并不完全是坏事,因为它们基于web技术,即使它们面向桌面应用程序,如常规Office桌面客户端。更新:这种方法也适用于Outlook桌面。