Microsoft Access databáze jako spravovaný systém IdM

Cílem článku je popsat způsob napojení Microsoft Access na správu identit Identity Managerem (dále jen IdM).

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

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

Líbí se mi to:

Další témata