Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Otillåtna undantag i Azure Cosmos DB för NoSQL, till exempel HTTP 401-fel, inträffar vanligtvis när MAC-signaturen i begäran inte matchar det förväntade värdet. Felaktiga nycklar, ofullständiga nyckelrotationer eller användning av skrivskyddade nycklar för skrivåtgärder är ofta orsaken till det här felmeddelandet.
Symptoms
Ett vanligt symptom på obehöriga undantag är att ett HTTP 401-felmeddelande visas. Det här felet anger att begäran inte autentiserades korrekt.
HTTP 401: The MAC signature found in the HTTP request isn't the same as the computed signature.
För äldre programutvecklingspaket (SDK:er) kan undantaget visas som ett ogiltigt JSON-undantag i stället för rätt 401-undantag. Nyare SDK:er hanterar det här scenariot och visar ett giltigt felmeddelande.
Orsak
Det här felet uppstår när autentiseringssignaturen (MAC) i din begäran inte matchar vad Azure Cosmos DB förväntar sig. Vanliga orsaker är att använda fel nyckel, ofullständig nyckelrotation eller att försöka utföra skrivåtgärder med en skrivskyddad nyckel. Det här matchningsfelet hindrar Cosmos DB från att verifiera din identitet, vilket resulterar i ett HTTP 401-fel utan behörighet.
Lösning: Vänta tills nyckelrotationen har slutförts
Använd den här lösningen om du stöter på 401 MAC-signaturfel omedelbart efter att du har roterat dina kontonycklar. Nyckelrotation i Azure Cosmos DB kan ta allt från några sekunder till flera dagar, beroende på kontostorleken.
Se till att programmet väntar tills nyckelrotationsprocessen har slutförts helt innan du använder den nya nyckeln för autentisering. Felet bör lösas automatiskt när rotationen är klar.
Lösning: Åtgärda felkonfigurerade nycklar
Använd den här lösningen om du konsekvent får 401 MAC-signaturfel för alla begäranden med en viss nyckel. Det här scenariot innebär vanligtvis att nyckeln är felaktig eller ofullständig i programkonfigurationen.
Kontrollera att nyckeln i programmet matchar rätt kontonyckel och se till att hela nyckeln kopieras utan trunkering.
Lösning: Använda läs-/skrivnycklar för skrivåtgärder
Använd den här lösningen om 401 MAC-signaturfel endast inträffar under skrivåtgärder, medan läsbegäranden lyckas. Det här scenariot anger att programmet använder skrivskyddade nycklar för skrivåtgärder.
Uppdatera programmet så att det använder en läs-/skrivnyckel eller en auktoriseringsmekanism med skrivåtkomst för alla skrivåtgärder.
Lösning: Vänta tills containern har skapats
Välj den här lösningen om 401 MAC-signaturfel visas omedelbart efter att en container har skapats, särskilt när containrar tas bort och återskapas med samma namn.
Se till att ditt program väntar tills processen för att skapa containern är helt slutförd innan du försöker komma åt eller utföra åtgärder på containern.
Relaterat innehåll
- Diagnostisera och felsöka problem när du använder Azure Cosmos DB .NET SDK.
- Lär dig mer om prestandariktlinjer för .NET v3 och .NET v2.
- Diagnostisera och felsöka problem när du använder Azure Cosmos DB Java v4 SDK.
- Läs mer om prestandariktlinjer för Java v4 SDK.