Instalace Identity Manageru 5.0

Sun Java System Identity Manager (dále jen IDM) slouží pro centralizovanou správu identit. Umožňuje plně kontrolovat a přidělovat práva pro přístup k jednotlivým službám na síti. Automatizuje spoustu úkonů potřebných pro kvalitní správu identit. Pomocí IDM lze delegovat pravomoce na jiná než IT oddělení. Uživatelé si své požadavky vyřeší sami, nemusejí kvůli tomu volat IT.

Sun Identity Manager 5.0 je produkt koupený od společnosti Waveset. Dřív se jmenoval Waveset Ligthouse v 4.1.


Dnes se používá verze 6 a ohlášená je verze 7, takže tento text berte jen jako přibližný návod, protože pár věcí je už jinak. Jakmile vyjde verze 7, tak napíšu nějaký aktuálnější text…


Kapitola 1. Instalace

Pro běh IDM je třeba Java (použijeme JRE 1.4.2 od SUNu) a aplikační server. Dále potřebujeme nějaké úložiště dat. Sice lze ukládat do souborů v režii IDM, ale to není moc vhodné. Pro snadnou dostupnost použijeme třeba MySQL databázi. Protože je IDM kompletně v javě, může běžet na různých operačních systémech.

Oficiálně podporované operační systémy

  • AIX 4.3.3, 5.2

  • HP-UX 11i v1

  • Microsoft Windows 2000 SP3 a novější

  • Microsoft Windows 2003

  • Solaris™ 7 Operating System (OS), Solaris 8 OS, Solaris 9 OS

  • Red Hat Linux Advanced Server 2.1, 3.0

Red Hat je jediná oficiálně podporovaná distribuce Linuxu, ale aplikace samozřejmě běhá i na ostatních. Vyzkoušené mám Slackware 9.1-10.1 a Debian Sarge. Ve Slackware i v Debianu jsem použil tu samou verzi Tomcatu a Javy. Instalaci máme vyzkoušenou také na Microsoft Windows 2003 a Microsoft Windows 2000.

1.1. Java

Instalační balíček Javy pro váš operační systém lze stáhnout na stránce java.sun.com, doporučuji verzi J2EE 1.4 SDK. Javu na Linuxu instaluji vždy do adresáře /opt/java/.
Je dobré nastavit si v ~/.bashrc proměnou JAVA_HOME=/opt/java/ a PATH=/opt/java/bin:$PATH. Pokud nyní spustíte java -version měli byste dostat podobný výstup:

Příklad 1.1. java -version

[tsunami@vodik]$ java -version
java version "1.4.2"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2-b28)
Java HotSpot(TM) Client VM (build 1.4.2-b28, mixed mode)

Nepokoušejte se rozebíhat na Debianu Tomcat z distribuční Javou (není to ta od SUNu), pokud se vám Tomcat rozeběhne, tak stejně nebude IDM fungovat.

1.2. Aplikační server

Podporované aplikační servery

  • Apache Tomcat 4.1.x[*], 5.0.x[*]

  • BEA WebLogic Express 7, 8.1[*]

  • BEA WebLogic Server 7.0, 8.1[*]

  • IBM WebSphere 4, 5

  • iPlanet™ Application Server 6.5

  • Sun™ ONE Application Server 6.5

  • Sun Java System Application Server Platform Edition 8

Jako aplikační server použijeme Tomcat. Instaloval jsem Tomcat na OS Linux a na každé zkoušené distribuci to bylo trochu jiné. Pokud chcete využít balíčkovacího systému své distribuce, najděte si k tomu manuál.

Postupně jsem si odladil jednu instalaci, kterou používám všude. Protože je Tomcat aplikace napsané v Javě, můžu si ji zabalit do archívu a přenést na jiný počítač s jinou distribucí Linuxu aniž by to mělo větší vliv na funkčnost.

