#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 /…