Condividi tramite


Diagnosticare e risolvere i problemi relativi ad eccezioni non autorizzate di Azure Cosmos DB per NoSQL

Le eccezioni non autorizzate in Azure Cosmos DB per NoSQL, ad esempio errori HTTP 401, si verificano in genere quando la firma MAC nella richiesta non corrisponde al valore previsto. Le chiavi non corrette, le rotazioni incomplete delle chiavi o l'uso di chiavi di sola lettura per le operazioni di scrittura sono spesso cause di questo messaggio di errore.

Sintomi

Un sintomo comune di eccezioni non autorizzate riceve un messaggio di errore HTTP 401. Questo errore indica che la richiesta non è stata autenticata correttamente.

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

Per gli SDK (Software Development Kit) meno recenti, l'eccezione potrebbe apparire come un'eccezione JSON non valida anziché l'eccezione 401 non autorizzata corretta. Gli SDK più recenti gestiscono questo scenario e visualizzano un messaggio di errore valido.

Motivo

Questo errore si verifica quando la firma di autenticazione (MAC) nella richiesta non corrisponde a quanto previsto da Azure Cosmos DB. I motivi comuni includono l'uso della chiave errata, la rotazione incompleta delle chiavi o il tentativo di eseguire operazioni di scrittura con una chiave di sola lettura. Questa mancata corrispondenza impedisce a Cosmos DB di verificare l'identità, causando un errore HTTP 401 non autorizzato.

Soluzione: attendere il completamento della rotazione delle chiavi

Applicare questa soluzione se si verificano errori di firma MAC 401 immediatamente dopo la rotazione delle chiavi dell'account. La rotazione delle chiavi in Azure Cosmos DB può richiedere da pochi secondi a diversi giorni, a seconda delle dimensioni dell'account.

Assicurarsi che l'applicazione attenda il completamento completo del processo di rotazione delle chiavi prima di usare la nuova chiave per l'autenticazione. L'errore deve essere risolto automaticamente al termine della rotazione.

Soluzione: correggere le chiavi configurate in modo errato

Usare questa soluzione se si ricevono costantemente errori di firma MAC 401 per tutte le richieste che usano una chiave specifica. Questo scenario indica in genere che la chiave non è corretta o incompleta nella configurazione dell'applicazione.

Verificare che la chiave nell'applicazione corrisponda alla chiave dell'account corretta e assicurarsi che l'intera chiave venga copiata senza troncamento.

Soluzione: usare chiavi di lettura/scrittura per le operazioni di scrittura

Applicare questa soluzione se si verificano errori di firma MAC 401 solo durante le operazioni di scrittura, mentre le richieste di lettura hanno esito positivo. Questo scenario indica che l'applicazione usa chiavi di sola lettura per le azioni di scrittura.

Aggiornare l'applicazione per usare una chiave di lettura/scrittura o un meccanismo di autorizzazione con accesso in scrittura per tutte le operazioni di scrittura.

Soluzione: attendere il completamento della creazione del contenitore

Scegliere questa soluzione se gli errori di firma MAC 401 vengono visualizzati immediatamente dopo la creazione di un contenitore, soprattutto quando i contenitori vengono eliminati e ricreati con lo stesso nome.

Assicurarsi che l'applicazione attenda il completamento completo del processo di creazione del contenitore prima di tentare di accedere o eseguire operazioni nel contenitore.