Shibboleth IdP telepítés (Debian)

{{SHIB_OLD|text=

Tanúsítvány
Kell készíteni egy megfelelő SSL szerver tanúsítványt. Ha más nem szól ellene, érdemes ugyanazt a tanúsítványt használni a felhasználók felé, mint az SP-k felé.

Tűzfal
Be kell engedni a 443-as és a 8443-as portokat. Ha nagyon szigorúan vesszük, akkor a 8443-as portot elegendő csak a szóbajöhető SP-kről beengedni, de ezzel általában nem vagyunk tisztában, ezért célszerű a "nagyvilágból" beengedni. Biztonsági szempontból nem sok különbség van a 443-as és a 8443-as porton elérhető alkalmazások között.

JDK telepítés
Sajnos Etch alatt a  csomag függ egy csomó X-es csomagtól, melyeket nem biztos, hogy szeretnénk telepíteni egy szerveren, érdemes lehet
 * feltenni a  csomagot ÉS
 * kézzel telepíteni egy JDK-t, mondjuk a http://java.sun.com oldalról letöltve

Ez igazából egy nagy hack, ugyanis ahhoz, hogy a tomcat-et csomagból telepíteni tudjuk, kell a  csomag, amelyet biztosít a JRE is, viszont a Tomcat-nek JDK kell, hogy JSP-t tudjon futtatni.
 * Megj.: Minden JSP-t első futtatáskor a konténer (Tomcat) lefordít Java kóddá, aztán byte-kóddá, ezért tart jó sokáig az - újraindítás utáni - első request. Ezután az eredményt elcache-eli, így csak akkor kell újrafordítania, ha a JSP megváltozik.

A JDK telepítés elég egyszerű, letöltjük a java.sun.com oldalról a nekünk tetsző verziót, aztán kicsomagoljuk, mondjuk a  alá, aztán csinálunk egy szimbolikus linket, hogy a   mindig a "jó" JDK-ra mutasson.

Tomcat telepítés
Ha minden rendben meg, akkor elegendő egy apt-get install tomcat5.5 Ez felpakolja a tomcat különböző függőségeit is.

Ahhoz, hogy a Tomcat rendben elinduljon, szükséges neki megmondani, hogy hol találja a JDK-t. Ezért tegyük a  fájlba a következőt: JAVA_HOME=/usr/jdk

Ne felejtsük el, hogy a Tomcat szerver "tomcat55" user nevében fog futni! Mivel a Shibboleth servletnek szüksége van arra, hogy hozzáférjen a filerendszerhez, a Java Security Manager-t ki kell kapcsolni a   fájlban: TOMCAT5_SECURITY=no

Tomcat konfiguráció
A 8009-es porton figyelő Connector elem konfigurációjához hozzá kell adni, hogy a  értéke "false" legyen, ezen kívül a hozzáférést korlátozhatjuk a localhost-ra is (hiszen a Connector-t csak a helyben futó Apache mod_jk konnektora érheti el).

Apache
IdP-t telepíthetünk "standalone" Tomcat környezetre is, ekkor nincs szükségünk Apache-ra. A leírást ide kérjük :)

Az IdP telepítéséhez szükségünk lesz az alap apache szerverre (Etch-ben 2.2-es verziójú) és néhány modulra:
 * : a  az   csomag része.

A konfiguráció lépései:
 * modul betöltése; figyelés a 8443-as porton is
 * modul betöltése, konfigurálása
 * VirtualHost konfigurálása
 * autentikáció konfigurálása

mod_ssl
Listen 443 Listen 8443

Engedélyezzük az SSL modult. a2enmod ssl

mod_jk
A  telepítés után alapértelmezetten engedélyezve van, ha mégsem lenne, az   paranccsal engedélyezhetjük.

A  file-ban állítsuk be a   és a   paramétereket a Tomcat ill. a JDK telepítésénél használt értékekre. (tomcat_home=/usr/share/tomcat5.5 az alapértelmezett telepítésnél.)

Már csak az van hátra, hogy bizonyos URI-kra érkező kéréseket a modul átküldje a Tomcat-nek. Ehhez az alábbi konfigurációs direktívákat kell megadnunk valahol a szerver konfigurációban (pl. )    JkWorkersFile /etc/libapache2-mod-jk/workers.properties JkLogFile /var/log/apache2/mod_jk.log JkLogLevel info JkMount /shibboleth-idp/* ajp13_worker  A fenti példában a shibboleth-idp az IdP servlet telepítése során (később) megadott URI. Ez azt jelenti, hogy a  URI alá jövő összes kérést a Tomcat fogja megkapni.
 * RedHat ES4 disztribúció alatt az ajp13_worker helyett ajp13-t kellett használni.

VirtualHost
Nem feltétlenül szükséges külön VirtualHost-ban futtatni az IdP-t, de sok szempontból "tisztább" konfigurációt eredményez. Egy működő konfig:
 * Megj.: IPv6-on is figyelünk :)

SSO URI
Ez az az URI, amelyre az SP átirányítja a felhasználót, általában a szabványos https porton érhető el. A példában LDAP-ból azonosítjuk a felhasználót, majd az azonosított felhasználónevet a REMOTE_USER változóban adjuk át a Shibboleth IdP servletnek.

A  blokkban bármilyen azonosítást beállíthatunk (MySql, plain file, stb).


 * Megj.: Az LDAP SSL használatához a leírás itt található

AA URI
Az Attribute Authority általában a 8443-as porton érhető el.

Ezen az URI-n az SP-k kapcsolódnak hozzánk, hogy a felhasználóról adatokat kérjenek. Az SP-ket mindig tanúsítvánnyal azonosítjuk. "Természetesen" a request-et utána továbbítani kell a Tomcatben futó IdP servletnek. (Ezt a mod_jk fejezetben mutatott példában a  megadásával értük el.)

IdP servlet telepítése
Az IdP innen tölthető le: http://shibboleth.internet2.edu/latest.html

A tar.gz állományt csomagoljuk ki, majd lépjünk be a létrejövő könyvtárba.

Endorsed jar állományok
Sajnos - legalábbis a cikk írásakor - a "kincstári" Sun-os Tomcat (Java?) JAXP parser egy ismert memóriaszivárgást tartalmaz, ezért a disztribúcióban az  könyvtárban található .jar file-okat kézzel be kell másolni a Tomcat   könyvtárába.
 * A Debian alatti tomcat5.5 csomag használatakor a  könyvtárba kell tenni a jar file-okat.

Installer
export JAVA_HOME=/usr/jdk ./ant A telepítés során az alábbi paramétereket kell megadnunk:
 * Shibboleth IdP alkalmazás neve: az URI, amelyre érkező kéréseket a Tomcat az IdP servletnek ad át. Default:
 * Filesystem- vagy manager-alapú telepítést akarunk? (Javasolt: Filesystem)
 * Az IdP alkalmazás könyvtára. Default:
 * Tomcat home. Default:, Debian alatt a   könyvtárat érdemes használni.

Könyvtárak
A telepítő minden file-t (binárisok, konfiguráció, logok, stb) egyetlen könyvtár alatti struktúrába tenne, de valószínűleg jobban járunk, ha az alkalmazásunk konfigurációja a, a logok pedig a   alatt találhatók.

Például: Mivel a Debianon a Tomcat "tomcat55" user nevében fut, a szükséges állományokhoz hozzá kell tudnia férni Ezek után már csak újra kell indítani a Tomcat-et, és az IdP-nek működnie kell. Ellenőrizni pl. úgy tudjuk, hogy meghívjuk a https://hostnev/shibboleth-idp/Status URI-t, amelynek az "AVAILABLE" stringet kell visszaadni.

Forrás

 * Shibboleth Identity Provider Installation
 * Shibboleth IdP installation with Debian and Tomcat
 * Shibboleth IdP telepítése Debian 4.0 / Ubuntu 7.04 alatt (német nyelvű)
 * Más környezetekre vonatkozó telepítési leírások
 * SUSE 10
 * OpenSUSE 10.2 (német)
 * Tomcat-only telepítési leírások
 * "Hivatalos" Tomcat-only leírás
 * Debian + Tomcat

}}