Instalace z mého balíčku (Příloha A – „Stažení potřebného software) spočívá v rozbalení pomocí tar -xzf tomcat.tar.gz, rozkopírování na správná místa na disku. Archív je zabalený tak abyste ho mohli rozbalit přímo do / a soubory se rozmístí správně v adresářích. Dále je třeba abyste si vyrobili uživatele tomcat s domácím adresářem /var/spool/tomcat. Nastavte majitele u adresářů /var/log/tomcat, /var/spool/tomcat, /var/tomcat a /etc/tomcat na tomcat. Je důležité přesně dodržet všechny názvy a cesty zde popisované, jinak nebude aplikační server správně fungovat. V souborech /etc/profile.d/j2sdk.sh a /etc/profile.d/tomcat.sh zkontrolujte nastavení systémových proměnných, případně je upravte na svůj počítač. Instalace tomcatu předpokládá, že máte nainstalovaný Apache webserver, který spouštíte pomocí /etc/init.d/apache, pokud tomu je jinak, upravte si /etc/init.d/tomcat. Nyní byste měli spustit tomcat pomocí příkazu /etc/init.d/tomcat start.

Po nastartování poslouchá tomcat na tcp portu 8080. Uživatel pro přihlášení s největšími právy se jmenuje admin a jeho heslo je athttp.


[*] Pro správnou funkčnost potřebuje JDK™ verze 1.4.2

1.3. Databáze

Pro ukládání dat lze použít následující úložiště:

Úložiště dat

  • Lokální soubory

  • MySQL 4.0.x, 4.1.x

  • Oracle 8i and Oracle 9i

  • IBM DB2 Universal Database pro Linux, UNIX® a Microsoft Windows (verze 7.0, 7.2)

  • Microsoft SQL Server 2000

  • JDBC 2.0 Data Source

  • Sun Java System Directory Server 5.2

Základní instalaci jsem prováděl s databází MySQL. Instalaci MySQL databáze proveďte podle postupů obvyklých ve vaší distribuci Linuxu. Založení databáze a nastavení práv pro uživatele waveset pro přístup k ní se provede pomocí SQL skriptu dodávaném s IDM.

1.4. Identity Manager – instalace

Instalace IDM je celkem jednoduchá. Spouští se pomocí skriptu ./install a předpokládá, že máte správně nastavenou proměnou JAVA_HOME. Nainstalujte IDM do adresáře /opt/tomcat/webapps/idm. Utilitu pro nastavení (Setup) přeskočte a ukončete instalaci.

