Shibboleth Identity Provider (IdP) je aplikace napsaná v Javě a je spouštěna jako servlet v aplikačním serveru, nejčastěji Tomcat. Web server Apache je pak využíván jako frontend, který přijímá dotazy a předává je aplikačnímu serveru. IdP poskytuje dvě služby - autentizace (vydává rozhodnutí o autentizaci v SAML) a výdej atributů. Každá z těchto služeb má svůj vlastní tzv. endpoint (něco jako adresu, na které poslouchá). Tyto endpointy se nazývají SSO (single sign-on) a AA (Attribute Authority).
Vzhledem k odlišným požadavkům na komunikaci je vhodné provozovat tyto služby pod různými virtuálními servery v Apachi. Běžně se autentizace poskytuje na standardním pro Apache s mod_ssl portu 443, zatímco AA běží na jiném portu - nejčastěji 8443. Je samozřejmě možné použít i virtuál s jiným hostname, ale to už vyžaduje také zvláštní certifikát.
Současná verze Shibboleth IdP 1.3 neobsahuje funkcionalitu pro autentizaci a single sign-on. Tuto funkcionalitu musí zajistit externí systém - samotný Apache v nejjednodušším případě nebo sofistikovanější SSO infrastruktura jako například Cosign, WebAuth, PubCookie apod.
Podle tohoto návodu se jednotlivé součásti instalují v adresáři /opt a některé podadresáře se pro pohodlí mapují symbolickými linky do adresářové struktury operačního systému (např. /opt/shibboleth-idp/etc –> /etc/shibboleth). Je to jednak z důvodu snadnější údržby (jednotlivé součástí jsou pohromadě a ne roztroušené po systému), jednak z důvodu univerzálnosti - různé distribuce linuxu používají odlišné uspořádání nainstalovaného software (konfigurační soubory, lody apod.) a ačkoliv je v titulku zmíněn konkrétně Debian etch, měl by tento návod dobře posloužit i v případě jiné distribuce. Použité cesty jsou jen příkladné a neměl by být problém použít jiné, které lépe odpovídají cílovému systému.
Návod přepokládá, že je nainstalován následující software:
V průběhu instalace budou nainstalované komponenty:
Stáhněte aktuální JDK ze stránky http://java.sun.com/javase/downloads/index.jsp a nainstalujte ho:
# cd /opt # chmod +x jdk-6-linux-amd64.bin # ./jdk-6-linux-amd64.bin # ln -s /opt/jdk1.6.0 /opt/java # export JAVA_HOME=/opt/java
Místo přepisováni proměnné PATH je vhodnější namapovat binárky do standardního adresáře /usr/bin:
# update-alternatives --install /usr/bin/java java $JAVA_HOME/bin/java 200 # update-alternatives --install /usr/bin/javac javac $JAVA_HOME/bin/javac 200 # update-alternatives --install /usr/bin/jar jar $JAVA_HOME/bin/jar 200 # update-alternatives --install /usr/bin/keytool keytool $JAVA_HOME/bin/keytool 200
V Debianu etch existuje balíček tomcat5.5:
# apt-get install tomcat5.5 # cd /var/lib # ln -s tomcat5.5 tomcat
Shibboleth IdP se instaluje pomocí instalátoru. Stačí stáhnout aktuální verzí, rozbalit a spustit:
# cd /opt # wget http://shibboleth.internet2.edu/downloads/shibboleth-idp-1.3.3.tar.gz # tar xvfz shibboleth-idp-1.3.2.tar.gz # cd shibboleth-1.3.2-install/ # ./ant build-util # ./ant
Spustí se interaktivní program, který položí několik otázek - název aplikace vyplníme jako shibboleth-idp, způsob instalace - filesystem, adresář pro IdP - /opt/shibboleth-idp, domovský adresář Tomcat - /var/lib/tomcat. Poté program zkopíruje soubory na potřebná místa.
V důsledku chybě v JAXP knihovně je potřeba použít knihovnu přibalenou k Shibboleth IdP:
# cp -p /opt/shibboleth-idp/endorsed/*.jar /usr/share/tomcat5.5/common/endorsed/
Pro pohodlí vytvoříme následující linky:
# ln -s /opt/shibboleth-idp/etc /etc/shibboleth # ln -s /opt/shibboleth-idp/logs /var/log/shibboleth
Tento modul do Apache zajišťuje, aby příslušné HTTP dotazy byly předávány do aplikačního serveru Tomcat, tj. spojuje frontend (Apache) s backendem (Tomcat). Instalace je snadná, v Debian etch stačí nainstalovat balík libapache2-mod-jk.
Po instalaci můžete přistoupit ke konfiguraci, kde nastavíte parametry potřebné k provozu IdP.