问题标签 [azure-sas]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
87 浏览

azure - Azure 在到期格式上获取用户委派失败

我正在尝试使用 REST API 为 Azure 存储获取用户委托 SAS 令牌。

我有一个帐户,该帐户具有存储帐户所需的角色,并且该帐户已成功通过身份验证并从登录端点返回了 Bearer 令牌。

当我请求用户委托密钥时,我不断收到以下错误:

我提交的正文是从Azure docs复制的,:

知道我做错了什么或错过了什么导致失败吗?

在 Azure 上分配的角色是:

Azure 用户角色

以及请求标头:

0 投票
1 回答
119 浏览

webhooks - 没有身份验证的 Azure 事件中心侦听器

我想将 Azure 事件中心作为 WebHook 注册到不支持任何标头/正文身份验证的第三方应用程序,只是一个简单的 URL。

我在 Azure 事件中心文档或门户中看不到允许我在没有 SAS 的情况下设置侦听器的任何地方?我知道这会使事件中心不安全,但是,因为它只是侦听有效负载并将其写入 Azure Blob 存储,我很乐意接受这个风险。

如果无法在没有任何身份验证的情况下设置 Azure 事件中心,我考虑设置 Azure 自动化 Runbook 以公开 Webhook。Runbook 会将有效负载传递到处理身份验证的 Azure 事件中心。这是可接受的做法吗?

还有其他已知的解决方法吗?

0 投票
1 回答
200 浏览

azure - Azure IoT Hub IoT 设备页面显示权限错误

在 Azure IoT 中心的“IoT 设备”页面上,出现错误:

  1. 我检查了共享访问策略iothubowner具有所有权限(注册表读/写、服务连接和设备连接)
  2. 我是订阅的唯一用户
  3. 我检查了活动日志,它显示我已成功运行 Get all IoTHub Keys 操作。

其他潜在背景:

  • 我最近一直在使用 ARM 模板和 SAS 策略来启用从 IoT 中心生命周期事件 --> 事件中心 --> Azure 函数触发的 Azure 函数。删除/添加资源时,我是否有可能以某种方式删除了所需的 SAS 策略?
  • 我一直在创建/使用 IoT 中心的消息路由
  • 我一直在使用 ARM 模板和他们最近创建的资源组来预配/删除非 IoT 中心资源。

知道 Azure 为什么说缺少权限吗?下一个调试步骤是什么?

0 投票
1 回答
169 浏览

azure - 签名不匹配。使用的签名字符串是 rl

我正在尝试为 blob 创建 Azure SAS。但是,我收到身份验证失败错误。无论我尝试什么,我都无法构建格式良好的 stringToSign 或签名。

错误说:

“签名不匹配。使用的签名字符串是 rl 2021-03-11T08:08:46Z 2021-03-12T08:08:46Z /blob/{myAccountName}/quickstartcontainer/sampleFile2813061026464365578.txt 2020-02-10 b”

我的 stringToSign 是:

我的 SAS 令牌 uri 是:

加密函数为:

如何为我的 sas uri 生成格式良好的签名?

0 投票
1 回答
124 浏览

azure - Microsoft.StorageSync 频繁发起 Returns Storage Account SAS Token 操作

当前的 Azure 设置:

我的存储帐户上有一个私有文件共享(使用私有链接设置),它与我的 Azure 文件同步服务(当前不是私有)连接。我有一个同步组设置,添加了可以端点,指向私有文件共享。

问题:

底层的 Microsoft.StorageSync 服务(服务原理)不断地从存储帐户请求 SAS 令牌,从而淹没我们的日志。当云端点添加到同步组时,问题就开始了——此时没有配置服务器端点,但正如我测试的那样,即使设置了完整的同步并正常工作,问题仍然存在。将文件同步到文件共享没有问题,常量日志是问题所在。

Q1:这是预期的行为吗?
Q2:为什么会发生这种情况,有没有办法阻止这些日志?

细节

存储帐户:标准 GZRS ,StorageV2,热
文件共享:事务优化,5 TiB
文件同步:Vanilla 部署无需额外更改

所有这些都使用 ARM 模板进行部署。

描述:

常量日志截图

由于文件共享上的私有端点设置,我已经检查了这种可能性,但这不是问题。

我已经在防火墙和虚拟网络设置中将“允许受信任的 Microsoft 服务访问此存储帐户”标记为例外。

另一个观察结果是,即使在文件同步服务被删除数小时后,此问题仍然存在。

0 投票
1 回答
217 浏览

azure-blob-storage - 通过浏览器 javascript 生成 Azure blob 用户委托 SAS 的问题

我一直在尝试创建一个网页以允许我:

  1. 使用 msal-browser 库生成 Windows 身份平台登录弹出窗口以获取不记名令牌。
  2. 使用它从 blob rest api 获取用户委托密钥,以及
  3. 使用密钥生成用户委托 SAS 并列出我的容器的内容。

