Portál AbcLinuxu, 3. května 2025 17:38
Něco málo teorie o softwaru Sun Java Identity Manager (dále IDM). V praktické části bude čtenář seznámen s uživatelským rozhraním a zkusíme si založit nového uživatele.
Kapitola 1. Komunikační rozhraní Identity Manageru
1.1. Teorie
1.1.1. Co je Identity Manager, k čemu je to dobré?
1.1.2. A co IDM není?
1.1.3. Základní pojmy a vlastnosti se kterými se můžete setkat v IDM
1.2. Jakým způsobem můžeme k IDM přistupovat?
1.2.1. Webové rozhraní
1.2.1.1. Administrátor
1.2.1.2. Uživatel
1.2.2. Business Process Editor
1.2.2.1. Lokální spuštění BPE
1.2.2.2. Vzdálený přístup z BPE
1.2.3. Textová konzole
1.2.4. NetBeans IDE
1.2.5. Dokončení instalace
1.3. Připojení IDM ke koncového systému
1.3.1. MySQL tabulka
1.3.1.1. Vytvoření testovací tabulky
1.3.1.2. Připojení k tabulce
1.3.2. Založení uživatele
1.4. Identity Manager - Připravené demo
1.5. Co bude příště?
IDM je nástroj pro centralizaci a automatizaci správy uživatelských identit (účtů, skupin atd.) v celé síti a to bez výrazných zásahů do fungování stávajících systémů. Komunikace s koncovými systémy probíhá jejich nativními protokoly (LDAP, JDBC, SSH, ...).
Seznam standardně podporovaných koncových systémů, které umí Identity Manager spravovat pomocí tzv. konektorů, najdete v tabulce A.1 – „Seznam podporovaných koncových systémů“ v příloze.
Pokud jste v odkazované tabulce nenašli svůj systém, který byste chtěli spravovat, nezoufejte. Konektor pro správu koncového systému (Resource Adapter) je možné vyvinout na míru. V archivu instalačních souborů v adresáři REF najdete dokumentaci pro vývoj konektoru, zdrojové soubory některých konektorů a připravené šablony pro vlastní tvorbu.
IDM je plně programovatelný a rozšiřitelný software. Lze jej přizpůsobit na míru téměř každé sítě a každého koncového systému, který má být spravován. IDM si můžete představit jako výkonné jádro (motor) obalený sadou formulářů, workflow a pravidel, pomocí kterých je vytvořeno komunikační rozhraní a všechny funkce IDM.
Identity Manager není náhradou za centrální adresář (LDAP server, Active Directory) nebo databázi pro uchovávání informací o uživatelích a jejich ověřování. Je to jiný nástroj, dalo by se na něj spíš pohlížet jako na velmi chytrou správcovskou konzoli.
Workflow automatizuje procesy schvalování a notifikace, změny oprávnění a změny údajů v identitě uživatele.
Obrázek 1.1. Workflow - vytvoření uživatele
Pravidla (Rules) jsou funkce sloužící ke zjednodušení práce. Využívají se pro získávání a generování různých informací o systémech, skupinách a uživatelích. Pravidla se většinou zapisují v jazyce XPRESS. Ukázka jednoduchého pravidla, které ze jména (firstname) a příjmení (lastname) vytvoří celé jméno (fullname).
<concat> <ref>global.firstname</ref> <string> </string> <ref>global.lastname</ref> </concat>
Běžný přístup k Identity Manageru je přes jeho webové rozhraní. Administrátoři a vývojáři mají navíc k dispozici tlustého klienta - Business Process Editor případně NetBeans IDE.
Rozhraní určené pro administrátory umožňuje v závislosti na přiděleném oprávnění provádět různé akce s uživatelskými účty: od jednoduchého založení, přes modifikaci účtu až po různé dávkové operace, generování statistik a mnoho dalšího.
Administrátor s nejvyššími pravomocemi má výchozí login configurator. Výchozí heslo pro uživatele configurator po instalaci je configurator, doporučuji ho co nejdříve změnit na nějaké více bezpečné.
Administrátorské rozhraní je na http://localhost:8080/idm.
Obrázek 1.2. IDM - Administrátor
Uživatelské rozhraní je určené pro přístup běžných uživatelů. V závislosti na konfiguraci IDM umožňuje uživateli změnit heslo a základní informace o sobě. Dále zde má uživatel přístup k formulářům pro schvalování, případně vyvolání některých akcí workflow a také si může zobrazit stav svých úloh.
Rozhraní pro uživatele je na http://localhost:8080/idm/user.
Obrázek 1.3. IDM - uživatel
Business Process Editor (dále jen BPE) je důležitou součástí IDM. BPE je vývojářský nástroj sloužící k návrhu webových formulářů, workflow, pravidel a také umožňuje konfigurovat některé parametry IDM.
BPE je možné spouštět lokálně na stroji s nainstalovaným IDM nebo vzdáleně například z pracovní stanice. Na pracovní stanici může být samozřejmě i jiný operační systém, než máte na serveru.
BPE je součástí instalace Identity Manageru. Pro jeho spuštění potřebujete fungující Javu, na unixových OS ještě X server a vyexportovanou proměnnou WSHOME. Proměnná WSHOME ukazuje na místo, kde je IDM nainstalován, v mém případě je to /opt/tomcat/webapps/idm
(vyexportování proměnné v Bash: export WSHOME=/opt/tomcat/webapps/idm
).
BPE se poté spouští příkazem $WSHOME/bin/lh config
. Po spuštění budete vyzváni k zadání pracovního adresáře (obrázek 1.4 – „BPE - Workspace location“). Pokud je zvolený adresář prázdný (neobsahuje pracovní soubory BPE, obrázek 1.5 – „BPE - Create new workspace“), budete muset nastavit parametry připojení a login s heslem (obrázek 1.6 – „BPE - Connection information“). Z BPE se k IDM připojíme jako uživatel configurator. Po startu BPE uvidíte jednoduché okno s menu nahoře a dvěma panely (obrázek 1.7 – „Business Process Editor“).
Obrázek 1.8 – „BPE - dva pohledy na jedno pravidlo“ ukazuje, jak vypadá otevřené pravidlo v různých pohledech. Objekty z IDM se otevírají v menu File -> Open Repository Object....
Obrázek 1.4. BPE - Workspace location
Obrázek 1.5. BPE - Create new workspace
Obrázek 1.6. BPE - Connection information
Obrázek 1.7. Business Process Editor
Obrázek 1.8. BPE - dva pohledy na jedno pravidlo
Pro vzdálený přístup je potřeba v dialogu pro nastavení parametrů připojení nastavit Connection type na SOAP a správně nastavit URL. V URL je ve většině případů potřeba změnit server a port (obrázek 1.9 – „BPE - Connection information - SOAP“).
Obrázek 1.9. BPE - Connection information - SOAP
Při vývoji, případně správě Identity Manageru, se někdy hodí příkazový řádek. Je možné ho spustit příkazem $WSHOME/bin/lh console
(obrázek 1.10 – „lh console“). Z konzole je možné spouštět některé úlohy, provádět dump databáze a vypisovat spoustu zajímavých informací.
Obrázek 1.10. lh console
Od verze 7.0 je možné integrovat IDM s vývojovým prostředím NetBeans IDE 5. Modul do NetBeans com-sun-idm-ide.nbm je součástí balíku stažených instalačních souborů IDM. Integrace IDM a NetBeans je popsána v dokumentaci k IDM. Nemá smysl, abych to zde opisoval, proto uvedu jen pár screenshotů, abyste si udělali představu, jak integrace IDM a NetBeans vypadá.
Obrázek 1.11. IDM a NetBeans 5.5 - nový projekt
Obrázek 1.12. IDM a NetBeans 5.5 - editace pravidla
V minulém díle jsem zapomněl na malou drobnost: do adresáře $WSHOME/WEB-INF/lib
nakopírujte soubory mail.jar a activation.jar a restartuje aplikační server.
Už po prvním spuštění IDM můžete zakládat v administrátorském rozhraní uživatelské účty, ale zatím jen pro samotný Identity Manager. Abyste si mohli zkusit založení účtu i na nějakém spravovaném systému, připojíme si IDM k databázové tabulce v MySQL.
Následující sada SQL dotazů vytvoří uživatele idm-test s heslem demo1234 a stejnojmenou databázi s tabulkou uzivatele. Pro snadnější práci s MySQL databází doporučuji nainstalovat nějaký klikací nástroj typu phpMyAdmin.
CREATE DATABASE `idm-test`; CREATE USER "idm-test"@localhost IDENTIFIED BY "demo1234"; GRANT USAGE ON * . * TO "idm-test"@"localhost" IDENTIFIED BY "demo1234"; GRANT ALL PRIVILEGES ON `idm-test` . * TO "idm-test"@"localhost" WITH GRANT OPTION ; USE `idm-test`; CREATE TABLE `uzivatele` ( `login` CHAR( 16 ) NOT NULL , `jmeno` CHAR( 16 ) NOT NULL , `prijmeni` CHAR( 32 ) NOT NULL , `email` CHAR( 128 ) NOT NULL , `heslo` CHAR( 64 ) NOT NULL , PRIMARY KEY ( `login` ) ) ENGINE = MYISAM CHARACTER SET UTF8;
Když máme tabulku v MySQL databázi vytvořenou, můžeme se k ní připojit z Identity Manageru. Konektor (Resource Adapter) pro připojení k databázové tabulce je s IDM standardně dodáván, pro jeho zprovoznění je třeba doinstalovat JDBC knihovnu pro danou DB a nakonfigurovat ho přes webové rozhraní.
Protože používáme MySQL jako úložiště pro metadata, JDBC knihovnu jsme přidali do IDM už při jeho instalaci.
Konfigurace přes webové rozhraní se provádí pod administrátorským účtem (login configurator, http://localhost:8080/idm/resources/list.jsp). Konfigurace konektoru probíhá v několika krocích:
Configure Managed Resources - první krok konfigurace je povolení typu konektoru, na stránce Configure Managed Resources (http://localhost:8080/idm/resources/managedResources.jsp) vyberte Database Table a uložte (Obrázek 1.13 – „Resources - Configure Types“)
New Resource - po uložení dokončení předchozího kroku budete vráceni na seznam koncových systémů (zdrojů). V menu Resource Type Actions zvolte položku New Resource (budete odkázáni na URL http://localhost:8080/idm/resources/resourcecreate.jsp?newView=true). V rolovacím menu zvolte typ konektoru Database Table a pokračujte dál.
Database Access Parameters - formulář pro nastavení připojení k databázi je přehledný (Obrázek 1.14 – „MySQL Table Resource Wizard - Database Access Parameters“). Doporučuji vyplnit následující hodnoty:
Obrázek 1.14. MySQL Table Resource Wizard - Database Access Parameters
Database Tables - dalším krokem je výběr tabulky s uživateli (Table Type: TABLE, Table: uzivatele) a poté vybrání ovládaných sloupečků tabulky (Obrázek 1.15 – „MySQL Table Resource Wizard - Database Columns“).
Obrázek 1.15. MySQL Table Resource Wizard - Database Columns
Account Attributes - Sloupečky z tabulky je potřeba namapovat na proměnné Identity Manageru, k tomu slouží další dialog v průvodci konfigurací. Sloupečky login a password jsou namapovány automaticky, zbývají tedy jen sloupečky jmeno, prijmeni a email.
Obrázek 1.16. MySQL Table Resource Wizard - Database Columns
Identity System Parameters - posledním krokem v konfiguraci konektoru je nastavení jeho názvu (Resource Name) a zvolení atributu, který bude uživatele identifikovat ve formulářích pro změnu hesla (Display Name Attribute). Tento formulář dovoluje i další nastavení, jako je zakázání konkrétních akcí na koncovém systému (Supported Features), definici politiky hesel a loginů (Password, Account Policy), přiřazení schvalovatelů (Approvers) nebo přiřazení koncového systému organizaci (organizace jsme zatím neřešili, necháme si je na příští díl).
Po uložení konfigurace se dostanete na stránku Configure Identity Attributes?, kde zvolíte No.
Identity Manager je napojen na tabulku v MySQL databázi a zbývá pouze otestovat zakládání uživatelů.
Obrázek 1.17. New User
Obrázek 1.18. Edit User - uzivatel1
Společnost Avnet poskytla pro testovací účely nainstalovaný a nakonfigurovaný Identity Manager. Pro snadné použití je demo image vytvořen pro VMware. Z IDM jsou spravovány účty v databázi MySQL, Linuxu (CentOS) a testovacím XML souboru.
Demo systém je dostupný ke stažení na www.sunjava.cz.
Identity Manager je nainstalovaný, umíte se na něj připojit pomocí BPE a přes web, zvládnete připojit koncový systém a založit uživatele. V dalším díle se připojíme na Linux a MS Windows, ukážeme si jak funguje delegace práv a také si nastavíme schvalovací proces pro přidělování prostředků uživateli.
Tabulka A.1. Seznam podporovaných koncových systémů
Resource | Supported Versions | Active Sync Support | Gateway? | Communication Protocols |
---|---|---|---|---|
CRM and ERP Systems | ||||
Oracle Applications | Oracle Financials on Oracle Applications 11.5.9,11.5.10 | No | No | JDBC |
PeopleSoft Component | PeopleTools, 8.1 – 8.42, with HRMS, 8.0 – 8.8 | Yes, Smart polling, Listener | No | Client connection toolkit (Sync Only) |
PeopleSoft, Component Interface | PeopleTools, 8.1 through 8.4. | No | No | Client connection toolkit (Read/Write) |
SAP | SAP R/3, 4.5, 4.6, 4.7 | No | No | BAPI via SAP Java Connector |
SAP HR, 4.5, 4.6, 4.7 | Yes, Smart polling, Listener | ALE | ||
SAP Enterprise Portal | 6.20 SP2+ | No | No | SAP User Management Engine |
Siebel CRM | 6.0, 7.0, 7.7, 7.8 | No | No | Siebel Data API |
Databases | ||||
DB2 | 7.0, 7.2, 8.1, 8.2 | No | No | JDBC, SSL |
Microsoft SQL Server | 2000, 2005 | No | No | JDBC, SSL |
MySQL | 4.1 | No | No | JDBC, SSL |
Oracle | 8i, 9i, 10g | No | No | JDBC, SSL |
Sybase | 12.x | No | No | JDBC, SSL |
Directories | ||||
LDAP | 3.0 | Yes, Smart polling, Listener | No | LDAP v3, JNDI, SSL |
Microsoft Active Directory | 2000 SP4, 2003 | Yes, Smart polling | Yes | ADSI |
NetWare NDS | Netware 5.1 SP6 Netware6.0 with eDirectory 8.7.1 Novell SecretStore 3.0 | Yes, Smart polling | Yes | NDS Client,, LDAP, SSL |
Message Platforms | ||||
Lotus Domino Gateway | 5.0, 6.5 | Yes, Smart polling | Yes | RMI, IIOP using Toolkit for Java, CORBA |
Microsoft Exchange | 5.5 | No | Yes | ADSI |
Note: Support for the Microsoft Exchange 5.5 resource adapter has been deprecated. Use the Active Directory resource for Exchange 2000/20003, which is integrated with Exchange. | ||||
Novell GroupWise | 5.5, 6.0 | No | Yes | NDS Client,, LDAP, SSL |
Miscellaneous | ||||
Database Table | Yes, Smart polling | No | JDBC | |
Flat File ActiveSync | Yes, Smart polling (Internal Diff engine) | No | ||
INISafe Nexess | 1.1.5 | com.initech.eam.api Classes | ||
JMS Listener | 1.1 or later | Yes | No | Varies, per resource |
Microsoft Identity Integration Server | 2003 | No | No | JDBC |
Remedy Help Desk | 4.5, 5.0 | Yes, Smart polling | Yes | Remedy APIs |
Scripted Gateway | Not applicable | Yes | Varies, per resource | |
Scripted Host | Not applicable | No | TN3270 | |
Sun Java™ System Communications Services | Yes | No | JNDI over SSL or TCP/IP | |
Operating Systems | ||||
AIX | 4.3.3, 5.2, 5.3 | No | No | Telnet, SSH |
HP-UX | 11.0, 11i v1,, 11i v2 | No | No | Telnet, SSH |
OS/400 | V4r3, V4r5, V5r1, V5r2, V5r3 | No | No | Java toolkit for AS400 |
Red Hat Linux | Linux 8.0, 9.0 | No | No | Telnet, SSH |
Advanced Server, 2.1, 3.0, 4.0 | ||||
Solaris | 2.7, 7, 8, 9, 10 | No | No | Telnet, SSH |
SuSE Linux | Enterprise 9 | No | No | Telnet, SSH |
Windows NT, 2000, and 2003 | NT, 2000, 2003 | No | Yes | ADSI |
Security Managers | ||||
ACF2 | 6.4, 6.5sp2, TSO 5.2, 5.3, CICS 2.2 | No | No | Secure TN3270 |
ActivCard | 5.0 (AIMS 3.6) | No | No | AIMS SDK, HTTPS |
ClearTrust | 5.01 | No | No | Server Proxy API, JNDI, SSL |
Natural | No | No | Secure TN3270 | |
RACF | 1.x, 2.x | No | No | Secure TN3270 |
SecurID ACE/Server | 5.0, 6.0 for Windows | No | Yes | SecurID, Admin API |
5.1, 6.0 for UNIX | SecurID TCL Interface | |||
Top Secret | 5.3 | Yes, Smart polling (Filtered TSS Audit Events) | No | Secure TN3270 |
Web Single Sign On (SSO) | ||||
IBM/Tivoli Access Manager | 4.1, 5.1, 7 | No | No | JNDI, SSL |
Netegrity Siteminder | Admin 5.5 | No | No | Netegrity SDK, JNDI, SSL |
LDAP 5.5 | JNDI, SSL | |||
Table 5.5 | JDBC, JNDI, SSL | |||
Sun Java System Access Manager | Sun ONE Identity Server 6.0, 6.1, 6.2 | No | No | JNDI, SSL |
Note: Support for the Sun ONE Identity Server resource adapter has been deprecated. Use the Sun Java System Access Manager resource adapter instead. | ||||
Sun Java System Identity Server 2004Q2 | No | No | JNDI, SSL | |
Sun Java System Access Manager 6 2005Q1, 7 2005Q4 |
Mam z toho trosku smisene pocity. Urcite to vypada zajimave, nicmene kdyz jsem to zkousel, trosku me odradila slozitost. Mame ted sice nekolik systemu pouzivajicich ruzne user DB, ale spis se to snazime sjednotit na LDAP. A kde to nepujde, tak spis pridelame jednoduche (treba PHP) rozhrani na vytvoreni uzivatele a zmenu hesla (pripadne na upravu nekolika dalsich hodnot).Sun Identity Manager (IdM) má velké množství funkcí a je velmi přizpůsobivý. Proto může na první pohled vyvolávát dojem složitosti. Samozřejmě všemu je třeba věnovat nějaký čas na pochopení, stejně jako studiu PHP. Hlavní rozdíl mezi vytvořeným PHP prográmkem a IdM je to, že v IdM již máte robustní systém, který to zvládá s workflow, formluláři, zpětnou vazbou pro audit a mnoho dalšího. Tudíš není nutné většinou nic kódovat, ovšem je třeba věnovat určitý čas konfiguraci.
Zda se mi to, nebo je IM jen pro velke podniky s 20 a vice ruznymi UserDB? Asi jsem to jeste uplne nepochopil, ale zda se mi to celkem slozite na nastaveni i pouzivani (a asi to nebude jenom zdani, kdyz ani ve druhem clanku jeste neni popis relaneho pouziti).Ne není to tak. Samozřejmě čím více je koncových systémů, tím více se z nasazení IdM profituje.
Povedlo se mi nainstalovat IM, nastavit ho, aby pouzival LDAP server, ale porad se mi tam plete "SPE End-User Directory" a nejde odstranit. Dokazete mi poradit, aby se tam tohle nepletlo? Proste chci spravovat stavajici LDAP server a na nem uzivatele. Zadny "SPE End-User Directory" nemam a nechci. Melo by to byt nastaveni Service Provider, ale co to proboha znamena? Vy jste ho v prikladu nemusel nastavovat?Navrhuji praktickou ukázku, která bude nejlěpší. Zabýváme se se Zdeňkem konzultacemi kolem správy identit a rádi osvětlíme možnosti. Neváhejte nás kontaktovat, provedeme ukázku podle požadavků (LDAP, unix, SQL DB ...) nebo zašleme pozvánku na nejbližší pořádaný workshop.
Sun Identity Manager (IdM) má velké množství funkcí a je velmi přizpůsobivý. Proto může na první pohled vyvolávát dojem složitosti. Samozřejmě všemu je třeba věnovat nějaký čas na pochopení, stejně jako studiu PHP. Hlavní rozdíl mezi vytvořeným PHP prográmkem a IdM je to, že v IdM již máte robustní systém, který to zvládá s workflow, formluláři, zpětnou vazbou pro audit a mnoho dalšího. Tudíš není nutné většinou nic kódovat, ovšem je třeba věnovat určitý čas konfiguraci.Samozrejme uznavam, ze IdM je robustni a umi toho spoustu. Problem je akorat v tom, ze pokud mam LDAP a MySQL user DB a chci menit pouze hesla a pripadne nejake dalsi 2-5 nastaveni, tak se mi asi moc nevyplati ucit se IdM a konfigurovat s tim, ze 95% funkci nevyuziju, ale je jednodussi napsat behem 2 hodinek nejakou pritulnou jednoduchou PHP aplikaci (rekneme s max. 10 PHP soubory), kdyz PHP jazyk uz znam a nemusim se ho ucit a muzu ho vyuzit na X dalsich projektu. Verim, ze vam by konfigurace v nasem prostredi zabrala mozna i hodinku:) Ale pro me to znamena se to ucit, pak to konfigurovat, experimentovat atd. a to asi nestoji za tech 5% funkci, ktere muzu mit behem zlomku ceny za napsani PHP stranek.
Souhlasim. Takze pro nas pripad je asi IdM jako kanon na vrabce. Nicmene se jeste pokusim se ho nejak prokousnout, ale jak jsem koukal, je to fakt obrovskej system (primo umerne ke svym funkcim samozrejme).Zda se mi to, nebo je IM jen pro velke podniky s 20 a vice ruznymi UserDB? Asi jsem to jeste uplne nepochopil, ale zda se mi to celkem slozite na nastaveni i pouzivani (a asi to nebude jenom zdani, kdyz ani ve druhem clanku jeste neni popis relaneho pouziti).Ne není to tak. Samozřejmě čím více je koncových systémů, tím více se z nasazení IdM profituje.
Navrhuji praktickou ukázku, která bude nejlěpší. Zabýváme se se Zdeňkem konzultacemi kolem správy identit a rádi osvětlíme možnosti.No, pockam na dalsi dil. Zatim zkusim experimentovat s vasim VMware virtualem a pokusim se to nejak skloubit s nasi instalaci za vydatne pomoci manualu k IdM:)) Prece jenom neni od veci, kdyz to clovek pochopi sam.
Samozrejme uznavam, ze IdM je robustni a umi toho spoustu. Problem je akorat v tom, ze pokud mam LDAP a MySQL user DB a chci menit pouze hesla a pripadne nejake dalsi 2-5 nastaveni, tak se mi asi moc nevyplati ucit se IdM a konfigurovat s tim, ze 95% funkci nevyuziju, ale je jednodussi napsat behem 2 hodinek nejakou pritulnou jednoduchou PHP aplikaci (rekneme s max. 10 PHP soubory), kdyz PHP jazyk uz znam a nemusim se ho ucit a muzu ho vyuzit na X dalsich projektu. Verim, ze vam by konfigurace v nasem prostredi zabrala mozna i hodinku:) Ale pro me to znamena se to ucit, pak to konfigurovat, experimentovat atd. a to asi nestoji za tech 5% funkci, ktere muzu mit behem zlomku ceny za napsani PHP stranek.Dovolím si tvrdit, že po jednoduché prezentaci za 2 hodiny nastavíte IdM na LDAP a MySQL také se všemi dalšími přínosy. A zároveň můžete používat tyto nově nabyté znalosti i systém v dalších projektech se správou uživatelů.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.