Fronta požadavků v případě nedostupnosti spravovaného systému
CzechIdM jako integrační nástroj ve středu infrastruktury, se musí často vypořádat s neduhy spravovaných systémů. Co však dělat v případě, kdy daný systém neodpovídá? Uživatel si například může měnit heslo, operace selže a uživateli se zobrazí hláška “Spojení se systémem selhalo, zkuste to prosím za 10 minut” která určitě každého potěší. A nebo ještě hůře: provede se aktualizace na základě jednorázového automatického procesu a ta je pak nenávratně ztracena. Následují hodiny času prohledávání logů a hledání příčiny. Tyto problémy k identity managementu neodmyslitelně patří a IdM se s nimi musí nějak vypořádat. My jsme vyvinuli řešení, určené pro tyto situace.
Popis
V CzechIdM vznikla “Fronta úkolů”. Všechny měnící operace na koncové systémy prochází přes tuto frontu. Když operace selže, ať už z důvodu nedostupnosti systému, či chybě v datech, je do této fronty uložena. CzechIdM pak frontu prochází a selhané požadavky se pokouší znovu provést. Požadavky zůstávají ve frontě, dokud nejsou úspěšně provedeny, nebo je následně administrátor sám neodstraní. Kromě dat posílaných na koncový systém jsou k požadavkům ukládány další informace, jako kdo vlastní daný účet, čas vykonání požadavku, důvod selhání atd. Fronta je ukládána do databáze, takže se nemusíte bát, že o svoje data po restartu přijdete.
Shlukování do dávek
U operací je kvůli konzistenci dat nutné zachovat časovou posloupnost podle jejich vzniku. Toto může být zvláště důležité, pokud jsou na jednotlivé aktualizace navázány interní business procesy. Proto jsou operace podle konkrétní identity a identifikátoru účtu shlukovány do dávek. Dávka je pak vždy prováděna jako celek, podle časové posloupnosti. Když například má uživatel již ve frontě požadavek na aktualizaci účtu a tento účet by měl být znovu aktualizován, namísto vykonání této operace je požadavek uložen do fronty do stejné dávku. Následně když se CzechIdM pokusí operace zopakovat, provede všechny operace z této dávky.
Jak to všechno nastavit?
První otázka každého administrátora by měla být, jak tuto funkcionalitu vlastně zapnout? Vždy se to točí kolem konfigurace a ani tentokrát tomu nebude jinak.
Zapnout frontu je možné globálně přes konfigurační soubor IdM či jednotlivě pro každý systém. V konfiguračním souboru “idm_configuration.properties” vznikla nová sekce týkající se této agendy a obsahuje následující nastavení:
– provisioning_queue_enabled – zapíná či vypíná globálně ukládání selhaných požadavků do front.
– provisioning_retry_max_attempts – kolikrát se systém pokusí selhaný požadavek zopakovat.
– provisioning_retry_time_sequence_s – čas v sekundách, po jaké době od posledního selhání se systém pokusí požadavek zopakovat. Vybere se tolikátý záznam, kolikrát již daný požadavek selhal.
Dále je v nastavení každého systému možnost separátně frontu pro daný systém vypnout, či zapnout. Lokální nastavení u systému má přednost před globálním nastavením.
Dalším krokem je zapnout automatický proces, který bude frontu procházet a následně opakovat jednotlivé operace. Tento krok je samozřejmě možné přeskočit, pokud si administrátor přeje mít nad požadavky maximální kontrolu. Proces můžeme zapnout přes agendu “Naplánované úlohy”. Založíme novou úlohu a v menu zvolíme “Process provisioning queue”. Následně nastavíme čas a interval, kdy má být úloha spouštěna (doporučujeme interval minimálně 15s).
Ruční správa operací
Aby si také administrátoři užili s požadavky, vznikly pro ně nástroje v grafickém rozhraní. Na záložce “systémy” přibyla u každého systému odkaz “Fronta úkolů”. Ta odkazuje na správu požadavků pro frontu daného systému. Administrátor může požadavky prohlížet, odmazat či zopakovat. Zvláště provádění destruktivních operací je nutné dělat s rozmyslem, neboť CzechIdM dává administrátorovi absolutní moc. V přehledu vidíme u požadavků základní informace, po jejich rozkliknutí se dozvíme například i jaká data mají být poslána na koncový systém. Pro přístup do této agendy je nutné mít práva RESOURCE.READ a RESOURCE.RESOURCE_QUEUE.
Závěr
Odesílání dat na napojené systémy je klíčovou součástí Identity Managementu. Vytvořením fronty požadavků jsme zlepšili konzistenci dat mezi CzechIdM a systémy. Zároveň se nám otevírá spousta možných rozšíření do budoucna. Těmi mohou být například asynchronní aktualizace účtů či slučování požadavků, a tím odlehčení infrastruktuře. Nechte se překvapit, co pro vás připravíme příště.
Pokud máte nějaké dotazy nebo podměty k dalšímu vylepšení, neváhejte nás kontaktovat na info@bcvsolutions.eu.