Napojení portálu na CzechIdM
Před několika týdny jsme u zákazníka úspěšně nasadili Identity Manager CzechIdM pro správu uživatelských účtů ve webovém portálu. V článku, jehož úvod si právě čtete, se zblízka podíváme na architekturu napojení a na použité technologie.
Možná řešení
CzechIdM zpravidla komunikuje s koncovými systémy jejich vlastními nativními protokoly – tak, jak by činil běžný administrátor. Napojovaný portál coby úložiště dat o uživatelích používá stromovou strukturu LDAPu, konkrétně Sun Java System Directory Server ve verzi 6.3.1. Nabízelo by se tedy přistupovat přímo k datům naším standardním LDAP konektorem, který používá běžné knihovny jazyka Java pro práci s LDAP.
Jedním z požadavků zákazníka však byla správa rolí a skupin, které portál používá coby zdroj oprávnění. Přirozenější cestou by proto mohla být komunikace s Access Managerem, který přiřazování a odebírání rolí a řazení do skupin zajišťuje. Pomocí Access Manageru by rovněž bylo možné vytvářet a mazat uživatelské účty. Naproti tomu čtení dat by muselo být prováděno jiným způsobem.
SSH konektor
SSH konektor je způsob, jak pomocí sady připravených shell skriptů napojit téměř libovolný systém, který lze spravovat z konzole, v minulosti jsme ho použili například pro napojení systému Request Tracker. Podobnou cestu jsme zvolili i tentokrát: velkou většinu požadovaných akcí je možné zajistit komunikací s Access Managerem, a sice s jeho jediným nástrojem – konzolí amadmin, s jejíž pomocí lze provést korektní přiřazování rolí a řazení do skupin. Těchto rolí a skupin, uložených v LDAPu, pak využívá portál k vyhodnocování přístupových oprávnění. Některé akce však pomocí konzole amadmin provádět nelze; modifikaci údajů a čtení dat je proto nutné provádět jinými standardními konzolovými nástroji – příkazy ldapsearch a ldapmodify.
Amadmin přijímá vstupní data ve formátu xml. Hlavním úkolem skriptů konektoru je tedy převést atributy identity do xml formátu a ten přeposlat konzoli amadmin, která se už postará o zbytek. Čtení dat probíhá přes ldapsearch, skripty proto zpracovávají formát ldif do formátu csv. Celkovou architekturu napojení vystihuje obrázek:
Skripty
Aby CzechIdM dokázal spravovat účty na koncovém systému, musí být schopen provádět následující akce:
- vypsání seznamu všech účtů
- získání atributů konkrétního účtu
- vytvoření nového účtu
- smazání účtu
- změna atributů na účtu
Každou z uvedených akcí obsluhuje jeden shell skript spouštěný konektorem přímo v konzoli serveru, na kterém portál běží. Kromě skriptů, které provádějí výše uvedené akce, jsme vytvořili sadu pomocných skriptů pro převod mezi jednotlivými datovými formáty: pro načítání z csv, pro konverzi z ldif do csv a pro konverzi z csv do xml.
Klíčovým bodem každého skriptu je jeho komunikace s koncovým systémem. Ta, jak už bylo řečeno, probíhá jednak přes amadmin konzoli, jednak přímým čtením z datového úložiště – LDAPu:
amadmin -v -c -u admin -w password -t entry.xml >> debug.log
V příkazu výše značí -v “verbose” variantu výstupu, tedy co nejobšírnější pro logování do souboru (v našem případě do souboru debug.log). Vstupní xml soubor se udává za přepínačem -t, -u a -w slouží ke specifikaci uživatele a hesla, přes které se budeme ke konzoli amadmin přihlašovat.
ldapsearch -h localhost -p 389 -D "cn=Directory Manager" -w password -T -b c=cz,o=organization,ou=people uid=$NAME nsRoleDN iplanet-am-static-group-dn
S pomocí tohoto příkazu zase snadno načteme aktuálně přiřazené role a členství ve skupinách.
Správa rolí a skupin prostřednictvím CzechIdM
V prostředí zákazníka existují desítky skupin, do nichž může být uživatel zařazen, a rolí, které mu mohou být přiřazeny. Po napojení na CzechIdM je nově možné všechna tato oprávnění spravovat snadno z administrátorského rozhraní. Každé roli a skupině odpovídá jedna role v CzechIdM. To přináší další výhody, v Identity Manageru obvyklé: role lze snadno sdružovat do business rolí, které je možno odebírat a přiřazovat jako roli jedinou. Složitou strukturu rolí, které mají být přiděleny nově příchozímu zaměstnanci, je tak možné přidělit přes rozhraní CzechIdM několika kliknutími myši.
Přínosy pro zákazníka
Co výše popsaným řešením získal zákazník?
- automatickou správu uživatelských účtů v portálu – zakládání účtů novým zaměstnancům, blokování starých účtů, možnost změnit hesla na jednom místě v rozhraní CzechIdM
- auditovatelnost uživatelských oprávnění v čase
- automatickou synchronizaci všech popisných údajů v portálu s údaji v personálním systému
- přehledné rozhraní pro správu rolí a skupin
- jednoduché schvalovací procesy týkající se oprávnění v portálu
Závěr
V článku jsme se seznámili s napojením portálu na CzechIdM a s některými technickými detaily. Pokud se o CzechIdM chcete dozvědět více, neváhejte a napište mi na vojtech.matocha@bcvsolutions.eu, všechny Vaše otázky rádi zodpovíme!