Fronta změn na virtuálních systémech
Správa virtuálních systémů v CzechIdM je nově rozšířena o frontu požadavků. Fronta odstraňuje neduhy, které se nelíbily správcům jednotlivých systémů a současně vylepšuje a zefektivňuje správu účtů na virtuálních systémech.
Co jsou virtuální systémy
Virtuální systém CzechIdM neobsluhuje přímo. Například z důvodu neexistence konektoru, neexistence přímého spojení k systému, nebo z nutnosti kontroly změn zapisovaných na systému. CzechIdM takto může obsluhovat i systém, který není připojený k síti. Aktualizace účtů na systému se neprovádí přímo, ale pomocí úkolů (schvalovací úkol v CzechIdM, nebo úkol v externím systému pro úkoly), po schválení úkolu si CzechIdM zapíše aktualizovaný stav účtu do interní databáze.
Co se administrátorům nelíbílo
Uživatelka se vdá, změní se jí příjmení z Mladá na Nováková. Administrátor v IdM změní její jméno, ale přepíše se a zapíše Novákov, v průběhu ukládání si všimne chyby, editací ji opraví, ale v tu chvíli budou na všech systémech úkoly na první změnu jména a vytvoří se nové na druhou změnu. Pokud má uživatelka 50 účtů na virtuálních systémech, vytvoří se 50 zbytečných úkolů.
Pokud chce administrátor CzechIdM odebrat uživateli účet na virtuálním systému, pro který má uživatel 11 schvalovaných rolí, tak schvalování pravděpodobně spadne na prvního administrátora. Ten označí 11 úkolů a hromadně je schválí. Akce vygeneruje na správce virtuálního systému 10 úkolů na modifikaci účtu a nakonec jeden úkol na smazání účtu. To se samozřejmě správci systému líbit nebude.
Řešení: fronta s agregací
Místo přímého vytvoření úkolu se požadavek na změnu zapíše do fronty. Pravidelně spouštěná naplánovaná úloha odebírá jednotlivé požadavky na změny účtu z fronty, sloučí je do jednoho požadavku a vytvoří jeden úkol na aktualizaci účtu.
Pokud se do fronty zapíše vytvoření účtu (po přidání role) a následně několik aktualizací účtu (změna jména, přidání role s dalším oprávněním, atd.) vytvoří se jediný úkol na vytvoření účtu obsahující poslední hodnoty všech atributů.
Odstranění účtu odebráním schvalovaných rolí – do fronty se zapíše každá modifikace a nakonec odstranění účtu, při vytváření úkolu se vytvoří pouze úkol na odstranění účtu.
V případě několika operací za sebou se vždy bere poslední hodnota atributů, pokud se hodnota atributu několikrát změní, v úkolu je zobrazena změna z původní hodnoty na nejnovější. U vícehodnotových atributů je zaznamenáno každé přidání a odebrání prvku. Pokud se k existujícímu účtu přidají oprávnění ZÁPIS a ADMIN, následně se ADMIN odebere, v úkolu se zobrazí pouze přidání oprávnění ZÁPIS.
Následující příklad ukazuje, jak fronta funguje. Uživateli je přidána role přidělující účet na systému (prvních 7 záznamů), následně je přidána druhá role přidělující oprávnění “Zápis”, poté je změněno příjmení a dále je přiděleno oprávnění “Admin” a nakonec je oprávnění “Admin” odebráno. Celkem byla identita uložena pětkrát, což by bez fronty znamenalo 5 vytvořených úkolů.
Následně vznikne úkol obsahující aktualizované příjmení a seznam oprávnění, které skutečně má v momentě vytváření úkolu. Oprávnění “Admin”, které bylo přiděleno a odebráno v úkolu není vidět.
Úkoly
Úkoly se vytváří pravidelně, na základě informací uložených ve frontě. Pro každý účet jsou všechny záznamy načteny, agregovány a poté je vytvořen určený úkol (vytvoření, modifikace, odstranění účtu). V případě, že je vytvořen úkol na vytvoření účtu, všechny další požadavky zůstávají ve frontě a jsou zpracovány až po potvrzení vytvoření účtu. Správci systému tak není vytvořen úkol na modifikaci účtu, který ještě neexistuje. Stejným způsobem zůstává ve frontě i požadavek na vytvoření nového účtu, pokud existuje úkol, na odstranění předcházejícího.
Při zpracování úkolu na vytvoření/smazání účtu, je účet vytvořen nebo smazán. Při zpracování úkolu na modifikaci účtu je načten původní účet, jsou aplikovány změny obsažené v úkolu a aktualizovaný stav účtu je uložen do interní databáze.
Závěr
Fronta změn na virtuální systémy nám otevírá další možnosti pro vylepšení: například grafické rozhraní nad frontou, které administrátorům přinese kontrolu nad aktuálně čekajícími požadavky i obsahem úkolů v případě, že jsou vytvořeny v externím systému. Také je možné změny z fronty ukládat jako historii pro důkladnější audit změn na účtu. V historii by bylo dohledatelné, kdy došlo ke změně, kdy byl úkol vytvořen a schválen.
Pokud máte nějaké dotazy nebo návrhy na další vylepšení, neváhejte napsat na info@bcvsolutions.eu.