Sdílet prostřednictvím


Pokyny pro opakování služby ACS

Aktualizováno: 6. července 2015

Platí pro: Azure

Microsoft Azure Active Directory Access Control (označované také jako služba Access Control nebo služba ACS) podporuje řadu různých koncových bodů vystavování a správy tokenů, do kterých můžou klienti posílat žádosti o tokeny. Toto téma definuje pokyny pro implementaci logiky opakování při selhání požadavků na tokeny.

scénáře Error-Handling

Chyby požadavků na tokeny, které vrací kódy chyb řady HTTP 500, obvykle reagují na opakování. V některých scénářích je klient aplikací nebo službou, která provádí automatizované požadavky na službu ACS. V jiných scénářích, jako je webová federace, která používá protokol WS-Federation, je klient webovým prohlížečem a koncový uživatel musí operaci opakovat ručně. Toto téma popisuje scénáře zpracování chyb, ve kterých je klient aplikací nebo službou.

Mezi tyto scénáře patří:

Pokyny pro opakování

Následující pokyny vysvětlují, jak implementovat logiku opakování ve scénářích zpracování chyb.

Pokyny č. 1: Implementace logiky opakování na základě chybových odpovědí řady HTTP 500

Logika opakování se důrazně doporučuje, když služba ACS vrátí chyby řady HTTP 500. Následující seznam obsahuje příklady typických chyb řady HTTP 500.

  • Chyba HTTP 500 – Vnitřní chyba serveru

  • Chyba HTTP 502 – Chybná brána

  • Chyba HTTP 503 – Služba není k dispozici

  • Chyba HTTP 504 – Vypršení časového limitu brány

I když se jednotlivé kódy HTTP dají vyčíst v logice opakování, stačí vyvolat logiku opakování, pokud se vrátí nějaká chyba řady HTTP 500.

Logika opakování by měla být aktivována kódy chyb HTTP, například HTTP 504 (vypršení časového limitu externího serveru), a ne kódy chyb služby ACS, jako je ACS90005. Kódy chyb služby ACS jsou informativní a můžou se změnit.

Logika opakování se obvykle nedoporučuje, pokud se vrátí kódy chyb řady HTTP 400. Kód odpovědi na chybu HTTP 400 řad ze služby ACS znamená, že požadavek je neplatný a je potřeba ho upravit. Jednou výjimkou je kód chyby 429 (Příliš mnoho požadavků), což značí, že obor názvů překročil limit přenosové rychlosti tokenu po delší dobu. V případě chyb 429 může opakování s časovačem backoff vyřešit okamžitou žádost o token backlog, dokud správce nebude mít čas zkontrolovat a revidovat distribuci úloh oboru názvů. Další informace najdete v tématu Omezení služby ACS.

Pokyny č. 2: Opakování by mělo pro optimální řízení toku používat časovač zpětného vypnutí

Když klient obdrží chybu řady HTTP 500, měl by klient před opakováním požadavku počkat na určité časové období. Pro dosažení nejlepších výsledků se doporučuje, aby se toto časové období s každým dalším opakováním zvýšilo. Tento přístup umožňuje rychlé řešení přechodných chyb při optimalizaci rychlosti požadavků na přechodné problémy se sítí nebo serverem, které trvá déle, než se vyřeší.

Použijte například exponenciální časovač zpětného vypnutí, kdy se zpoždění před opakováním exponenciálně zvyšuje u každé instance, například opakování 1: 1 sekundu, opakování 2: 2 sekundy, opakování 3: 4 sekundy atd.

Na základě požadavků na uživatelské prostředí upravte počet opakování a čas mezi jednotlivými opakováními. Během pěti minut ale doporučujeme až pět opakování. Vyřešení chyb způsobených vypršením časového limitu trvá déle.

Pokyny č. 3: Před pokusem o vytvoření nebo odstranění položky ověřte, že položka neexistuje

Při vytváření nebo odstraňování operací se službou pro správu služby ACS, jako je vytvoření nové aplikace předávající strany nebo odstranění pravidla, by logika opakování měla dotazovat, pokud položka existuje před provedením operace. Za určitých okolností, například přechodné selhání sítě, ke kterému dochází při doručování odpovědi serveru, může operace vytvoření nebo odstranění proběhnout úspěšně i v případě, že klient obdrží chybovou odpověď.

Pokud se operace vytvoření opakuje bez kontroly existence položky, může se vytvořit duplicitní položky. , Systém může také vrátit chybu HTTP 400, pokud musí být položka jedinečná.

Pokud se operace odstranění opakuje bez kontroly existence položky, systém může vrátit chybu HTTP 400, když položku nemůže najít.

Viz také

Koncepty

Kódy chyb ACS
Omezení služby ACS
Služba správy služby ACS
Postupy: Vyžádání tokenu ze služby ACS prostřednictvím protokolu OAuth WRAP
Ukázka kódu: Ověřování certifikátů OAuth 2.0
Index pokynů služby ACS