Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Niet-geautoriseerde uitzonderingen in Azure Cosmos DB for NoSQL, zoals HTTP 401-fouten, treden meestal op wanneer de MAC-handtekening in de aanvraag niet overeenkomt met de verwachte waarde. Onjuiste sleutels, onvolledige sleutelrotaties of het gebruik van alleen-lezensleutels voor schrijfbewerkingen zijn vaak oorzaken van dit foutbericht.
Symptomen
Een veelvoorkomend symptoom van niet-geautoriseerde uitzonderingen ontvangt een HTTP 401-foutbericht. Deze fout geeft aan dat de aanvraag niet juist is geverifieerd.
HTTP 401: The MAC signature found in the HTTP request isn't the same as the computed signature.
Voor oudere SDK's (Software Development Kits) kan de uitzondering worden weergegeven als een ongeldige JSON-uitzondering in plaats van de juiste 401 niet-geautoriseerde uitzondering. Nieuwere SDK's verwerken dit scenario en geven een geldig foutbericht weer.
Oorzaak
Deze fout treedt op wanneer de verificatiehandtekening (MAC) in uw aanvraag niet overeenkomt met wat Azure Cosmos DB verwacht. Veelvoorkomende redenen zijn het gebruik van de verkeerde sleutel, onvolledige sleutelrotatie of het uitvoeren van schrijfbewerkingen met een alleen-lezen sleutel. Dit komt niet overeen, voorkomt dat Cosmos DB uw identiteit verifieert, wat resulteert in een niet-geautoriseerde HTTP 401-fout.
Oplossing: Wacht tot sleutelrotatie is voltooid
Pas deze oplossing toe als er 401 MAC-handtekeningfouten optreden direct na het roteren van uw accountsleutels. Sleutelrotatie in Azure Cosmos DB kan een paar seconden tot enkele dagen duren, afhankelijk van de accountgrootte.
Zorg ervoor dat uw toepassing wacht totdat het sleutelrotatieproces volledig is voltooid voordat u de nieuwe sleutel voor verificatie gebruikt. De fout wordt automatisch opgelost zodra de rotatie is voltooid.
Oplossing: Onjuist geconfigureerde sleutels herstellen
Gebruik deze oplossing als u consistent 401 MAC-handtekeningfouten ontvangt voor alle aanvragen met behulp van een bepaalde sleutel. Dit scenario betekent meestal dat de sleutel onjuist of onvolledig is in uw toepassingsconfiguratie.
Controleer of de sleutel in uw toepassing overeenkomt met de juiste accountsleutel en zorg ervoor dat de hele sleutel wordt gekopieerd zonder afkapping.
Oplossing: Lees-/schrijfsleutels gebruiken voor schrijfbewerkingen
Pas deze oplossing toe als 401 MAC-handtekeningfouten alleen optreden tijdens schrijfbewerkingen, terwijl leesaanvragen slagen. In dit scenario wordt aangegeven dat de toepassing alleen-lezensleutels gebruikt voor schrijfacties.
Werk uw toepassing bij voor het gebruik van een lees-/schrijfsleutel of een autorisatiemechanisme met schrijftoegang voor alle schrijfbewerkingen.
Oplossing: wacht tot het maken van een container is voltooid
Kies deze oplossing als 401 MAC-handtekeningfouten direct na het maken van een container worden weergegeven, met name wanneer containers worden verwijderd en opnieuw worden gemaakt met dezelfde naam.
Zorg ervoor dat uw toepassing wacht totdat het proces voor het maken van containers volledig is voltooid voordat u bewerkingen op de container probeert te openen of uit te voeren.
Verwante inhoud
- Problemen vaststellen en oplossen wanneer u de Azure Cosmos DB .NET SDK gebruikt.
- Meer informatie over prestatierichtlijnen voor .NET v3 en .NET v2.
- Problemen vaststellen en oplossen wanneer u de Azure Cosmos DB Java v4 SDK gebruikt.
- Meer informatie over prestatierichtlijnen voor Java v4 SDK.