我已经到了生成 SAS 代码的步骤,但我生成的签名无效。我已经做了很多寻找答案的工作,但我自己无法确定问题,需要一些帮助。

从我获得不记名令牌并检索用户委托密钥(有效)开始:

接下来我构建我的“StringToSign” - 格式基于https://docs.microsoft.com/en-us/rest/api/storageservices/create-user-delegation-sas

根据 msdn,在构建了 StringToSign 之后,我们需要生成“HMAC-SHA256(URL.Decode(UTF8.Encode(StringToSign)))”。我希望文档为您提供示例输入和输出,以便您在被迫创建该功能时可以验证该功能。

这是我放在一起的 HMAC 函数:

像这样得到一个 HMAC:

并最终将该值添加到此 URL 并在 Postman 中使用:

回复:

正如建议的那样,这些字段存在一些问题。StringToSign 中的字段是否应该与作为查询参数传递给 Blob REST API 的字段完全匹配?我确定我已经读过 StringToSign 必须为任何未使用的可选参数包含一个空字符串 - 不确定如何将其作为 GET 请求查询参数处理。[1]:https ://gauravmantri.com/2020/02/21/avoiding-authorizationfailed-error-when-hand-crafting-shared-access-signature-for-azure-storage/#disqus_thread

0 投票
0 回答
49 浏览

azure - 天蓝色 SAS | 错误 | 确保 Authorization 标头的值正确形成,包括签名

我有将数据发送到 Azure SAS 的详细信息。

存储帐户名称:acountname123 Blob 容器名称 - containername123

SAS URI: https ://acountname123.blob.core.windows.net/containername123?sv=2019-12-12&si=xxinboundpolicy&sr=c&sig=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

我试图从soapui 调用它,但是它给出了与授权标头相关的错误。你能帮我解决我需要在授权标头中传递的内容吗?

我按照以下链接 https://docs.microsoft.com/en-us/rest/api/storageservices/put-blob https://docs.microsoft.com/en-us/azure/storage/common/storage-sas -overview?toc=%2fazure%2fstorage%2fblobs%2ftoc.json

SOAP 用户界面

谢谢亚坦

0 投票
4 回答
86 浏览

azure - 音频文件的 Azure SAS 到期

我们的音频文件存储在 Azure Blob 存储中。

为用户提供播放音频文件的 SAS URL 链接。SAS URL 的有效期为 5 分钟。但是,对于长音频文件(比如 10 分钟),音频流在 5 分钟后播放音频时停止,因为令牌过期,这是正确的做法。

但是,解决此问题的正确方法是什么?客户端是否在到期时间之前向后端请求新的 SAS 令牌?

0 投票
1 回答
94 浏览

azure-functions - Blob SAS URI 字符在作为查询参数传递到 Azure 函数应用程序时解码

我想将图像文件的 SAS URI 作为查询参数传递给 Azure Functions。但是当我在 GET 调用中传递以下 URL 时,来自“sig”部分的一些字符会被解码 https://ABCD.blob.core.windows.net/images/test.jpg?sp=r&st=2021-05-06T11: 30:21Z&se=2022-05-06T19:30:21Z&spr=https&sv=2020-02-10&sr=b&sig=JuPyAR%2F5WNeSVXj4G%2Fft9QDMzL%2BtXSywSS375jZpjXQ%3D

上面的 URL 变为 https://ABCD.blob.core.windows.net/images/test.jpg?sp=r&st=2021-05-06T11:30:21Z&se=2022-05-06T19:30:21Z&spr=https&sv= 2020-02-10&sr=b&sig=JuPyAR/5WNeSVXj4G/ft9QDMzL+tXSywSS375jZpjXQ=

%2F 到 / %2B 到 + %3D 到 =

因此,当我尝试访问 blob 时,出现错误

System.Private.CoreLib:执行函数时出现异常:FUNCTIONNAME。System.Net.Requests:远程服务器返回错误:(403)服务器未能验证请求。确保 Authorization 标头的值正确形成,包括签名..

我正在使用以下代码访问 URI

string image = req.Query["image"];

0 投票
1 回答
201 浏览

python - 如何通过 Python 将 blob 数据移动到 Snowflake

我正在尝试将数据从 ADLS blob 移动到雪花表。

我可以对 UI 做同样的事情。

用户界面遵循的步骤:

在此处输入图像描述

生成了以下 SAS 令牌:

能够在 Snowflake Web UI 中使用上述令牌加载表:

我正在尝试对 Python 做同样的事情:

代码中生成的 SAS 令牌:

通过 python 生成 sas 令牌时,我无法使用 List 权限。

我面临以下错误:

将来我可能会在该文件夹中列出 csv 文件。

任何帮助表示赞赏。谢谢。