Vedení společnosti AMI Praha se po několika letech rozhodlo ke změně řešení pro řízení a správu identit. Dosud byl využíván produkt Sun Identity Manager, známý také jako Oracle Waveset verze 8. Hlavním důvodem změny nebyly chybějící funkcionality původního produktu (ten by všechny potřeby AMI Praha dokázal pokrýt beze zbytku), ale fakt, že podpora tohoto produktu brzy skončí. Bylo tedy nutné vybrat produkt jiný, který bude stávající i nově požadované funkcionality buď přímo obsahovat, nebo je bude možné jednoduše implementovat.
Volba nového IdM
Po delší diskusi nad možnými kandidáty byl zvolen produkt firmy Evolveum – midPoint Identity Manager. Důvodů pro takové rozhodnutí bylo hned několik: Produkt nabízel všechny požadované funkcionality, nebo je bylo možné zdokumentovaným a oficiálně podporovaným způsobem doimplementovat. Navíc je MidPoint nabízen jako opensource, je tedy možné ho stáhnout ze stránek firmy bezplatně a dokonce i bez jakékoliv registrace. Podle vysoké aktivity na fórech produktu je midPoint hojně využíván a jsou do něj vývojovým týmem přidávány nové a nové funkcionality. Podle ohlasů jeho uživatelů je midPoint velmi oblíbeným nástrojem pro správu identit, bylo tedy pro AMI Praha takovou malou výzvou implementovat právě toto řešení a vyzkoušet ho tak říkajíc „na vlastní kůži“.
Prostředí
V AMI Praha je využíváno několik různorodých aplikací, kterými jsou: Active Directory jako hlavní adresář, USVN – webové rozhraní (klient) pro přístup k repozitáři SVN s uloženými projekty, Bugzilla pro správu servisních požadavků od zákazníků, dále aplikace SEP pro evidenci pracovních činností vyvinutá vlastními vývojáři a GoogleApps jako e-mailový systém.
Z technologického hlediska tedy bylo nutné napojit následující systémy:
- Adresář Active Directory
- Tabulku uživatelů v MySQL databázi pro USVN
- Tabulku uživatelů v MySQL databázi pro Bugzillu
- WebServices na GoogleApps
- WebServices na proprietární aplikaci SEP
Schématické znázornění napojení zmiňovaných aplikací na IdM Evolveum midPoint a tok dat.
Instalace IdM midPoint
Hardwarové a softwarové požadavky midPointu nejsou nijak výjimečné a nijak se neliší od požadavků podobných produktů. Doporučovaným operačním systémem je běžná linuxová distribuce. Dále je vyžadován Apache Tomcat verze 6 a vyšší, Java Development Kit verze 6 a vyšší a pro uložení dat o identitách databáze MySQL nebo PostgreSQL.
V AMI Praha padla volba na operační systém CentOS, Apache Tomcat verze 7, Java Development Kit verze 7 a MySQL databázi verze 5. Server byl vytvořen ve virtuálním prostředí a bylo mu vyhrazeno 4 GB RAM paměti a 50 GB místa na disku.
Samotná instalace IdM midPoint také nebyla nijak složitá a sestávala z několika málo kroků: Stažení WAR souboru midPoint ze stránek firmy Evolveum a jeho nakopírování do adresáře webapps v instalaci Apache Tomcat. Autoinstalační služba Tomcatu pak provedla instalaci a zpřístupnění aplikace IdM MidPoint na URL http://server:8080/midpoint/.
Tím byla základní instalace hotova a bylo možné přistoupit k napojení aplikací a k implementaci požadovaných funkcionalit.
Požadavky
Diskusí s managery jednotlivých oddělení bylo sesbíráno více než 70 požadavků a podnětů pro zapracování funkcionalit do nového IdM midPoint. Tento seznam vycházel ze zkušeností s provozem původního identity manageru, a dále byl doplněn o nové požadavky vzniklé změnou procesů ve firmě.
Hlavními požadavky bylo zejména:
- Automatické vytváření uživatelských účtů v jednotlivých aplikacích při založení v IdM
- Automatické generování loginu podle vzoru
- Uplatnění politiky hesel podle firemních bezpečnostních zásad
- Automatická distribuce hesel do jednotlivých aplikací
- Synchronizace vybraných skupin z Active Directory do IdM a naopak, včetně synchronizace jejich členů
- Automatické vytváření domovského adresáře v Active Directory a nastavení přístupu
- Možnost změny hesla uživatele na portálu IdM
- Možnost nastavení platnosti účtu od/do data a jeho automatické zamknutí po vypršení
- Automatické zamčení účtů ve všech aplikacích po odchodu zaměstnance
- Uživatelský portál v českém jazyce
Napojení Active Directory
Implementace napojení Active Directory je řešena pomocí Connector Serveru, který běží jako služba na straně Active Directory a zajišťuje komunikaci a zpracování požadavků mezi konektorem IdM midPoint a samotným adresářem Active Directory.
Samotní uživatelé jsou zde vytvářeni běžným způsobem v kontejneru Users. Vytváření domovského adresáře je součástí konektoru pro IdM a nebylo tedy problémem tuto funkcionalitu využít a zprovoznit.
Větším oříškem bylo nastavení správné synchronizace skupin/rolí mezi Active Directory a IdM midPoint. Jelikož v dostupné dokumentaci nebyl návod na implementaci této konkrétní funkcionality, obrátilo se AMI Praha přímo na vývojáře midPointu se žádostí o pomoc. Ti zareagovali okamžitě a připravili komplexní dokument s postupem, jak takovou funkcionalitu řešit. Díky jejich ochotě tedy byla bez větších problémů implementována i synchronizace skupin mezi Active Directory a IdM midPoint.
Napojení USVN a Bugzilla
Konektory pro databázové tabulky vycházejí z ICF konektorů firmy ForgeRock. Jejich implementace a napojení na potřebné databázové tabulky opět nepřineslo výraznější problémy.
Důležitým úkolem však bylo zajistit správné kryptování položky pro hesla uživatelů. Při standardním použití konektoru je heslo ukládáno jako čistý čitelný řetězec, což není z bezpečnostního hlediska vyhovující. MidPoint však poskytuje prostředky, jak tuto situaci řešit. Lze využít skriptovací jazyk Groovy nebo ECMAScript a do konektoru požadovanou funkcionalitu dopsat. V AMI Praha tak pro kryptování hesla byl dopsán kód v jazyce Groovy, jenž kryptuje hesla pomocí funkce MD5.
Napojení GoogleApps
Konektor pro GoogleApps opět vychází z ICF konektoru firmy ForgeRock. V tomto případě však lze použít pouze konektor starší verze, který má některá omezení. Potřebám v AMI Praha však tato verze zcela vyhovuje a proto mohl být použitý pro napojení aplikace. Lze předpokládat, že s rozvojem midPointu a s jeho rozšířením bude tento konektor doplněn i o nové funkcionality, které nabízí současné rozhraní GoogleApps. Implementace tohoto konektoru v prostředí AMI Praha také nepřinesla žádné výraznější problémy.
Napojení SEP
Časově nejnáročnější implementací bylo napojení proprietární aplikace SEP. Ta nabízí administraci uživatelů přes webservices a proto bylo nutné vytvořit vlastní konektor, který bude požadavky zpracovávat a provádět. Naštěstí je součástí distribuce midPointu skelet ICF konektoru připravený právě pro tyto případy. Lze ho tedy využít a dopsat do něj vlastní implementaci jednotlivých metod.
Po implementaci vytvořeného konektoru pak již nebyl problém pracovat s účty uživatelů SEPu v midPointu jako s každým jiným objektem.
Portál pro uživatele
MidPoint obsahuje webový portál jak pro koncové uživatele, tak pro administrátory. Ačkoliv portál nabízí uživatelům mnoho užitečných funkcí, bylo v AMI Praha rozhodnuto, že uživatelům bude povolena pouze funkce změny hesla do napojených aplikací a zobrazení informací o vlastních aplikačních účtech.
Tento požadavek byl splněn konfigurací přístupových práv, kdy běžní uživatelé vidí v nabídce pouze možnost změny hesla a na hlavní stránce pouze informace o napojených účtech.
V dokumentaci midPointu je popsán postup překladu portálu i do dalších jazyků. Nebyl proto větší problém provést překlad i do českého jazyka.
Závěr
Implementace IdM Evolveum midPoint v AMI Praha splnila očekávání managementu a lze ji považovat za úspěšnou.
Vyzdvihnout lze hlavně bezproblémovou spolupráci přímo s vývojáři midPointu a s jejich velikou ochotou při řešení problémů, zejména při implementaci funkcionality synchronizace skupin Active Directory. Vytknout lze snad jen slabší dokumentaci k některým vlastnostem midPointu, které jsou v něm ukryté a čekají na své objevení.
MidPoint lze s úspěchem nasadit v akademickém prostředí vysokých škol, kde lze přesně specifikovat jednotlivé komunity uživatelů bez nutnosti řešit složité workflow procesy. Svědčí o tom mimo jiné již úspěšné nasazené a provozované implementace na školách po celém světě. MidPoint lze vřele doporučit i jako alternativu ke komerčním řešením.
Autor: Roman Pudil