Каков правильный заголовок авторизации для запроса Cosmos DB? - PullRequest
0 голосов
/ 27 мая 2020
• 1000 * POST на этот URI:
POST https://MyDatabase.documents.azure.com:443/dbs/MyContainer/colls/MyDocuments/docs

С этими заголовками:

enter image description here

Авторизация генерируется следующим образом:

var now = new Date().toUTCString(); 
pm.request.headers.upsert({key: "x-ms-date", value: now })

var verb = 'POST'; 
var resourceType = "docs"; 
var resourceLink = 'dbs/MyContainer/colls/MyCollection/docs'; 
var text = (verb || "").toLowerCase() + "\n" + 
           (resourceType || "").toLowerCase() + "\n" + 
           (resourceLink || "") + "\n" + 
           now.toLowerCase() + "\n" + 
           "" + "\n"; 


//Hash and Encode by using the masterkey.
var key = CryptoJS.enc.Base64.parse("MyMasterKey"); 
var signature = CryptoJS.HmacSHA256(text, key).toString(CryptoJS.enc.Base64); 
var authToken = encodeURIComponent("type=master&ver=1.0&sig=" + signature);
pm.request.headers.upsert({key: "Authorization", value: authToken })

Вот ошибка, которую я получаю:

{
    "code": "Unauthorized",
    "message": "The input authorization token can't serve the request. Please check that the expected payload is built as per the protocol, and check the key being used. Server used the following payload to sign: 'post\ndocs\ndbs/MyContainer/colls/MyCollection\nwed, 27 may 2020 19:34:41 gmt\n\n'\r\nActivityId: 724657c7-0532-4c5d-a7ff-c95900ef13cf, Microsoft.Azure.Documents.Common/2.11.0"
}

Я предполагаю, что моя подпись создана неправильно, какой формат правильный?

1 Ответ

1 голос
/ 28 мая 2020

В нашей документации Заголовок авторизации должно быть то, что вы ищете.

надеюсь, что это полезно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...