我无法尝试使用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
答案 0 :(得分:3)
我认为您要提供的字符串是不正确的,因为\n
未被视为生成编码值的新行:
HTTPS%3A%2F%2Fgtrazure.servicebus.windows.net%2Fsubscriptionpreference%5Cn1512086400
使授权失败。
但如果它被视为新行,它将给出如下值:
HTTPS%3A%2F%2Fgtrazure.servicebus.windows.net%2Fsubscriptionpreference%0A1512086400
不会出错。