Mailserver CommuniGate a CzechIdM
Před několika dny se na seznamu systémů, které lze připojit k Identity Managementu CzechIdM, objevil nový přírůstek. Mailserver CommuniGate. Ve svém článku Vás seznámím s možnostmi, které nově implementovaný konektor nabízí, a zmíním se o technologiích, které jsem pro vývoj konektoru využil.
Co konektor umí?
Jeden z našich zákazníků si přál, aby byla každému nově příchozímu zaměstnanci automaticky založena e-mailová schránka. Celá společnost využívá jediné domény na existujícím mailserveru CommuniGate. Nový konektor tedy musí obsloužit celý životní cyklus identit a s tím související požadavky:
- Vytvoření nového účtu
- Změna hesla prostřednictvím webového rozhraní CzechIdM
- Aktualizace existujícího účtu
- Vypsání seznamu existujících účtů
- Zablokování a odblokování účtu
- Autentizaci proti mailserveru coby koncovému systému
- Smazání účtu
Co to přineslo v praxi?
Zákazník získal především automatický dohled nad správou účtů na mailserveru. Zaměstnanci už nemusí vyplňovat papírové žádosti o zřízení schránky, všechny adresy mají jednotný tvar odvozený od jména a příjmení a server přestal být zaneřáděný účty dávno opuštěnými. A co je možná nejdůležitejší: každá provedená akce je bezpečně evidovaná v auditním logu.
Jak konektor funguje uvnitř?
Systém CommuniGate nabízí jednoduchou webovou službu, která umožňuje pomocí rozsáhlé sady textových příkazů splnit prakticky cokoli, co by administrátorovi mohlo přijít na mysl. Nad touto službou existuje celá řada rozhraní pro nejrůznější programovací jazyky.
Jelikož při vývoji konektorů zpravidla používáme Connector Framework napsaný v jazyce Java, sáhl jsem po javovském balíku CGProCLI.jar, který naprostou většinu konzolových příkazů implementuje v metodách jediné třídy – com.stalker.CGPro.CGProCLI.
Vytvoření nového účtu
cGProCLI.createAccount(accountUid + "@" + config.getDomainName(),settings,null,false);
Změna hesla
cGProCLI.setAccountPassword(accountUid + "@" + config.getDomainName(), password);
Aktualizace
cGProCLI.setAccuntSettings(accountUid + "@" + config.getDomainName(), settings);
Vypsání seznamu účtů
Hashtable accounts = cGProCLI.listAccounts(config.getDomainName());
Autentizace
boolean result = cGProCLI.verifyAccountPassword(uid + "@" + config.getDomainName(), password);
Smazání
cli.deleteAccount(uid + "@" + config.getDomainName());
Jak konektor správně konfigurovat?
K tomu, aby konektor správně fungoval, stačí zadat jen šest údajů:
- hostname serveru, na kterém CommuniGate běží
- port, na kterém CommuniGate poslouchá (zpravidla 106)
- uživatelské jméno, pod kterým má CzechIdM ke CommuniGate přistupovat
- heslo k uživateli výše
- název domény
- počáteční povolené služby (CommuniGate poskytuje služeb celou řadu: například sdílený webový kalendář, přístup ke schránce z mobilu, …)
Závěr
V článku jsem Vás seznámil s novým konektorem, který umožňuje napojit mailserver CommuniGate k Identity Managementu CzechIdM. Kdybyste se chtěli ohledně konektoru na něco zeptat, můžete mi napsat na adresu vojtech.matocha@bcvsolutions.eu. Na tuhle adresu mi ostatně můžete napsat, i kdybyste se chtěli zeptat na něco úplně jiného :-). Rád odpovím!