【发布时间】:2018-03-28 18:28:01
【问题描述】:
需要从客户端 JavaScript 生成 SAS 令牌,我访问了很多博客,没有任何用于生成 SAS 令牌的 JavaScript 代码的实时代码示例。 我想要一个用于从 JavaScript 生成 SAS 令牌的工作代码。
【问题讨论】:
标签: javascript azure azure-storage
需要从客户端 JavaScript 生成 SAS 令牌,我访问了很多博客,没有任何用于生成 SAS 令牌的 JavaScript 代码的实时代码示例。 我想要一个用于从 JavaScript 生成 SAS 令牌的工作代码。
【问题讨论】:
标签: javascript azure azure-storage
在网上找到这个
使用服务器端后端生成令牌是有原因的。为了生成令牌,您需要帐户密钥。您可以很好地使用客户端 JavaScript 生成一个 SAS 令牌,但为了做到这一点,您需要将帐户密钥公开给您的客户端应用程序,这是一个很大的安全风险,因为如果有人拥有您帐户的密钥,他们可以这样做任何与您的存储帐户有关的东西。因此,建议您使用服务器端应用程序创建 SAS 令牌,以免暴露您的帐户密钥。
如果您仍希望使用客户端 JavaScript 创建 SAS 令牌,请参阅构建服务 SAS。基本上转到该链接底部标题为“构造签名字符串”的部分,并为此用 JavaScript 编写代码,并使用帐户密钥计算签名。
【讨论】:
Azure 存储团队已发布 Azure Storage JavaScript Client Library for Browsers 来解决您的使用案例。几个月前有一个official announcement 解释了它背后的基本原理。该库仍处于预览阶段,我找不到任何不同的 nuget 或 bower 包。
正如其他人已经指出的那样,在您的应用程序中使用 SAS 时,请遵循公告中提到的推荐开发实践。幸运的是,using Shared Access Signatures (SAS) 这些天有很好的记录 - 以及对Azure Storage security 的更一般的指南。
【讨论】: