我有试用版Azure帐户,并且已在存储下创建表。我想使用REST API读取表格。我正在浏览文档(https://docs.microsoft.com/en-us/rest/api/storageservices/authorization-for-the-azure-storage-services),以准备HTTP请求的授权标头。 我无法找到“共享密钥”表单门户,有谁可以帮忙吗?
答案 0 :(得分:1)
请按照以下步骤查看Azure Blob存储帐户的存储访问密钥:
登录到Azure仪表板。
在导航窗格中,单击“所有资源”。
选择所需的存储帐户。
单击“密钥”图标以查看存储帐户的访问密钥。 注意:每个存储帐户都有两个存储访问密钥。
要复制存储访问密钥,请单击要复制的密钥旁边的“复制”图标。
答案 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类设置的常量以使其正常工作。