Installazione di Shibboleth2-Sp su Xserve (sistemi 10.6 SnowLeopard)

Da sia.
Vai alla navigazione Vai alla ricerca

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 :)