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.

Nastavení konektoru

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$.

Nastavení atributů

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.