Shibboleth Service Provider je sestaven ze dvou komponent - autentizační modul do Apache - mod_shib, a daemon shibd. Implementace je v C/C++ a vzhledem k tomu, že v sarge verzi Debian na rozdíl od novější etch nejsou přítomné příslušné deb balíčky, bude potřeba ručně skompilovat všechny součásti včetně potřebných knihoven.
Následující instalace předpokládá standardní programové vybavení Debian (sarge):
apache2-prefork-devlibssl0.9.7) včetně development balíčku libssl-devlibcurl3), včetně development balíčku libcurl3-devgcc, g++) včetně nástrojů jako make
Programy, knihovny a související data budeme instalovat do adresáře /opt/shibboleth-sp. Rozbalování zdrojových kodu a kompilace budeme provádět v adresáři /opt/build.
# mkdir /opt/shibboleth-sp # mkdir /opt/build # export SHIB_HOME=/opt/shibboleth-sp
Většinu potřebných knihoven získáme přímo od repozitáře Internet2, abychom měli jistotu, že budou fungovat správně s Shibboleth SP. Novější verze knihoven pravděpodobně budou fungovat také, ale v některých případech můžou způsobovat problémy.
Knihovna log4cpp, napsaná v C++, nabízí mechanismy pro logování. Jeji API kopíruje Java knihovnu Log4j. Použijeme verzi 0.3.5rc1 z repozitáře Internet2 (tato verze je speciálně upravena vývojaři z Internet2, protože puvodní vykazovala problémy při paralelním zpracování):
# cd /opt/build # wget http://shibboleth.internet2.edu/downloads/log4cpp-0.3.5rc1.tar.gz # tar xvfz log4cpp-0.3.5rc1.tar.gz # cd log4cpp-0.3.5rc1 # ./configure --prefix=$SHIB_HOME --disable-static --disable-doxygen # make # make install
K dispozici je i v
Xerces je knihovna v C++ určena k parsování a validaci XML. Verze 2.6 údajně neni kompatibilní s Shibbolethem, proto Internet2 dodávají modifikovanou verzi 2.6.1. Mezitím už vyšla verze 2.7.1, která by měla být bezproblémová.
# cd /opt/build # wget http://shibboleth.internet2.edu/downloads/xerces-c-src_2_7_1.tar.gz # tar xvfz xerces-c-src_2_7_1.tar.gz # cd xerces-c-src_2_7_1 # export XERCESCROOT=`pwd` # cd src/xercesc # ./runConfigure -p linux -c gcc -x g++ -r pthread -P $SHIB_HOME # make # make install
Knihovna XML Security je C++ open source implementací specifikace XML Signarure. Použijeme aktuální verzi 1.3.1 (Shibboleth vyžaduje alespoň verzi 1.2.1). Je také potřeba mít nastavenou proměnnou XERCESCROOT z předchozího odstavce.
# cd /opt/build # wget http://xml.apache.org/dist/security/c-library/xml-security-c-1.3.1.tar.gz # tar xvfz xml-security-c-1.3.1.tar.gz # cd xml-security-c-1.3.1/ # ./configure --prefix=$SHIB_HOME --without-xalan # make # make install
SAML (Security Assertion Markup Language) je standard založen na XML, určen k vyměně autentizačních a autorizačních údajů a dalších atributů. OpenSAML je open source implementace tohoto standardu. Použijeme verzi 1.1b.
# cd /opt/build # wget http://shibboleth.internet2.edu/downloads/opensaml-1.1b.tar.gz # tar xvfz opensaml-1.1b.tar.gz # cd opensaml-1.1 # ./configure --prefix=$SHIB_HOME --with-log4cpp=$SHIB_HOME -C # make # make install
Zkompilujeme a nainstalujeme daemon shibd, Apache modul mod_shib a sdílené knihovny.
# cd /opt/build
# wget http://shibboleth.internet2.edu/downloads/shibboleth-sp-1.3f.tar.gz
# tar xvfz shibboleth-sp-1.3f.tar.gz
# cd shibboleth-1.3/
# ./configure --prefix=$SHIB_HOME --with-log4cpp=$SHIB_HOME --enable-apache-20 --with-apxs2=/usr/bin/apxs2 \
--with-apr=/usr/bin/apr-config --disable-mysql
# make
# make install
Pro pohodlí vytvoříme následující linky:
# ln -s /opt/shibboleth-sp/etc/shibboleth /etc/shibboleth # ln -s /opt/shibboleth-sp/var/log/shibboleth /var/log/shibboleth
Můžeme odstranit nepořebné soubory z konfiguračního adresáře:
# cd /etc/shibboleth # mkdir dist # mv *.dist *config IQ-metadata.xml example-metadata.xml inqueue.pem sp-example.crt sp-example.key dist
Pokud instalace proběhla bez problémů, můžete přistoupit ke konfiguraci.