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ů:

1. CzechIdM je nainstalováno po boku Wavesetu

2. Koncový systém je napojen dvakrát – jednou z CzechIdM, jednou z Wavesetu

3. Koncový systém je plně přepojen na CzechIdM

4. Všechny koncové systémy kromě personálního jsou přepojeny

5. Personální systém přepojen na CzechIdM

6. Migrace na CzechIdM dokončena, Waveset vypnut.

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:

  1. Implementace konektoru pro CzechIdM.
  2. Převod související struktury rolí a oprávnění do CzechIdM.
  3. Převod business procesů souvisejících se systémem.
  4. Obohacení synchronizační databáze o potřebné informace o identitách.
  5. Spárování existujících účtů s CzechIdM.
  6. 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!