Очередь сообщений Azure - создание подписи общего доступа

У меня проблемы с отправкой сообщения POST в очередь Azure SB с помощью PostMan.

Я получаю сообщение об ошибке 401 40103: Недопустимая подпись токена авторизации. Моя проблема заключается в создании SAS, поскольку я пытаюсь следовать различным статьям и примерам, но я что-то упускаю / упускаю / не понимаю / не понимаю.

Если я опишу то, что я сделал, надеюсь, станет очевидным, где я делаю ошибку.

URL моей очереди: https://GTRAzure.servicebus.windows.net/subscriptionpreference Моя политика Submit Я выбрал срок годности на декабрь: 1512086400

Моя строка для подписи: https://gtrazure.servicebus.windows.net/subscriptionpreference \ n1512086400, который затем кодируется как https%3A%2F%2Fgtrazure.servicebus.windows.net%2Fsubscriptionpreference%5Cn1512086400

Затем я подписываю это, используя первичный ключ, который я получаю из политики отправки. Я использую это для тестирования: https://www.freeformatter.com/hmac-generator.html

Это генерирует код типа 425d5ff8beb8da58e6f97e45462037e25ea56bcb63470f9b28761fa012f61090 с использованием SHA-256, который я затем кодирую base-64, чтобы получить NDI1ZDVmZjhiZWI4ZGE1OGU2Zjk3ZTQ1NDYyMDM3ZTI1ZWE1NmJjYjYzNDcwZjliMjg3NjFmYTAxMmY2MTA5MA==

Затем я собрал все вместе, чтобы получить это, которое я помещаю в текст заголовка авторизации SharedAccessSignature sig=NDI1ZDVmZjhiZWI4ZGE1OGU2Zjk3ZTQ1NDYyMDM3ZTI1ZWE1NmJjYjYzNDcwZjliMjg3NjFmYTAxMmY2MTA5MA==&se=1512086400&skn=Submit=&sr=https%3A%2F%2Fgtrazure.servicebus.windows.net%2Fsubscriptionpreference%5Cn1512086400


person Chris Crawshaw    schedule 03.07.2017    source источник


Ответы (1)


Я думаю, что строка для подписи, которую вы предоставляете, неверна, потому что \n не обрабатывается как новая строка, которая генерирует закодированное значение как:

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

что дает ошибку авторизации.

Но если он рассматривается как новая строка, он даст следующее значение:

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

что не даст ошибки.

person Jagrati Modi    schedule 03.07.2017