Поделиться через


Диагностика и устранение неполадок неавторизованного доступа в Azure Cosmos DB для NoSQL.

Несанкционированные исключения в Azure Cosmos DB для NoSQL, такие как ошибки HTTP 401, обычно возникают, когда подпись MAC в запросе не соответствует ожидаемому значению. Неправильные ключи, неполные повороты ключей или использование ключей только для чтения для операций записи часто вызывают это сообщение об ошибке.

Симптомы

Частым симптомом несанкционированного доступа является получение сообщения об ошибке HTTP 401. Эта ошибка указывает на то, что запрос не прошел правильную проверку подлинности.

HTTP 401: The MAC signature found in the HTTP request isn't the same as the computed signature.

Для старых пакетов средств разработки программного обеспечения (SDK) исключение может отображаться как недопустимое исключение JSON вместо правильного 401 несанкционированного исключения. Новые пакеты SDK обрабатывают этот сценарий и отображают допустимое сообщение об ошибке.

Причина

Эта ошибка возникает, когда аутентификационная подпись (MAC) в запросе не соответствует тому, что ожидает Azure Cosmos DB. Распространенные причины: использование неправильного ключа, неполный поворот ключа или попытка выполнить операции записи с ключом только для чтения. Это несоответствие мешает Cosmos DB проверить вашу личность, что приводит к ошибке HTTP 401: Несанкционированный доступ.

Решение. Дождитесь завершения смены ключей

Примените это решение, если возникают ошибки подписи MAC 401 сразу после смены ключей учетной записи. Смена ключей в Azure Cosmos DB может занять от нескольких секунд до нескольких дней в зависимости от размера учетной записи.

Убедитесь, что приложение ожидает завершения процесса смены ключей перед использованием нового ключа для проверки подлинности. Ошибка должна быть устранена автоматически после завершения смены.

Решение. Исправление неправильно настроенных ключей

Используйте это решение, если вы постоянно получаете ошибки подписи MAC 401 для всех запросов с использованием определенного ключа. Этот сценарий обычно означает, что ключ является неверным или неполным в конфигурации приложения.

Убедитесь, что ключ в приложении соответствует правильному ключу учетной записи и убедитесь, что весь ключ копируется без усечения.

Решение. Использование ключей чтения и записи для операций записи

Примените это решение, если ошибки подписи MAC 401 происходят только во время операций записи, а запросы на чтение выполняются успешно. Этот сценарий указывает, что приложение использует ключи только для чтения для действий записи.

Обновите приложение, чтобы использовать ключ чтения и записи или механизм авторизации с доступом на запись для всех операций записи.

Решение. Дождитесь завершения создания контейнера

Выберите это решение, если ошибки подписи MAC 401 появляются сразу после создания контейнера, особенно при удалении и повторном создании контейнеров с тем же именем.

Убедитесь, что приложение ожидает завершения процесса создания контейнера, прежде чем пытаться получить доступ к контейнеру или выполнить операции.