Azure存储的共享密钥

时间:2018-06-27 06:51:02

标签: azure azure-storage

我有试用版Azure帐户,并且已在存储下创建表。我想使用REST API读取表格。我正在浏览文档(https://docs.microsoft.com/en-us/rest/api/storageservices/authorization-for-the-azure-storage-services),以准备HTTP请求的授权标头。 我无法找到“共享密钥”表单门户,有谁可以帮忙吗?

3 个答案:

答案 0 :(得分:1)

请按照以下步骤查看Azure Blob存储帐户的存储访问密钥:

登录到Azure仪表板。

  1. 在导航窗格中,单击“所有资源”。

  2. 选择所需的存储帐户。

  3. 单击“密钥”图标以查看存储帐户的访问密钥。 注意:每个存储帐户都有两个存储访问密钥。

  4. 要复制存储访问密钥,请单击要复制的密钥旁边的“复制”图标。

答案 1 :(得分:1)

Shared Key authorization用于版本为 2009-09-19 的Table服务,以后使用与以前版本的Table服务相同的签名字符串。

授权标头的格式如下:

Authorization="[SharedKey|SharedKeyLite] <AccountName>:<Signature>"

针对Table服务的请求的共享密钥签名字符串不包括字符串的CanonicalizedHeaders部分。此外,即使请求设置了Date标题,在这种情况下, x-ms-date标头也永远不会为空。如果请求设置了x-ms-date,则该值也将用作Date标头的值。

要对针对使用REST API进行的Table服务的请求的签名字符串进行编码,请使用以下格式:

StringToSign = VERB + "\n" +   
               Content-MD5 + "\n" +   
               Content-Type + "\n" +  
               Date + "\n" +  
               CanonicalizedResource;  

此格式支持Table服务的所有版本的Shared Key和Shared Key Lite 。按以下格式构造CanonicalizedResource字符串:

1。从一个空字符串(“”)开始,附加一个正斜杠(/),后跟拥有所访问资源的帐户名称。

2。附加资源的编码URI路径。如果请求URI寻址资源的一部分,请附加适当的查询字符串。查询字符串应包含问号和comp参数(例如?comp=metadata)。

编码签名

要使用以下格式对签名进行编码:

Signature=Base64(HMAC-SHA256(UTF8(StringToSign), Base64.decode(<your_azure_storage_account_shared_key>))) 

答案 2 :(得分:1)

以下是创建文件的工作示例:

https://github.com/mstaples84/azurefileserviceauth.git

它基于教程:

https://docs.microsoft.com/de-de/azure/storage/common/storage-rest-api-auth,但解决了我从教程创建文件时遇到的问题。

只需运行单元测试“ CreateFileAsync()”即可对其进行测试。确保编辑Test类设置的常量以使其正常工作。