Azure消息队列 - 生成共享访问签名

时间:2017-07-03 11:25:46

标签: azure authorization azure-queues

我无法尝试使用PostMan将POST消息发送到Azure SB队列。

我得到的错误是401 40103:授权令牌签名无效 我的问题是生成SAS,因为我正在尝试遵循各种文章和示例,但我必须缺少/忽视/不理解某些东西。

如果我描述我所做的事情,希望在我犯错误的地方变得明显。

我的队列网址为https://GTRAzure.servicebus.windows.net/subscriptionpreference 我的政策是Submit 我选择了12月的到期日:1512086400

我的字符串到符号为https://gtrazure.servicebus.windows.net/subscriptionpreference \ n1512086400,然后编码为https%3A%2F%2Fgtrazure.servicebus.windows.net%2Fsubscriptionpreference%5Cn1512086400

然后我使用从提交政策中获得的主键对此进行签名。我用它来测试:https://www.freeformatter.com/hmac-generator.html

使用SHA-256生成类似425d5ff8beb8da58e6f97e45462037e25ea56bcb63470f9b28761fa012f61090的代码然后我使用base-64编码来获取NDI1ZDVmZjhiZWI4ZGE1OGU2Zjk3ZTQ1NDYyMDM3ZTI1ZWE1NmJjYjYzNDcwZjliMjg3NjFmYTAxMmY2MTA5MA==

然后我将它们放在一起以获取我放在Authorization标头文本中的内容 SharedAccessSignature sig=NDI1ZDVmZjhiZWI4ZGE1OGU2Zjk3ZTQ1NDYyMDM3ZTI1ZWE1NmJjYjYzNDcwZjliMjg3NjFmYTAxMmY2MTA5MA==&se=1512086400&skn=Submit=&sr=https%3A%2F%2Fgtrazure.servicebus.windows.net%2Fsubscriptionpreference%5Cn1512086400

1 个答案:

答案 0 :(得分:3)

我认为您要提供的字符串是不正确的,因为\n未被视为生成编码值的新行:

  

HTTPS%3A%2F%2Fgtrazure.servicebus.windows.net%2Fsubscriptionpreference%5Cn1512086400

使授权失败。

但如果它被视为新行,它将给出如下值:

  

HTTPS%3A%2F%2Fgtrazure.servicebus.windows.net%2Fsubscriptionpreference%0A1512086400

不会出错。