Sdílet prostřednictvím


Diagnostika a řešení potíží s neautorizovanými výjimkami služby Azure Cosmos DB

PLATÍ PRO: NoSQL

HTTP 401: Podpis MAC nalezený v požadavku HTTP není stejný jako vypočítaný podpis. Pokud se vám zobrazila chybová zpráva 401 " Podpis MAC nalezený v požadavku HTTP není stejný jako vypočítaný podpis", může to být způsobeno následujícími scénáři.

U starších sad SDK se tato výjimka může zobrazit jako neplatná výjimka JSON místo správné výjimky 401– neautorizováno. Novější sady SDK správně zpracovávají tento scénář a poskytují platnou chybovou zprávu.

Postup při řešení potíží

Následující seznam obsahuje známé příčiny a řešení neoprávněných výjimek.

Klíč nebyl správně otočen, je nejběžnější scénář.

Podpis MAC 401 se krátce po obměně klíčů projeví a nakonec se zastaví bez jakýchkoli změn.

Řešení:

Došlo k obměně klíče, která se neřídila osvědčenými postupy. Obměně klíčů účtu služby Azure Cosmos DB může trvat od několika sekund až po dny v závislosti na velikosti účtu služby Azure Cosmos DB.

Klíč je chybně nakonfigurovaný.

Problém s podpisem mac 401 bude konzistentní a stane se u všech volání používajících tento klíč.

Řešení:

Klíč je v aplikaci chybně nakonfigurovaný a používá pro účet nesprávný klíč nebo nebyl zkopírován celý klíč.

Aplikace pro operace zápisu používá klíče jen pro čtení.

K problému s podpisem mac 401 dochází pouze u operací zápisu, jako je vytvoření nebo nahrazení, ale požadavky na čtení jsou úspěšné.

Řešení:

Přepněte aplikaci tak, aby používala klíč pro čtení a zápis, aby se operace úspěšně dokončily.

Stav časování s vytvořením kontejneru

K problému s podpisem mac 401 dochází krátce po vytvoření kontejneru. K tomuto problému dochází pouze do dokončení vytváření kontejneru.

Řešení:

Při vytváření kontejneru existuje stav časování. Instance aplikace se pokouší získat přístup ke kontejneru před dokončením vytváření kontejneru. Nejběžnějším scénářem této podmínky časování je, že aplikace běží a kontejner se odstraní a znovu vytvoří se stejným názvem. Sada SDK se pokusí použít nový kontejner, ale vytváření kontejneru stále probíhá, takže nemá klíče.

Povolený hromadný režim

Při použití hromadného režimu jsou operace čtení a zápisu optimalizované pro nejlepší výkon sítě a odesílají se do back-endu prostřednictvím vyhrazeného rozhraní Bulk API. Chyby 401 při provádění operací čtení s povoleným hromadným režimem často znamenají, že aplikace používá klíče jen pro čtení.

Řešení

Při provádění operacísch

Další kroky