Pro počáteční nastavení IDM potřebujeme podporu pro MySQL do Javy. Soubor mysqljdbc.jar (příloha A – „Stažení potřebného software) nakopírujte do adresáře /opt/tomcat/webapps/idm/WEB-INF/lib/. Nastavte si proměnou prostředí WSHOME (export WSHOME=/opt/tomcat/webapps/idm a spusťte $WSHOME/bin/lh setup. Mělo by na vás vyskočit okno podobné tomu na obrázku 1.1 – „Sun Setup Wizard“.

Obrázek 1.1. Sun Setup Wizard

Sun Setup Wizard

Dialog odklikneme a nastavíme připojení k databázi (Obrázek 1.2 – „Locate IDM Repository“). Předvolený uživatel je waveset s heslem waveset. Samozřejmě je možné mít MySQL na jiném stroji než localhost, záleží jak si vše nastavíte. Pokud je někde v nastavení chyba nebo jste nenakopírovali do $WSHOME/WEB-INF/lib soubor mysqljdbc.jar, nástroj vás na to upozorní, zkouší se totiž na MySQL databázi připojit.

Obrázek 1.2. Locate IDM Repository

Locate IDM Repository

Naimportujte licenční xml soubor, mělo by se ukázat zda je licence v pořádku (1.3 – „License Key“).

Obrázek 1.3. License Key

License Key

Poslední dialog (1.4 – „Import XML Files“) umožňuje naimportovat výchozí konfiguraci, udělejte to kliknutím na tlačítko Import file. Soubor /opt/tomcat/webapps/idm/sample/idm.xml by měl být automaticky předvolený. Po ukončení programu restartujte aplikační server aby se načetly všechny změny.

Obrázek 1.4. Import XML Files

Import XML Files

1.5. IDM a Sun Java System Application Server 7

Instalaci IDM spustíme a provedeme do adresáře /opt/idm. IDM si s sebou nese šifrovací knihovny, standardní instalace aplikačního serveru od SUNu má ale svoje, takže ty z IDM smažeme. Z adresáře /opt/idm/WEB-INF/lib/ smažeme soubory cryptix-jce*. Dále je třeba do adresáře /opt/idm/WEB-INF/lib/ nakopírovat knihovnu providerutil.jar.

Nastavíme WSHOME na /opt/idm a provdeme konfiguraci pomocí $WSHOME/bin/lh setup. Data jsem ládoval do Directory serveru dodávaného spolu s aplikačním serverem v rámci balíku Sun Java Enterprise System.

Instalace IDM do aplikačního serveru se skládá ze dvou kroků. Nejdříve pomocí programu jar (cd /opt/idm; jar cvf ../idm.war *) vyrobíme /opt/idm.war, který potom vnutíme aplikačnímu serveru. Příkaz pro deploy aplikace do aplikačního serveru (vše na jednom řádku): /opt/SUNWappserver7/bin/asadmin deploy –user admin –name idm –password HesloAdmina /opt/idm.war.

V případě, že máte v aplikačním serveru instalován program Access Manager, je třeba v souboru /etc/opt/SUNWam/config/AMConfig.properties upravit jeden řádek (com.sun.identity.jss.donotInstallAtHighestPriority=true). Po této úpravě se může stát, že budete mít problémy s ověřením do AM pomocí klientského certifikátu. Vše je způsobeno tím, že takzvaný security provider se sdílí napříč celou JVM a není izolován pouze v dané aplikaci.

Bohužel chyba vypisované při konfliktu s AM nic nanpoví:

java.lang.IllegalStateException: Error initializing Encryptor: null

Lepší způsob je udělat si druhou instanci aplikačního serveru a do něj nainstalovat pouze IDM. Neváhodou je, že to spotřebuje víc paměti, protože je to další běžící aplikační server. Také potřebujete další TCP port, na kterém bude druhý aplikační server poslouchat.

Kapitola 2. Administrace

2.1. Správa aplikačního serveru

2.1.1. Tomcat

Následující věty platí, pokud jste pro instalaci použili mnou udělaný archív s aplikačním serverem Tomcat a postupovali jste dle mého návodu. V případě, že jste prováděli jinou instalaci se můžou některé údaje lišit a budete se muset přizpůsobit.

Po nastartování databáze a aplikačního serveru pomocí příkazů /etc/init.d/mysql start a /etc/init.d/tomcat start byste měli na TCP portu 8080 najít výchozí stránku aplikačního serveru. Login a heslo pro aplikační server jsou nastaveny v souboru /opt/tomcat/conf/tomcat-users.xml. Soubor obsahuje nezašifrované hesla! Největší práva pro aplikační server a má uživatel “admin” s výchozím heslem “athttp”.

Základní adresy pro správu Tomcatu

  • http://localhost:8080/ – “domácí” stránka Tomcatu

  • http://localhost:8080/manager/status – Server Status

  • http://localhost:8080/admin/ – Tomcat Web Server Administration Tool

  • http://localhost:8080/manager/html – Tomcat Web Application Manager

  • http://localhost:8080/idm – Identity Manager

2.2. Organization and Capabilities

Organizace v IDM jsou hierarchicky organizované. Nejvýše postavenou organizací je Top. Použitá hierarchická struktura slouží k delegování administrace.

Capabilities jsou skupiny s předdefinovanými právy a autorizací k IDM.

Kapitola 3. Zdroje (Resources)

3.1. XML soubor

Pro někoho je zajímavá možnost zadat jako další resource XML soubor, do kterého se budou zapisovat vytváření uživatelé. Postup pro vytvoření takového souboru:

Definice nového zdroje

  • Přesuňte se na stránku Configure -> Manages resources a klikněte na Add custom resource (dole na stránce).

    Obrázek 3.1. Manage resource

    Manage resource
  • Vložte text com.waveset.adapter.XMLResourceAdapter a uložte.

    Obrázek 3.2. Add custom resource

    Add custom resource
  • Teď se doporučuje restart aplikačního serveru, ale mě to funguje i bez restartu.

3.2. Windows NT

Pro připojení IDM k Microsoft Windows řady NT je třeba zvláštní gateway. Gateway beží na Windows jako služba a umožňuje práci s uživatelskými účty.

3.2.1. Instalace

Rozbalte archív gateway.zip umístěný v adresáři IDM5.0 na CD-ROM. Osobně jsem pro umístění do adresáře c:\idmgw\. Spusťte si příkazový řádek (Start->Run…, cmd) a v něm proveďte instalaci brány (gateway -i) a její prní spuštění (gateway -s). Gateway se pak ve výpisu služeb objeví pod názvem Sun Identity Manager Gateway.

3.3. RedHat Linux

Konektor pro RedHat Linux je dodáván standardně s IDM. Připojení je možné přes protokol SSH nebo Telnet. Konektor je napsán trochu nešikovně a neumožňuje spolupráci například s distribucí Debian. Je to způsobeno využíváním parametru pro program useradd, který je v Debianu trochu jiný než v RedHatu.

3.4. Sun ONE Identity Server

Resource adaptér pro Sun ONE Identity Server (Access Manager) je dostupný jako com.waveset.adapter.SunISResourceAdapter

3.4.1. Instalace

Pokud provozujete Sun ONE Identity Server na jiném systému než IDM, tak je třeba provést pár kroků pro jeho integraci do IDM.

  • Vytvoříme adresář /opt/SUNWam do kterého nakopírujeme potřebné knihovny Identity Serveru.

  • Do adresáře /opt/SUNWam nakopírujte soubory lib/*.*, locale/*.properties, config/serverconfig.xml a configu/ums/ums.xml. Soubory skutečně jen nakopírujte, nevytvářejte pro ně odpovídající adresářové struktury. Je vhodné povolit přístup k soubrům (chmod a+r /opt/SUNWam/*).

  • Do proměnné CLASSPATH je třeba přidat /opt/SUNWam:/opt/SUNWam/am_sdk.jar:/opt/SUNWam/am_services.jar:/opt/SUNWam/am_logging.jar (CLASSPATH=CLASSPATH:/opt/SUNWam:/opt/SUNWam/am_sdk.jar:/opt/SUNWam/am_services.jar:/opt/SUNWam/am_logging.jar).

  • Pro Identity Server verze 6.0 je potřeba předat javě parametr -Dcom.iplanet.coreservices.configpath=/opt/SUNWam.

    Pokud požíváte verzi 6.1, tak upravte v souboru/opt/SUNWam/AMConfig.properties

    com.iplanet.services.configpath=/opt/SUNWam
    com.iplanet.security.SecureRandomFactoryImpl=com.iplanet.am.util.SecureRandomFactoryImpl
    com.iplanet.security.SSLSocketFactoryImpl=netscape.ldap.factory.JSSESocketFactory
    com.iplanet.security.encryptor=com.iplanet.services.util.JCEEncryption
    

  • Nakopírujte soubory /opt/SUNWam/am_*.jar do adresáře $WSHOME/WEB-INF/lib. Pokud používáte verzi 6.0, nakopírujte tam i soubour jss311.jar.

3.4.1.1. Policy Agent

Na Identity Serveru musí být nainstalován i Sun ONE Identity Policy Agent 2.1 (http://wwws.sun.com/software/download/inter_ecom.html#dirserv).

3.4.1.1.1. AMAgent.properties

3.5. LDAP

Kapitola 4. Lokalizace

Lokalizace do češtiny je v ČR jedním z důležitých úkolů při implementaci téměř kteréhokoliv programu, se kterým se mají setkávat běžní netechnicky vzdělaní uživatelé.

4.1. Úložiště dat

4.1.1. MySQL

Pro správné zacházení s diakritikou v ukládaných datech o uživatelích je třeba nastavit parametry připojení pomocí jdbc (Obrázek 1.2 – „Locate IDM Repository“). Parametr se zadává na konec URL. Výsledné URL vypadá takto:

jdbc:mysql://localhost/waveset?useUnicode=true&characterEncoding=utf-8

4.2. Uživatelské rozhraní

Pro správnou funkčnost lokalizace je třeba v souboru ${WSHOME}/config/

Kapitola 5. Troubleshooting

V IDM existuje stránka s ladícími výpisy, ale není v oficiálním menu, které je dostupné administrátorovi. Její URL http://localhost:8080/idm/debug je třeba znát z hlavy.

5.1. java.lang.NoClassDefFoundError: javax/mail/MessagingException

Pokud se vým ukáže tato chyba, znamená to, že tomcat nevidí knihovnu s danou třídou. V tomto případě je to soubor mail.jar, který je třeba nakopírovat do adresáře /opt/tomcat/common/lib.

Příloha A. Stažení potřebného software

Tabulka A.1. Stažení potřebného software

software domácí stránka stažení velikost
Apache Tomcat/5.0.28 jakarta.apache.org/tomcat tomcat.tar.gz(můj balíček) 11 MiB
MySQL JDBC mysqljdbc.jar 221K