Microsoft Access databáze jako spravovaný systém IdM
Cílem článku je popsat způsob napojení Microsoft Access jako spravovaný systém IdM – Identity Managerem.
Microsoft Access je vyvíjen společností Microsoft již od roku 1992. Je i po letech stále aktivní a k dispozici jako součást balíku Microsoft Office. Samotný program Microsoft Access je uživatelský nástroj pro správu relačních databází a tvoření uživatelských formulářů nad těmito databázemi.
S jakýmkoliv řešením postaveným nad těmito databázemi se dnes už setkáváme velmi zřídka. Ale stále existuje spousta již zaběhnutých systémů. Mohou například řídit docházku, nebo přístup ke dveřím. My jsme se také s jednou z těchto aplikací v průběhu napojování nejrůznějších systému potkali. Pojďme si ukázat, jak to probíhalo.
Jedno z prvních zvažovaných řešení pro napojení Microsoft Access byla migrace do klasické databáze MS SQL databáze. Migrace je ovšem časově náročná a byl by zcela jistě nutný zásah subdodavatele. Proto jsme tuto cestu nezvolili.
Celé napojení se nám podařilo realizovat pomocí opensource JDBC driveru UCanAccess. Výsledek v IdM je pak realizován pomocí standardního napojení, jaké známe z dalších systémů, například LDAP nebo AD. Jako konektor lze například použít tabulkový, který je jeden z nejjednodušších na správu z pohledu IdM a je dostupný již v základní aplikaci IdM.
Diagram průběhu komunikace mezi IdM a Microsoft Access
Celá komunikace s MS Access databází z pohledu IdM probíhá zcela běžně jako u všech jiných napojených systému v IdM. Dokážeme provádět vytvoření, čtení, úpravu a mazání (též známé jako CRUD operace) nad všemi záznamy v databázi. Pro přípravu dat do systému mohou být použity běžné transformační skripty, které lze vytvářet a upravovat přímo v aplikaci IdM. Na celou správu MS Access systému se také mohou vztahovat i všechna běžná chování IdM. Například vygenerování prvního hesla pro založení identity na koncový systém, dopředný provisioning a další.
Samotný JDBC driver má mnoho možností nastavení, které mohou být definovány přímo v GUI IdM pomocí parametrů připojení. Jedná se například o tyto zajímavé nastavení:
- otevření databáze v exkluzivním režimu – soubor s databází bude otevřen pouze pro čtení a zápis z IdM a ostatní procesy musí počkat. Podobné chování jako například v případě zámků nad jinými databázemi,
- nastavení časového limitu (timeout) pro jedno připojení – po vypršení limitu je připojení ukončeno a okamžitě nahrazeno novým,
- ignorování velikosti písmen – poměrně šikovné nastavení v případě, že názvy sloupců nejsou sjednocené a obsahují kombinací velkých i malých písmen,
- remap – tato možnost dovoluje změnit cesty k externím databázím. V praxi to znamená, že můžeme změnit tok dat a místo do chráněných tabulek zapisovat data do jiných,
- encrypt – tato možnost nám dovoluje otevřít zašifrované databázové soubory více o si povíme níže.
Pro napojení více databázových tabulek v IdM využíváme JDBC skriptovaný konektor. Tento konektor lze využít i v případě MS Access. Je tak možné pomocí jednoho napojení spravovat i více hodnotové atributy. Například přiřazené role uživatelům. V samotných skriptech konektoru můžeme využít obvyklé SQL příkazy (DDL, DML, …). Dokumentace UCanAccess obsahuje i příklady jednotlivých příkazů, ze kterých lze vycházet. Co je velmi užitečné je i volání vlastních funkcí přímo v MS Access. Není tak nutné znovu implementovat specifické chování například pro zakládání uživatelů.
Většina MS Access databází je chráněná heslem případně jinou metodou, aby přístup nim byl kontrolovaný. Jak jsme již výše zmiňovali nastavení konektoru encrypt umožňuje nastavit způsob otevření databáze i včetně šifrování. Pro tento krok je nutná implementace vlastního kódu který je zhruba na 10 řádku. Příklad této třídy, která zaručí otevření zaheslované databáze:
public class CryptCodecOpener implements JackcessOpenerInterface { @Override public Database open(File file, String password) throws IOException { DatabaseBuilder dbd = new DatabaseBuilder(file); dbd.setCodecProvider(new CryptCodecProvider(password)); dbd.setAutoSync(false); dbd.setReadOnly(false); return dbd.open(); } }
Tímto krokem se nám zpřístupní možnost otevřít zaheslované databáze MS Access, určit kódování souborů a spousta dalších nastavení. Komunikace se zaheslovanou databází pak z pohledu IdM opět funguje zcela běžně jako pro jiné napojené systémy.
Stejně jako provisioning do MS Access je možná i synchronizace, případně pokud není k dispozici časové razítko (timestamp) je možná i rekonciliace. Systém MS Access také umožňuje číst schéma svých tabulek, což v IdM dovoluje automaticky vygenerovat celé schéma pro všechny atributy, které lze mapovat, a usnadní tak práci s vytvářením celého mapováním.
Schéma lze vygenerovat i pro systém MS Access
Pokud vás zajímá více z napojení MS Access, případně chcete celý proces správy vašich identit automatizovat pomocí IdM, neváhejte se ozvat na email: info@bcvsolutions.eu.
Zaujala vás integrace MS Access do IdM? Máte rádi pestrou a zajímavou práci? Chcete si také zkusit napojit nestandardní systém? Zkuste zhlédnout naše volné pozice a příští napojení zajímavého systému do IdM může být to vaše :)
Mohlo by vás také zajímat
Seriál o Identity Managementu:
- Co je to Identity Management?
- Jak vybrat IDM?
- Jak migrovat Identity Management?
- Modely spolupráce s dodavatelem IDM.
- Jak zabrátit vendor lock-in?
- Jak z personalistiky identifikovat vedoucího pro IDM?
- Jak se zbavit rutinních úkolů při správě IT systému automatizací Identity Managementu?
- Jak správně testovat IdM?
- Jak správně nasadit IDM do produktivního provozu?
- API pro připojení systému do IDM
- Co je to SCIM?
- IdM nebo formulářový systém?
- Netradiční využití IdM 1, 2, 3
O CzechIdM:
- Podporované konektory
- Základní funkce
- Jak na samoregistraci a žádost o VPN?
- Jak na reset hesel z Windows? Password filtr
- Napojení JIP/KAAS.
- Správa MS-Acess.
- IdM a napojení Moodle
- Integrace CzechIdM a DMS
- Integrace CzechIdM a CRM Salesforce
- Vytváření nových formulářů v CzechIdM
- Napojení MS-AD do CzechIdM
- Co jsou to business role
- Jak spravovat vnořené skupiny v MS-AD
- Správa personálního systému a časové řezy