10

我正在寻找在 Outlook 加载项中存储第三方 API 凭据的正确、安全的方法。这个不同存储选项的概述只是说不要在设置中存储凭据,而不是在哪里放置它们,所以我认为 RoamingSettings 是可以的。然后我进入这个页面,里面有关于 RoamingSettings 的信息,它说这也不是正确的位置。

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

4

2 回答 2

3

我假设您无法为您的 API 实现另一个授权方案(基于令牌、cookie 等),并且您遇到了基本身份验证及其问题。如果您使用的是 ASP.NET,并且所有示例都可用,那么添加另一个更适合 Web 客户端(例如 Office Web 加载项)的身份验证方案可能非常容易。

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

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

您还可以考虑这样一个事实,即您可以提供来自同一域的 Web 加载项和 api。它们都是 Web 应用程序!

于 2016-01-31T13:46:09.243 回答
0

您可以执行 Outlook 本身对其 POP3/SMTP/IMAP4 密码所做的操作 - 使用CredRead / CredWrite Windows API 函数。数据只能在用于加密数据的本地Windows帐户下解密,因此无法将其带到不同的机器上进行解密。

我认为您不能从 JavaScript 访问这些函数。这是针对 OWA 插件,而不是 Outlook 应用程序,是吗?

于 2016-01-29T13:03:00.507 回答