Подключение к Azure через Postman

#azure #postman

#azure #postman

Вопрос:

Мы пытаемся подключиться к Azure через postman, но получаем

«Подпись MAC, найденная в HTTP-запросе, не совпадает с любой вычисленной подписью». Что мы делаем на основе документации, так это создаем строку для подписи:

ПОЛУЧИТЬ nn n n n n n nnnnnnnx-ms-дата: Ср., 24 февраля 2021 г. 08:50:08 GMT nx-ms-версия:2020-04-08 n/myaccount/containername/filename

А затем мы декодируем ключ доступа из base64

Оттуда мы используем онлайн-инструмент для шифрования подписи с помощью HMAC SHA256 и ключа доступа к порталу Azure.

Пожалуйста, смотрите Фото: Общий ключ Azure

Мы использовали это в качестве заголовка авторизации SharedKey myaccount:HashedOutput однако мы получаем эту ошибку: ошибка в Postman

Может кто-нибудь посоветовать по этому поводу? Спасибо!

Ответ №1:

Если вы запрашиваете Get Blob Rest API, строка для подписи верна. Но шаги по кодированию подписи кажутся неправильными.

Чтобы закодировать подпись, вызовите алгоритм HMAC-SHA256 для строки подписи в кодировке UTF-8 и закодируйте результат как Base64. Обратите внимание, что вам также необходимо декодировать ключ вашей учетной записи хранения на основе Base64.Используйте следующий формат (показан как псевдокод):

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

введите описание изображения здесь

Закодируйте подпись с помощью PHP:

 $date = gmdate('D, d M Y H:i:s GMT');
$version = "2020-04-08";
echo $date;

$stringtosign = "GETnnnnnnnnnnnnx-ms-date:". $date . "nx-ms-version:".$version."n/".$storageAccount."/".$containerName."/".$blobName;
$signature = 'SharedKey'.' '.$storageAccount.':'.base64_encode(hash_hmac('sha256', $stringtosign, base64_decode($account_key), true));
echo "nn" . $signature;
 

Закодируйте подпись с помощью Powershell: https://docs.microsoft.com/en-us/answers/questions/59066/create-authorization-header-with-shared-key-using.html

Комментарии:

1. Если мой ответ полезен, пожалуйста, примите его как ответ (нажмите на опцию отметить рядом с ответом, чтобы переключить его с серого на заполнение.), См. meta.stackexchange.com/questions/5234 /…