SharePoint Online - 内容编辑器 Web 部件 - 机密管理
SharePoint Online - Content Editor Web Part - Secret Management
我白天是一名 C# 软件专家,也是一名 SharePoint 初学者。我正在将内容编辑器 Web 部件与 SharePoint Online 一起使用,但不知道如何安全地存储机密。我的 SharePoint 应用程序必须与另一个应用程序通信,因此我必须使用自定义凭据。因为我处于开发阶段,所以我能够在我的 Type Script 文件中对 creds 进行硬编码,但这不是我长期想要的。
我的问题是,是否有人可以指导我使用 SharePoint Online 内容编辑器 Web 部件存储秘密的正确策略,以供 TypeScript/JavaScript。
谢谢
老实说,正确的策略是根本不对敏感的 API 调用使用 JavaScript。敏感的 API 调用只能在服务器端进行(这样任何 "secret" 密钥、密码等永远不会到达浏览器)。
将秘密值存储在某处并使用 JavaScript 访问它的问题是 JavaScript 必须在途中某处解码该值才能使用它。这意味着精明的用户可以查看您页面的源代码,打开他们的浏览器 JS 工具,并执行相同的命令来获取值。不利于安全。
内部部署的 SharePoint 实际上有一个名为 Secure Store Service 的解决方案,但它之所以起作用的部分原因是它专为在服务器端代码中使用而设计。到目前为止,Microsoft 尚未在 SharePoint Online 中为该服务发布客户端 API(可能是因为如我所述,将其与 JS 一起使用会不太安全)。
"proper" 策略取决于您的目标。您至少有 2 个选项:
- 如果您希望 真正 安全地保护您的秘密 key/password/whatever,您需要开发 SharePoint Online "Hosted Add-In",它位于另一台服务器或Azure 等云服务。 SharePoint 提供 "app parts" 用 iframe 包装托管加载项并允许您将它们添加到页面,因此您可以使用它将您的应用程序添加到 SharePoint 页面并让它显示来自 API 调用的结果(与内容编辑器 Web 部件的外观非常相似)。
- 如果您不需要真正的安全并且"security by obscurity"就足够了,那么我建议将秘密值存储在SharePoint列表中并做一些"fake" 像Base64编码一样对它进行加密。然后从列表中读取后解码 JavaScript 中的值。如果你想增加更多的隐蔽性,你可以使用 PowerShell 或 JavaScript 使列表 隐藏 这样用户就不会在他们的浏览器中看到它,但这也意味着你必须通过代码 add/edit 值。
我白天是一名 C# 软件专家,也是一名 SharePoint 初学者。我正在将内容编辑器 Web 部件与 SharePoint Online 一起使用,但不知道如何安全地存储机密。我的 SharePoint 应用程序必须与另一个应用程序通信,因此我必须使用自定义凭据。因为我处于开发阶段,所以我能够在我的 Type Script 文件中对 creds 进行硬编码,但这不是我长期想要的。
我的问题是,是否有人可以指导我使用 SharePoint Online 内容编辑器 Web 部件存储秘密的正确策略,以供 TypeScript/JavaScript。
谢谢
老实说,正确的策略是根本不对敏感的 API 调用使用 JavaScript。敏感的 API 调用只能在服务器端进行(这样任何 "secret" 密钥、密码等永远不会到达浏览器)。
将秘密值存储在某处并使用 JavaScript 访问它的问题是 JavaScript 必须在途中某处解码该值才能使用它。这意味着精明的用户可以查看您页面的源代码,打开他们的浏览器 JS 工具,并执行相同的命令来获取值。不利于安全。
内部部署的 SharePoint 实际上有一个名为 Secure Store Service 的解决方案,但它之所以起作用的部分原因是它专为在服务器端代码中使用而设计。到目前为止,Microsoft 尚未在 SharePoint Online 中为该服务发布客户端 API(可能是因为如我所述,将其与 JS 一起使用会不太安全)。
"proper" 策略取决于您的目标。您至少有 2 个选项:
- 如果您希望 真正 安全地保护您的秘密 key/password/whatever,您需要开发 SharePoint Online "Hosted Add-In",它位于另一台服务器或Azure 等云服务。 SharePoint 提供 "app parts" 用 iframe 包装托管加载项并允许您将它们添加到页面,因此您可以使用它将您的应用程序添加到 SharePoint 页面并让它显示来自 API 调用的结果(与内容编辑器 Web 部件的外观非常相似)。
- 如果您不需要真正的安全并且"security by obscurity"就足够了,那么我建议将秘密值存储在SharePoint列表中并做一些"fake" 像Base64编码一样对它进行加密。然后从列表中读取后解码 JavaScript 中的值。如果你想增加更多的隐蔽性,你可以使用 PowerShell 或 JavaScript 使列表 隐藏 这样用户就不会在他们的浏览器中看到它,但这也意味着你必须通过代码 add/edit 值。