„Shib2IdpInstall” változatai közötti eltérés
(Beleírtam a megirandó fejezeteket - meg is őket írom mihamarabb :)) |
(Tomcat install kibővítése) |
||
2. sor: | 2. sor: | ||
=== entityID === | === entityID === | ||
=== Tanúsítvány === | === Tanúsítvány === | ||
+ | === 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 == | == JDK == | ||
Sajnos Etch alatt a <code>sun-java5-jdk</code> csomag függ egy csomó X-es csomagtól, melyeket nem biztos, hogy szeretnénk telepíteni egy szerveren, érdemes lehet | Sajnos Etch alatt a <code>sun-java5-jdk</code> csomag függ egy csomó X-es csomagtól, melyeket nem biztos, hogy szeretnénk telepíteni egy szerveren, érdemes lehet | ||
35. sor: | 37. sor: | ||
== Tomcat 5.5 == | == Tomcat 5.5 == | ||
− | |||
=== Telepítés === | === 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 <code>/etc/default/tomcat5.5</code> 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 <code>/etc/default/tomcat5.5</code> fájlban: | ||
+ | TOMCAT5_SECURITY=no | ||
+ | |||
+ | Ahhoz, hogy a Tomcat számára üzembiztosan elegendő memóriát biztosítsunk, ugyanebbe a fájlba ( <code>/etc/default/tomcat5.5</code> ) adjuk meg: | ||
+ | CATALINA_OPTS="-Xms256M -Xmx512M -XX:MaxPermSize=512M -XX:-DisableExplicitGC -server" | ||
=== Beállítás === | === Beállítás === | ||
+ | ==== Tomcat Apache mögött fut ==== | ||
+ | A 8009-es porton figyelő Connector elem konfigurációjához hozzá kell adni, hogy a <code>tomcatAuthentication</code> é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). | ||
+ | <source lang="xml"> | ||
+ | <Connector port="8009" address="127.0.0.1" tomcatAuthentication="false" | ||
+ | enableLookups="false" redirectPort="8443" protocol="AJP/1.3" /> | ||
+ | </source> | ||
+ | ==== Tomcat önállóan, Apache nélkül fut ==== | ||
+ | Ha a Tomcat Apache nélkül fut, akkor be kell állítani, hogy az SP-vel való kommunikációra fenntartott 8443-as porton egyből a Tomcat figyeljen. | ||
+ | <source lang="xml"> | ||
+ | <Connector port="8443" | ||
+ | maxHttpHeaderSize="8192" | ||
+ | maxSpareThreads="75" | ||
+ | scheme="https" | ||
+ | secure="true" | ||
+ | clientAuth="want" | ||
+ | SSLEnabled="true" | ||
+ | sslProtocol="TLS" | ||
+ | keystoreFile="IDP_HOME/credentials/idp.jks" | ||
+ | keystorePass="PASSWORD" | ||
+ | truststoreFile="IDP_HOME/credentials/idp.jks" | ||
+ | truststorePass="PASSWORD" | ||
+ | truststoreAlgorithm="DelegateToApplication"/> | ||
+ | </source> | ||
+ | Ahol az <code>IDP_HOME</code> az IdP alapkönyvtára, a <code>PASSWORD</code> pedig az [[#Shibboleth 2.0 IdP telepítés|IdP telepítésekor]] megadandó jelszó lesz. | ||
+ | |||
+ | [https://spaces.internet2.edu/display/SHIB2/IdPApacheTomcatPrepare További információ angolul] | ||
== Shibboleth 2.0 IdP telepítés == | == Shibboleth 2.0 IdP telepítés == |
A lap 2008. október 7., 11:29-kori változata
Tartalomjegyzék
[elrejtés]Előkészületek
entityID
Tanúsítvány
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
Sajnos Etch alatt a sun-java5-jdk
csomag függ egy csomó X-es csomagtól, melyeket nem biztos, hogy szeretnénk telepíteni egy szerveren, érdemes lehet
- feltenni a
sun-java5-jre
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 java2-runtime
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 /usr/lib
alá, aztán csinálunk egy szimbolikus linket, hogy a /usr/jdk
mindig a "jó" JDK-ra mutasson.
Állítsuk be, a JAVA_HOME
környezeti változót!
export JAVA_HOME=/usr/jdk
Shibboleth security provider
Be kell másolni a lib/shib-jce-1.0.jar
állományt a $JAVA_HOME/jre/lib/ext
könyvtárba. Ha az ext/
könyvtár nem létezik, akkor hozzuk létre.
cp lib/shib-jce-1.0.jar $JAVA_HOME/jre/lib/ext
Ezek után be kell állítani, hogy a JRE használni is tudja ezt a providert. Ehhez a $JAVA_HOME/jre/lib/security/java.security
fájlban keressük meg az ún. "security provider"-eket, és írjuk hozzá a következő sort:
security.provider.7=edu.internet2.middleware.shibboleth.DelegateToApplicationProvider
- Megj.: a "security.provider." után következő szám mindig a megelőzőnél legyen eggyel nagyobb!
Bouncy Castle JCE
A JVM-mel jövő Java Cryptography Engine (JCE) nem támogatja az összes kriptográfiai algoritmust, amelyre az Identity Providernek szüksége lehet (pl. XML Digital Signature, XML Encryption). A Bouncy Castle JCE ezek mellett még olyan algoritmusokat is tartalmaz (általában hatékonyabb és szabványosabb formában), amelyek benne vannak a Java JCE-ben.
Ehhez először le kell tölteni a Castle JCE-t. A JCE állományok a Provider oszlopban, a "Signed Jar Files" részben találhatók. (A nevük bcprov-jdk-VERZIO.jar
.) Letöltés után a .jar fájlokat a $JAVA_HOME/jre/lib/ext
könyvtárba kell tenni.
wget http://polydistortion.net/bc/download/bcprov-jdk15-138.jar cp bcprov-jdk15-138.jar $JAVA_HOME/jre/lib/ext
Ezek után be kell állítani, hogy a JRE használni is tudja ezt a providert. Ehhez a $JAVA_HOME/jre/lib/security/java.security
fájlban keressük meg az ún. "security provider"-eket, és írjuk hozzá a következő sort:
security.provider.8=org.bouncycastle.jce.provider.BouncyCastleProvider
- Megj.: a "security.provider." után következő szám mindig a megelőzőnél legyen eggyel nagyobb!
Tomcat 5.5
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 /etc/default/tomcat5.5
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 /etc/default/tomcat5.5
fájlban:
TOMCAT5_SECURITY=no
Ahhoz, hogy a Tomcat számára üzembiztosan elegendő memóriát biztosítsunk, ugyanebbe a fájlba ( /etc/default/tomcat5.5
) adjuk meg:
CATALINA_OPTS="-Xms256M -Xmx512M -XX:MaxPermSize=512M -XX:-DisableExplicitGC -server"
Beállítás
Tomcat Apache mögött fut
A 8009-es porton figyelő Connector elem konfigurációjához hozzá kell adni, hogy a tomcatAuthentication
é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).
<Connector port="8009" address="127.0.0.1" tomcatAuthentication="false"
enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
Tomcat önállóan, Apache nélkül fut
Ha a Tomcat Apache nélkül fut, akkor be kell állítani, hogy az SP-vel való kommunikációra fenntartott 8443-as porton egyből a Tomcat figyeljen.
<Connector port="8443"
maxHttpHeaderSize="8192"
maxSpareThreads="75"
scheme="https"
secure="true"
clientAuth="want"
SSLEnabled="true"
sslProtocol="TLS"
keystoreFile="IDP_HOME/credentials/idp.jks"
keystorePass="PASSWORD"
truststoreFile="IDP_HOME/credentials/idp.jks"
truststorePass="PASSWORD"
truststoreAlgorithm="DelegateToApplication"/>
Ahol az IDP_HOME
az IdP alapkönyvtára, a PASSWORD
pedig az IdP telepítésekor megadandó jelszó lesz.