Согласно документации по REST API Cosmos DB, при каждом вызове API должен быть установлен заголовок авторизации. Значение для этого создается, как описано здесь: https://learn.microsoft.com/en-us/rest/ ... -resources
Я реализую это на Python следующим образом:
def get_authorisation_token(verb, resource_type, resource_id, date, master_key):
key = base64.b64decode(master_key)
text = f"""{verb.lower()}\n{resource_type.lower()}\n{resource_id.lower()}\n{date.lower()}\n\n"""
text_encoded = text.encode('utf-8')
signature_hash = hmac.new(key, text_encoded, digestmod=hashlib.sha256).digest()
signature = base64.b64encode(signature_hash).decode()
key_type = 'master'
version = '1.0'
uri = f'type={key_type}&ver={version}&sig={signature}'
uri_encoded = urllib.parse.quote(uri)
return uri_encoded
Поскольку он отправляется при каждом вызове, токен аутентификации необходимо создать заново, чтобы он соответствовал URL-адресу запроса. Так, например, чтобы получить список баз данных, необходимо указать тип ресурса: dbs, а ссылку/идентификатор ресурса - пустую строку с URL-адресом: https://{databaseaccount}.documents.azure. .com/dbs/
Часть, которую я не могу понять, — это правильная комбинация типа ресурса и идентификатора ресурса/ссылки для получения всех пользователей из определенной базы данных. Документацию можно найти здесь: https://learn.microsoft.com/en-us/rest/ ... list-users
Я пробовал несколько комбинаций, но ничего не возвращается. пользователи, я просто получаю 401:
{
"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: 'get\nusers\ndbs/\nmon, 09 nov 2020 23:37:24 gmt\n\n'\r\nActivityId: 697a4159-f160-4aab-ae90-6cb5eaadb710, Microsoft.Azure.Documents.Common/2.11.0"
}
Подробнее здесь: https://stackoverflow.com/questions/647 ... pi-to-list
Как создать хешированную подпись токена для REST API Azure Cosmos DB, чтобы составить список пользователей? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как пройти аутентификацию для FCM Rest API с помощью Google REST API в PHP REST API?
Anonymous » » в форуме Php - 0 Ответы
- 164 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как составить список пользователей gdrive через учетную запись службы?
Anonymous » » в форуме Python - 0 Ответы
- 22 Просмотры
-
Последнее сообщение Anonymous
-