Installazione di Shibboleth2-Sp su Xserve (sistemi 10.6 SnowLeopard)
Requisiti di sistema
Xserve con Mac OSX 10.6 (SnowLeopard)
Preparazione dell'ambiente
Prima di tutto abbiamo bisogno degli XCode presenti nel DVD di installazione del sistema. Inseriamo il DVD e muoviamoci verso Other ====> Applications ====> XCode.dmg.
Doppioclicchiamo e installiamo gli XCode nella partizione di sistema, ovvero dove e' installato il sistema operativo.
Ora abbiamo bisogno del pacchetto port facente parte del MacPorts Project, un progetto opensource pensato per rendere easy-to-use il download, la configurazione e la compilazione dei pacchetti e delle loro dipendenze su Mac OSX. Tutti i pacchetti scaricati attraverso il port sono rilasciati sotto licenza BSD.
Il pacchetto port ci serve per recuperare Shibboleth-Sp e le sue dipendenze, compilarlo e installarlo sul sistema operativo. Scarichiamo quindi il pacchetto da qui, selezionando la versione per SnowLeopard (Universal), apriamolo e installiamolo sulla partizione di sistema.
Di default l'architettura di installazione e' uguale a quella di sistema quindi per verificare quale viene usata basta digitare:
# uname -ar
che restituira una riga simile a questa:
# Darwin Kernel Version 10.4.0: Fri Apr 23 18:27:12 PDT 2010; root:xnu-1504.7.4~1/RELEASE_X86_64 x86_64
In questo caso troviamo x86_64 che indica l'architettura a 64 bit, se invece viene indicato i386 l'architettura usata sarà quella a 32 bit. L'architettura di installazione puo' essere scelta nel file di configurazione di macports che si trova in
/opt/local/etc/macports/macports.conf
indicando i386 sui sistemi a 64 bit verrà usata quella a 32 per la compilazione di tutti i pacchetti di macports.
# CPU architecture to compile for. Defaults to i386 or ppc on Mac OS X 10.5 # and earlier, depending on the CPU type detected at runtime. On Mac OS X 10.6 # the default is x86_64 if the CPU supports it, i386 otherwise. build_arch i386
Visto che dovremo utilizzare il demone Apache nativo del sistema SnowLeopard, dobbiamo verificare che esso abbia la stessa architettura di compilazione dei pacchetti macports. (Sui sistemi a 32bit il risultato di questa operazione e' scontato quindi potete tralasciarla).
sh-3.2# httpd -V Server version: Apache/2.2.14 (Unix) Server built: Feb 10 2010 22:22:39 Server's Module Magic Number: 20051115:23 Server loaded: APR 1.3.8, APR-Util 1.3.9 Compiled using: APR 1.3.8, APR-Util 1.3.9 Architecture: 64-bit Server MPM: Prefork threaded: no forked: yes (variable process count) [snip]
Se la voce Architecture combacia con l'architettura utilizzata per l'installazione potete proseguire oltre, altrimenti se per qualsiasi motivo l'architettura fosse diversa, dovete "sincronizzare" l'architettura di apache con quella dei macports installati. Per farlo creiamo un file binario di httpd con l'architettura che desideriamo:
# lipo -thin i386 /usr/sbin/httpd -output /usr/sbin/httpd.i386 # mv /usr/sbin/httpd /usr/sbin/httpd.x86_64 # mv /usr/sbin/httpd.i386 /usr/sbin/httpd
Ovviamente potete cambiare i386 con l'architettura desiderata (x86_64 ppc ppc64 ecc...). Verificate ancora l'architettura di Apache per sapere se tutto e' andato a buon fine con il comando:
sh-3.2# httpd -V Server version: Apache/2.2.14 (Unix) Server built: Feb 10 2010 22:22:39 Server's Module Magic Number: 20051115:23 Server loaded: APR 1.3.8, APR-Util 1.3.9 Compiled using: APR 1.3.8, APR-Util 1.3.9 Architecture: 32-bit Server MPM: Prefork threaded: no forked: yes (variable process count) [snip]
Fatto questo non vi resta che killare i processi httpd attualmente in esecuzione e rilanciare httpd per poter avere Apache con l'architettura desiderata.
Installazione di Shibboleth2-Sp
Ora possiamo iniziare l'installazione di shibboleth2 e degli altri pacchetti necessari e procediamo a linkare i giusti pacchetti con l'ambiente di lavoro, in quanto tutti i pacchetti installati con macports si trovano in
/opt/local/
verifichiamo la versione di openssl con:
# openssl version
che ci restituisce le versione del pacchetto e che deve essere >= di 0.9.8. Se cosi' e' saltate il passaggio successivo e andate direttamente all'installazione di curl altrimenti dovete installare openssl da port e linkarlo nei path di sistema. quindi digitiamo:
# port install openssl # ln -s /opt/local/lib/libssl.0.9.8.dylib /usr/lib/libssl.0.9.8.dylib # mv /usr/bin/openssl /usr/bin/openssl97 # ln -s /opt/local/bin/openssl /usr/bin/openssl
Ora installiamo Curl con il supporto a ssl
# port install curl +ssl # mv /usr/bin/curl /usr/bin/curl.old # ln -s /opt/local/bin/curl /usr/bin/curl
Per ultimo installiamo shibboleth digitando:
# port install shibboleth
Preconfigurazione
ATTENZIONE: questi passi sono da fare solo alla prima installazione in quanto sovrascrivono il file di configurazione di shibboleth
$ sudo -s # cd /opt/local/etc/shibboleth # ls -1 *.dist | sed -e 's/\.dist//' | xargs -I % cp "%.dist" "%" # sh ./keygen.sh
Configurazione
Una volta terminata l'installazione, possiamo procedere alla configurazione.
# vi /opt/local/etc/shibboleth/apache22.config
che serve a configurare il modulo shibboleth per apache, in cui verranno inserite le clausole per il login e i mountpoint delle variabili.
# vi /opt/local/etc/shibboleth/shibboleth2.xml
che configura il ServiceProvider vero e proprio, in cui vanno inseriti i path di sistema quali le chiavi e i certificati ecc.
Per implementare shibboleth in apache, aggiungiamo come ultima riga in /etc/apache2/httpd.conf:
Include /opt/local/etc/shibboleth/apache22.config
Dopo aver configurato shibboleth2 e apache facciamo ripartire i servizi stando attenti alla giusta sequenza di comandi:
# launchctl unload /Library/LaunchDaemons/org.macports.shibd.plist # launchctl unload /System/Library/LaunchDaemons/org.apache.httpd.plist # launchctl load -Fw /System/Library/LaunchDaemons/org.apache.httpd.plist # launchctl load -Fw /Library/LaunchDaemons/org.macports.shibd.plist
Con le opzioni -Fw si fa in modo che ad un eventuale riavvio della macchina si avvii anche shibd e che apache carichi automaticamente il modulo di shibboleth.
Buon divertimento :)