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

Posted

技术标签:

【中文标题】SharePoint Online - 内容编辑器 Web 部件 - 机密管理【英文标题】:SharePoint Online - Content Editor Web Part - Secret Management 【发布时间】:2017-11-29 11:08:29 【问题描述】:

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

我的问题是,是否有人可以指导我使用 SharePoint Online 内容编辑器 Web 部件存储机密的正确策略,以供 TypeScript/javascript 使用。

谢谢

【问题讨论】:

【参考方案1】:

老实说,正确的策略是根本不使用 JavaScript 进行敏感的 API 调用。敏感的 API 调用只能在服务器端进行(这样任何“秘密”密钥、密码等都不会到达浏览器)。

在某处存储秘密值并使用 JavaScript 访问它的问题在于,JavaScript 必须在途中对值进行解码才能使用它。这意味着精明的用户可以查看您页面的源代码,打开他们的浏览器 JS 工具,并执行相同的命令来获取值。不利于安全。

本地 SharePoint 实际上为此提供了一个名为 Secure Store Service 的解决方案,但它之所以有效,部分原因在于它是为在服务器端代码中使用而设计的。到目前为止,Microsoft 尚未在 SharePoint Online 中为该服务发布客户端 API(可能是因为与 JS 一起使用会不太安全,正如我所提到的)。

“正确”的策略取决于您的目标。您至少有 2 个选项:

    如果您希望 真正 为您的密钥/密码/其他内容提供安全性,您需要开发一个 SharePoint Online“托管加载项”,该加载项位于另一台服务器或 Azure 等云服务上. SharePoint 提供使用 iframe 包装托管加载项的“应用程序部件”,并允许您将它们添加到页面,因此您可以使用它将您的应用程序添加到 SharePoint 页面并让它显示来自 API 调用的结果(非常类似于如何内容编辑器 Web 部件的外观)。 如果您不需要需要真正的安全性并且“隐蔽性安全”就足够了,那么我建议将秘密值存储在 SharePoint 列表中并对其进行一些“假”加密像 Base64 编码。然后在从列表中读取该值后,在 JavaScript 中对其进行解码。如果您想添加更多的模糊性,您可以使用 PowerShell 或 JavaScript 使列表隐藏,这样用户就不会在他们的浏览器中看到它,但这也意味着您必须添加/编辑通过代码获取值。

【讨论】:

谢谢巴特。这就是我一直在寻找的。​​span>

以上是关于SharePoint Online - 内容编辑器 Web 部件 - 机密管理的主要内容,如果未能解决你的问题,请参考以下文章

SharePoint Online 为Modern Page添加脚本

SharePoint Online 为Modern Page添加脚本

SharePoint Online 为Modern Page添加脚本

SharePoint Online 创建我的审批列表

区域组的 SharePoint Online 受众定位[关闭]

SharePoint Online 表单定制表头