问题标签 [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.

0 投票
0 回答
240 浏览

java - 在 Java SE 客户端中使用 SAS 令牌认证

我正在编写一个简单的 Java 客户端,该客户端转到工作区服务器以检索一些数据。工作区服务器不允许公共连接,身份验证机制为“SAS 令牌身份验证”。

当我尝试连接到服务器时,我收到无效凭据的错误。当我尝试使用 Java 代码连接到 SAS 元数据服务器时,相同的凭据集可以正常工作。在 SAS EG 的问题中,我可以完全访问工作区。

SAS 研究所(我提交了支持跟踪)说我的连接需要支持 SAS 元服务器,换句话说,我应该与 SAS 元数据服务器建立活动连接,然后使用相同的凭据连接到选择的工作区服务器。工作区服务器反过来将根据 Metadataserver 上的活动连接列表验证凭据。

我可以做第一部分没有问题,我与元数据服务器建立连接,但是当我尝试连接到工作区服务器同时保持与元数据的连接时,我的连接被拒绝说用户名/密码不正确。

我使用了这个示例代码,其中我删除了在元数据上创建数据表/列的方法,而是在启动与元数据服务器的成功连接之后但在关闭它之前使用另一个方法启动具有相同凭据的工作区工厂。http://support.sas.com/documentation/cdl/en/omaref/63063/HTML/default/viewer.htm#p0zlnmq1vv8xgbn1hshp4rmw2btd.htm

我在LinkedIn上发布了这个,其中一些建议是关于令牌身份验证的,我不需要发送第二组凭据,我应该从元数据中获取一个令牌,使用它来连接。我发现的对令牌对象的唯一引用在这里:http: //support.sas.com/rnd/javadoc/93/Foundation/com/sas/services/user/UserContextInterface.html#SHAREDRESOURCEKEY_ENVIRONMENT

有什么一般性的建议吗?我在这里有什么概念上的错误吗?有没有人有连接到使用 SAS 令牌身份验证的工作场所服务器的工作示例?

问候, 瓦西里

0 投票
1 回答
515 浏览

java - 如何使用容器 SAS 和 Azure Java SDK 设置 RetryPolicy?

我正在实现一个 Android 应用程序,我需要使用容器 SAS 将图像上传到 blob 容器。

目前使用完整的端点凭据作为连接字符串,我可以CloudBlobClient使用以下代码向我添加重试策略:

现在,当我从帐户密钥切换到 SAS 时,我不知道如何CloudBlobClient使用容器中的 SAS 签名创建一个。我可以同时创建CloudBlobClientCloudBlobContainer使用带有 SAS 的 URL,但是客户端是使用匿名凭据创建的,并且无法与我的容器关联:

有没有办法RetryPolicy直接添加CloudBlobContainer或创建CloudBlobClient与我的容器类关联的已验证身份?

0 投票
0 回答
111 浏览

asp.net-mvc - 使用从视图传递的 SAS 字符串访问 MVC 控制器内的文本文件

我的 Azure 存储帐户在文件共享中存储了文本文件。

在视图中,用户选择一个文件进行“处理”,我的 JavaScript 例程将 sas (.accessibleUri) 传递给控制器​​函数(即函数 ProcessDataFile)。

Controller 函数从查询 (Request.Url.Query) 中获取 sas。

那么如何在 Controller 函数中打开和读取文件,以便处理它的内容呢?我试过了:

但是,这会引发异常:

ErrorMessage Microsoft.WindowsAzure.Storage.StorageException:远程服务器返回错误:(404)未找到。---> System.Net.WebException:远程服务器返回错误:(404)未找到。在 System.Net.HttpWebRequest.GetResponse() 在 Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync[T](RESTCommand`1 cmd, IRetryPolicy policy, OperationContext operationContext) --- 内部异常堆栈跟踪结束

这是SAS。注意最后的 ' 是因为我想确保字符串的前面或后面没有空格问题。 SAS 字符串

我的视图中包含允许用户下载文件的功能,只需单击“下载”超链接即可。我知道这就是 SAS 的优势所在:它使用户能够从视图(客户端页面)下载文件。

理所当然地,我应该能够让控制器函数做同样的事情(访问文件以获得读取能力,以便我可以处理它的内容)。

但是,在这一点上,我正在考虑简单地使用文件名,而是使用我的 AzureStorage 类来访问文件,从头再来(在第二次旅行中)。但我真的很想使用已经分配的 SAS 令牌,而不是重新发明轮子。

0 投票
2 回答
1234 浏览

azure-powershell - SAS 令牌作为 SecureString 不适用于使用 Azure PowerShell 的 ARM 模板部署

我有一堆嵌套的 ARM 模板,打算使用 Azure PS 进行部署。

做到这一点的唯一方法是将这些模板托管在 a 中Azure blob container,然后在中生成SAS token并发送这两个参数main ARM template(指向嵌套的参数)。

这是生成 SAS 令牌的 PS:

这是我的部署脚本的 2 个部分,它们将令牌传递给主 ARM 模板:

以下是主 ARM 模板的接收参数声明:

这是同一主 ARM 模板中的嵌套资源模板(恰好是 cosmos db):

当我运行这些时,我得到这个错误:

错误:代码=无效模板;消息=部署模板验证失败:“在第 16 行和第 39 列为模板参数“_artifactsLocationSasToken”提供的值无效。

SAS token如果我在嵌套模板资源(在主模板中)中硬编码并将类型从更改securestringstring,它就可以工作!我错过了什么?

0 投票
2 回答
272 浏览

azure - ComputerVision API 不允许带有 SAS 令牌的 BlobURL

我正在尝试使用Azure 计算机视觉 API (Azure 认知服务)分析我的图像

但问题是我的图像存储在具有私有访问权限的 Blob 容器中,这意味着如果没有 SAS 令牌,它将无法访问。因此,当我尝试使用我的图像 URL + SAS调用计算机视觉 API 时,它给出了错误的请求

您也可以在此站点中轻松重现此问题

在此处输入图像描述

0 投票
1 回答
573 浏览

azure - 使用自动生成的 SAS 令牌启用 Linux 诊断扩展的 Azure ARM 模板

我正在尝试使用新 VM 部署 arm 模板并设置 Linux 诊断扩展/LAD,而无需创建新的存储帐户,而是使用现有帐户。我发现这篇文章https://samcogan.com/generate-sas-tokens-in-arm-teamplates/使用“listAccountSas”,并在“ProtectedSettings”中设置:

“storageAccountSasToken”:“[listAccountSas(参数('existingStorageName'),'2018-07-01',变量('accountSasProperties')).accountSasToken]”

当我尝试部署模板时,验证期间出现错误:

"InvalidTemplate","message":"部署模板验证失败:'模板引用'myExistingStorageAccount'无效:找不到具有此名称的模板资源或资源副本。请参阅 https://aka.ms/arm-template -expressions/#reference了解使用详情。'."}

根据 MS:

当资源由其资源 ID 引用时,引用函数和 list* 函数不会创建隐式依赖项。要创建隐式依赖项,请传递部署在同一模板中的资源的名称。

但是,我尝试使用嵌套模板“创建”SAS 令牌并在输出中设置 sasToken.Id,稍后在我的主模板中调用带有 sastoken.Id 的诊断扩展:

但仍然得到与上述相同的错误。在此先感谢您的帮助!

0 投票
1 回答
324 浏览

linux - Azcopy 无法使用 sas 令牌从 azure 文件存储下载文件?

我正在尝试将文件下载到在 azure 上运行 CentOS 的 vm。linux盒子已经azcopy安装好了。我正在尝试使用生成的 SAS 令牌从 azure 文件存储下载文件,但无法下载。我是否误解了如何使用 SAS 令牌?

最终,我能够使用密钥而不是 SAS 令牌下载文件。所以我知道网址是正确的。

我使用 linux vm 的公共 ip 为存储帐户创建了一个 sas 令牌,然后将其复制并附加到文件 url。我创建了一个允许所有 IP 地址的 CORS 规则。我在我的本地机器上重复了这个(使用它的公共 ip)并且能够获取文件。当我在 vm 上运行相同的命令时,它失败了。

我尝试使用附加到 url 的 sas 令牌运行它,并将其作为单独的参数传递。

我不断得到

0 投票
2 回答
3895 浏览

azure - Azure SAS 令牌 AuthorizationResourceTypeMismatch

我已经创建了 azure 存储帐户。我已经创建了文件存储。我已经生成了 SAS 令牌。当我尝试使用 sas 令牌访问文件时显示错误“远程服务器返回错误:(403)禁止。”

我能够生成 SAS 令牌。当我尝试访问文件存储中的文件时抛出异常。我试图在浏览器上复制和粘贴 url 时抛出错误“

我用来生成 SAS 令牌的代码

静态字符串 GetAccountSASToken()

我用来访问文件的代码

将文件加载到 XDocument 后,我​​必须执行一些读写操作。请帮助找出我正在做的错误

0 投票
3 回答
188 浏览

java - 如何为 container.listBlobs() 和 blob.exists() 生成单个 Account SAS

我正在开发一个 Java 应用程序,它使用 Account SAS(共享访问签名)URI 执行以下方法:

但是,我找不到生成单个帐户 SAS 以支持上面列出的所有方法的方法。

  1. 使用 SharedAccessAccountResourceType.OBJECT 生成的帐户 SAS:

成功执行:

失败并显示错误代码:AuthorizationResourceTypeMismatch

  1. 使用 SharedAccessAccountResourceType.CONTAINER 生成的帐户 SAS:

成功执行:

失败并显示错误代码:AuthorizationResourceTypeMismatch

  1. 使用 SharedAccessAccountResourceType.SERVICE 生成的帐户 SAS 失败并显示错误代码:上述所有方法的 AuthorizationResourceTypeMismatch。

有没有办法生成适用于以下所有方法的单个帐户 SAS?

0 投票
1 回答
1169 浏览

azure - 如何将 Azure Data Lake Store gen 2 File Share 与 Azure Databricks 连接?

我有一个 Azure 数据湖存储第 2 代帐户,启用了分层命名空间。我为该帐户生成了一个 SAS 令牌,并将数据接收到文件共享(文件服务)中的一个文件夹中。现在我想通过 Azure Databricks 和 python 访问这些文件。但是,Azure Databricks 似乎只能访问文件系统(在 gen1 中称为 Blob 容器),而不能访问文件共享。我也未能为文件系统生成 SAS 令牌。

我希望有一个可以生成 SAS 令牌并提供给我的客户的存储实例,并使用 python 从 azure databricks 访问它。它是文件系统、文件共享、ADLS gen2 还是 gen1 并不重要,只要它以某种方式工作即可。

我使用以下内容从数据块访问文件系统:

工作正常,但我不能让它访问文件共享。我有一个带有如下连接字符串的 SAS 令牌:

我设法使用它来将内容上传到文件共享,而不是文件系统。是否有任何类型的 Azure 存储可以通过 SAS 令牌和 azure databricks 访问?