SharePoint Online - 内容编辑器Web部件 - 秘密管理

时间:2017-06-26 14:57:54

标签: sharepoint sharepoint-online

我白天是一名C#软件人,也是一名SharePoint初学者。我在SharePoint Online中使用内容编辑器Web部件,并且不知道如何安全地存储机密。我的SharePoint应用程序必须与另一个应用程序和todo通信,因此我必须使用自定义凭据。因为我处于Dev阶段,所以我能够在我的Type Script文件中硬编码,但这不是我想要的长期。

我的问题是,是否有人可以指导我使用由TypeScript / JavaScript使用的SharePoint Online Content Editor Web部件来存储机密的正确策略。

由于

1 个答案:

答案 0 :(得分:1)

老实说,正确的策略是不要使用JavaScript来进行敏感的API调用。敏感的API调用应该只在服务器端进行(这样任何"密码,密码等都不会到达浏览器)。

在某处存储秘密值并使用JavaScript访问它的问题是,JavaScript必须在整个过程中的某个位置解码该值才能使用它。这意味着精明的用户可以查看页面的源代码,打开浏览器JS工具,并执行相同的命令来获取值。对安全性不太好。

内部部署SharePoint实际上有一个称为Secure Store Service的解决方案,但部分工作原理是它设计用于服务器端代码。截至目前,微软还没有在SharePoint Online中为该服务发布客户端API(可能因为在JS中使用它会不像我提到的那样安全)。

"适当"战略取决于你的目标。您至少有两个选择:

  1. 如果您希望真正的安全保护您的密钥/密码/无论如何,您需要开发一个SharePoint Online" Hosted Add-In"它存在于另一台服务器或Azure等云服务上。 SharePoint提供了应用程序部分"使用iframe包装托管加载项并允许您将它们添加到页面中,这样您就可以使用它将应用程序添加到SharePoint页面并让它显示API调用的结果(非常类似于内容编辑器Web部件的方式)看)。
  2. 如果您 需要真正的安全保障,并且需要通过默默无闻的安全保障。很好,然后我建议将秘密值存储在SharePoint列表中,然后做一些"假的"加密就像Base64编码一样。然后从列表中读取后,在JavaScript中解码该值。如果您想添加更多的默默无闻,您可以使用PowerShell或JavaScript将列表隐藏,以便用户不会在浏览器中看到它,但这也意味着您拥有通过代码添加/编辑值。