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…
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.
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.
Podporované aplikační servery
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
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.
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“.
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.
Naimportujte licenční xml soubor, mělo by se ukázat zda je licence v pořádku (1.3 – „License Key“).
Poslední dialog (1.4 – „Import XML Files“) umožňuje naimportovat výchozí konfiguraci, udělejte to kliknutím na tlačítko . 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.
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.
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
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
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.
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 ( , 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.
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.
Resource adaptér pro Sun ONE Identity Server (Access Manager) je dostupný jako com.waveset.adapter.SunISResourceAdapter
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 souborylib/*.*
,locale/*.properties
,config/serverconfig.xml
aconfigu/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 soubourjss311.jar
.
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).
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é.
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
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.
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 |