Připojení finančního informačního systému do IdM
Na podzim tohoto roku jsme připojovali finanční informační systém (dále zde označován pod zkratkou FIS) pro vysokou školu od dodavatele BBM. Na této univerzitě již běží Identity Manager Sun/Oracle Waveset, kde je již několik systémů připojených. V tomto článku vás seznámím s průběhem připojení a také s problémy, které při tom nastaly.
Zadání
Identity Manager má za úkol na FISu spravovat uživatele. Přidává nebo odebírá role a také mění jeho atributy. Role ale nevytváří, needituje ani neodstraňuje.
Systém FIS je připojen pomocí JDBC adaptéru. Ten pro provedení požadované operace (create user, update user, …) spouští odpovídající BeanShell skript. Ze skriptu je dále volána funkce v databázi Oracle, která provede příslušné změny. Tyto funkce jsou vytvořeny dodavatelem FIS.
FIS je databázovým systémem, který vytváří, zpracovává a vyhodnocuje data nezbytná pro finanční řízení. FIS zpracovává agendy Účetnictví, Finance, Rozpočet, Majetek, Sklady, Objednávky, Registr smluv a Finanční analýza.
Atributy
U každého účtu, který má v IdM přiřazen systém FIS, jsou použity tyto atributy: přihlašovací jméno, popis, krátký popis, role a uživatelské číslo. Účet se identifikuje podle přihlašovacího jména (zde ho pojmenujme username). Šablona identifikátoru tedy vypadá takto: $username$.
Skripty
ScriptedJDBC adaptér implementuje operace pro správu účtů pomocí tzv. ResourceAction, což je pouze obálka okolo BeanShell skriptu. V následujících podkapitolách jsou popsány jednotlivé skripty.
GetUser
Načte informace o uživateli uložené v FIS. Načteny jsou všechny informace, kromě atributu role. Atribut role bohužel díky struktuře FIS nemůžeme načíst. Díky tomuto považuje Oracle Waveset hodnotu role vždy za nově nastavenou a i pokud se hodnoty nezměnily, ukazuje, že se nastaví nová hodnota.
ListAll
Vrátí jména všech uživatelů z FIS.
CreateUser
Založí nového uživatele v systému FIS. Tento uživatel je nastaven jako Enabled.
UpdateUser
Aktualizuje změněné atributy v Identity Manageru do systému FIS. Hodnota atributu se vymaže, pokud je nastavena na jednu mezeru, protože pokud je hodnota v Identity Manageru prázdná, tak v databázi zůstane nezměněna. To je způsobeno chováním Oracle databáze, která bere prázdný řetězec jako null.
DeleteUser
Smaže uživatele ze systému FIS.
EnableUser, DisableUser
Nastaví zda je uživatel enabled či disabled a zapíše to i do databáze.
Test
Slouží k otestování připojení k FIS.
Application role FIS
Pro nastavení atributů popis, krátký popis a uživatelské číslo byla vytvořena application role FIS. Ta tyto hodnoty nastavuje pomocí pravidel. Popis a uživatelské číslo jsou nastaveny na jednu hodnotu. Krátký popis je pak složen z více atributů náležících účtu.
Tato role musí být přiřazena ke všem ostatním rolím FIS.
Kontrolní rekonciliace (~úplná synchronizace)
Pro kontrolu účtů bylo vytvořeno workflow. Ověřuje, že na systému nedošlo ke změně atributů účtu či k jeho smazání. V případě, že ověření selže, pošle o této skutečnosti email na definovanou adresu (tato adresa je definována v dalším pravidle).
Workflow je voláno během rekonciliace pro každý účet.
Pro hledání změn je vytvořeno pravidlo. Vzhledem k tomu, že nám FIS není schopen vrátit role, které jsme nastavily, je zde připravená Oracle funkce od dodavatele FIS. Do této funkce jako argument pošleme role nastavené v Identity Manageru a funkce nám vrátí, zda je rozdíl mezi těmito rolemi a těmi, které jsou na systému FIS.
Shrnutí
Na připojení FIS byl především zajímavý problém s rolemi, které nebylo možné jednotlivě získat zpět a bylo proto potřeba kvůli tomu vytvořit další funkci. Také zde bylo třeba použít pravidla pro nastavování atributů, aby se ušetřila práce se zadáváním stejných informací. Pokud k připojení budete mít jakékoliv dotazy, či se budete chtít zeptat na něco ohledně Oracle Wavesetu či Oracle databáze, obraťte se prosím na můj mail: adam.lenger@bcvsolutions.eu.