问题标签 [sas-token]
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.
javascript - 为 Azure API 管理创建的 SAS 令牌无效
我正在尝试创建一个使用 JavaScript (Express.js)SAS Token
与Azure API Management Rest API通信。但是使用它实际上会导致我使用401 Unauthorized
. 我正在使用以下代码行。
上面的代码片段返回给我的是这样的:(
SharedAccessSignature uid=integration&ex=2021-04-21T10:48:04.402Z&sn=**O8KZAh9zVHw6Dmb03t1xlhTnrmP1B6i+5lbhQWe**=
为了安全起见隐藏了一些字符,但字符数是真实的)
请注意,上述 SAS 令牌中只有一个尾随破折号,而所有示例中的 SAS 令牌和从 API 管理门户手动创建的 SAS 令牌都有 2 个 破折号=
==
有什么我做错了吗?
提前致谢。
azure-blob-storage - 远程服务器返回错误:(404) Not Found。在使用 blob 存储中的 sas 令牌时
我有一个将文件上传到 azure blob 存储的应用程序。我最初使用连接字符串从 blob 存储上传和下载文件。现在,我需要使用 sas 令牌从 blob 上传和下载文件,但我收到“远程服务器返回错误:(404)未找到”。下载我使用连接字符串上传的文件。
azure - 使用 ARM 模板创建 SAS 令牌:错误 InvalidValuesForRequestParameters
我正在尝试从 ARM 模板生成 SAS 令牌,以允许我的模板随后访问 blob 存储(包括链接模板)中的资源。SAS 令牌应该存储在我也在此模板中创建的保险库中。存储帐户独立存在(在另一个 RG 中)
但是,我收到以下错误:
我的模板有这个变量和行来生成 SAS 令牌:
我尝试了参数的几种变体,但找不到问题所在,并且该错误并没有真正帮助我尝试(除其他外):
- 删除参数前面的“签名”(服务而不是签名服务)
- 服务、资源类型和权限的各种组合
- 不同的时间(更短,更长......)
azure-blob-storage - 客户端为 blobstorage 创建 sastoken 时限制权限
我有一个 blobstorage,我在其中放置文件供外部合作伙伴列出文件并阅读它们。我认为 SAS 令牌将是外部合作伙伴访问容器和读取文件的完美方式。
所以我创建了一个 SAS 令牌并意识到如果我不想每 10 分钟创建一次新的 sas 令牌并将它们发送给合作伙伴,我需要将令牌的过期日期设置在很远的将来,如果sastoken 泄露或令牌过期的那一天,解决方案将停止工作。
因此,为了解决这个问题,我可以让客户端通过使用 StorageSharedKeyCredential 类给他们一个访问密钥和帐户名来创建一个 sastoken。这很好用,也许效果很好,因为现在是客户端决定 sas 令牌应该拥有什么权限。所以客户端现在可能会上传文件/创建容器等。
所以我的问题是:当客户端创建 sastoken 时,有什么方法可以限制 sas 令牌拥有的权限,所以我们的外部合作伙伴只能读取/列出我决定的特定容器中的文件。
最好的问候马格努斯
python - 在 Python 中为 Azure Blob 存储中的目录生成 SAS 令牌
我正在尝试使用 Python 来限制不同用户可以访问的 Azure 存储的哪些部分。
我一直在寻找可以为存储容器中的特定目录生成 SAS 令牌的代码。我希望在我的目录上生成一个 SAS 令牌,可以让我访问它包含的文件/blob。(就像它在 azure.portal 上的工作方式一样,我可以在其中右键单击我的目录并按“生成 SAS”。但是我找不到任何可以存档的 Python 代码。我能找到的只有以下 3 个功能:
在这里找到:https ://docs.microsoft.com/en-us/python/api/azure-storage-blob/azure.storage.blob?view=azure-python
我已经尝试使用“generate_blob_sas()”函数,但使用我的目录名称而不是文件/blob。
但是,当我尝试使用此 url 时,我得到以下响应:
我还有其他方法可以在目录上生成 SAS 令牌吗?
python - 我应该如何/何时生成 Azure datalake g2 SAS 令牌?
我正在使用 azure.storage.filedatalake 模块在 Python 中开发一个项目,以便将文件上传到我的第 2 代数据湖。
在我的项目中,我使用这些文件的 URL(因为它们主要是我需要提供给前端网页的图像)。为了确保只有某些用户可以访问某些文件,我在这些文件上使用了 SAS 令牌。
鉴于 SAS 令牌应该有一个过期时间,我的想法是,每次用户登录到我的系统时,都会生成一个 SAS 令牌并保存在他们的会话中。此令牌可以持续例如 6 小时。如果他们重新登录到我的站点,则会为他们生成一个新的 SAS。然而,他们的旧 SAS 仍将在另外 6 小时内有效,并且该令牌在此之前简单未使用,但有效。
- 以前使用的 SAS 令牌在到期之前仍然存在,这是一个安全问题,还是只是一个非问题以及它应该如何工作?
- 如果每个用户都生成了一个他们个人的 SAS 令牌,并且无限期地持续下去会更好吗?
- 我在网页前端显示用户 SAS 令牌是否存在安全问题?(因为文件链接中需要它)
html - 使用 Azure Api 管理服务在 HTML 页面中隐藏视频 URL
我在存储中存储了一个视频文件BLOB
。我需要流式传输此视频,但我不希望用户进入开发者模式并在浏览器上复制/粘贴 URL,以便他们下载。
我尝试了很多方法来控制它,但我失败了。我使用SAS token
了过期时间,但是,用户仍然可以在该过期时间内下载内容。
我最新的方法是将SAS Token
启用的视频 URL 隐藏在Azure API Management Service
. 这会给我一个不同的 URL(不是 BLOB 存储 URL),我将在 HTML 页面上公开它。这种方法会奏效吗?
javascript - 在 Azure Blob 存储上上传大型 Blob 时延长令牌过期时间
我有一个 API,它为给定的 blob 名称生成并返回 SAS 令牌。然后在我的前端应用程序中,我使用 API 提供的响应(凭据)以及通过浏览器直接选择的文件来处理上传。
我正在使用blockBlobClient.uploadData函数。这工作正常并且上传成功完成,但是我注意到 SAS 令牌被重用于作为该 blob 的一部分上传和处理的所有块(我需要为 > 1GB 的文件做好准备),因此如果我的服务器返回一个 5 分钟的过期令牌,并且我的用户的连接速度很慢或部分中断,文件可能需要 5 分钟以上才能完成上传,这最终会从 Azure Blob API 向浏览器抛出错误,并且文件上传将停止。
我知道,一种方法当然是发行更长寿命的令牌来解决这些情况,或者可能根据文件大小设置过期时间;但我想知道是否有一种有效且不那么复杂的方式来以某种方式延长令牌的到期时间(不会丢失我当前对该 blob 的上传进度),以便即使达到第一个到期时间,文件也可以正确上传. 到目前为止还没有在文档中找到任何东西。
我将 NodeJs 用于我的后端 API,带有@azure/storage-blob npm 包(我也在我的前端应用程序中使用它)
希望这已经足够清楚了。
感谢您提供的任何帮助!
python - Azure ML:将文件上传到 Step Run 的输出 - 身份验证错误
在 Azure ML 管道中的 PythonScriptStep 期间,我将模型作为 joblib pickle 转储保存到 Azure Blob 存储中的 Blob 容器中的目录,该目录是我在设置 Azure ML 工作区期间创建的。之后,我尝试使用将此模型文件上传到步骤运行的输出目录
前段时间,当我使用 azureml-sdk 版本 1.18.0 创建脚本时,一切正常。现在,我已经更新了脚本的功能,并在此过程中将 azureml-sdk 升级到了 1.33.0 版本,上传功能现在遇到以下错误:
据我从 azureml.core.Run 类的代码和随后的函数调用中可以看出,Run 对象尝试使用 SAS-Token-Authentication 将文件上传到步骤运行的输出目录(失败)。此文档文章在代码中链接(但我不知道这是否与问题有关):https ://docs.microsoft.com/en-us/rest/api/storageservices/create-service-sas#service -sas-示例
有没有人也遇到过这个错误并且知道是什么原因造成的或者如何解决?
最好的,乔纳斯