Případová studie: Průběžná migrace z Oracle IdM Waveset na CzechIdM
V září letošního roku jsme se pustili do unikátní akce – postupného přechodu z Identity Managementu od bývalé společnosti Sun k našemu vlastnímu produktu, Identity Managementu CzechIdM. Produkt bývalé společnosti Sun (dnešní oficiální název je Oracle Waveset) už není novým vlastníkem, firmou Oracle, dále vyvíjen ani podporován. Jeden z našich zákazníků se proto rozhodl pro migraci k plně podporovanému CzechIdM.
Prostředí zákazníka je však poměrně rozsáhlé a SunIdM v něm obsluhuje celou řadu systémů; ocitli jsme se tak před velkou výzvou: jak převést komplikované stávající řešení pod nový produkt bez odstávky a s minimální změnou pro uživatele? Odpovědí je právě projekt postupné migrace: oba Identity Managementy „zřetězíme“ a jednotlivé systémy postupně přepojíme za plného chodu. Ve svém článku vás seznámím s architekturou řešení a upozorním na některá úskalí, se kterými se během implementace střetáváme.
Základní myšlenka
Náročná analýza vedla k myšlence oba Identity Managementy zřetězit. Instalovat CzechIdM po bok starého Oracle Waveset a propojit oba tak, aby byl jeden druhému běžným koncovým systémem. Jakmile totiž zajistíme oboustranný tok dat mezi oběma Identity Managementy, můžeme systémy jeden po druhém odpojovat od Wavesetu a přepojovat za plného provozu na CzechIdM.
Zdrojem všech identit pro Waveset před migrací byl personální systém Navision. Pro novou instalaci CzechIdM bude po celou dobu migrace zdrojem Waveset. Teprve v okamžiku, kdy budou přepojeny všechny systémy kromě personálního, převedeme pod novou verzi synchronizaci identit z Navisionu a Waveset budeme moci definitivně vypnout.
Postup ilustruje následující série obrázků:
Synchronizační databáze
Z bezpečnostních důvodů mezi sebou Waveset a CzechIdM nekomunikují přímo; do jejich středu jsme umístili synchronizační databázi MySQL. Pro Waveset je běžným koncovým systémem, do kterého on-line exportuje potřebná uživatelská data, pro CzechIdM je autoritativním zdrojem.
Synchronizace organizační struktury
Kromě informací o identitách jsme z Wavesetu do CzechIdM museli převést organizační strukturu. Nakonec jsme se rozhodli pro „synchronizaci zároveň s identitami“. Vycházíme z předpokladu, že prázdná organizace není důležitá. Díky tomu vystačíme s informacemi o identitách: organizaci založíme s první identitou, která se v ní nachází, a smažeme ji s poslední odstraněnou identitou.
Synchronizace rolí
Během postupné migrace jsme narazili na následující problém: některá oprávnění a role se vztahují k systémům, které jsme už převedli do CzechIdM, některé k systémům stále ještě napojeným na SunIdM. Zároveň musí být možné všechny role a všechna oprávnění spravovat přes jedno administrátorské rozhraní, kterým by mělo být rozhraní ve Wavesetu.
Proto do synchronizační databáze ukládáme také informaci o přiřazených rolích ve Wavesetu. Některé role ve Wavesetu se tak vztahují k systémům, které na Waveset dávno připojené nejsou. To nevadí – informace o tom, který uživatel má roli přiřazenou, se propaguje přes synchronizační databázi do CzechIdM, kde se tatáž role přiřadí již automaticky a bez schvalování.
Obvyklý postup při převodu systému
Běžný systém přepojujeme v následujících šesti krocích:
- Implementace konektoru pro CzechIdM.
- Převod související struktury rolí a oprávnění do CzechIdM.
- Převod business procesů souvisejících se systémem.
- Obohacení synchronizační databáze o potřebné informace o identitách.
- Spárování existujících účtů s CzechIdM.
- Odpojení systému od Wavesetu.
Závěr
V článku jsem nastínil problematiku postupné migrace z (Sun IdM) Oracle Waveset na CzechIdM. Pokud vás téma zaujalo a chcete se dozvědět víc, anebo stojíte před podobnou výzvou a potřebujete poradit, napište mi na vojtech.matocha@bcvsolutions.eu!