• Non ci sono risultati.

3.3 Installazione di Shibboleth SP 1.3

3.3.12 Congurazione iniziale di Shibboleth SP 1.3

3.3.12 Congurazione iniziale di Shibboleth SP 1.3

Cartelle Debian

(Nota: è possibile non eettuare questi seguenti comandi, se Shibboleth SP è stato installato con i pacchetti Debian)

In Debian, tutti i le di congurazione del sistema sono memorizzati nella cartella /etc. Creare un link simbolico semplice alla congurazione di Shibboleth.

root# ln -s /usr/local/shib-sp/etc/shibboleth /etc/shibboleth La cartella dei log /var/log/shibboleth non esiste ancora e occorre crearla da se. Si noti che è possibile specicare la cartella dei log nel le .logger. Si è scelto di avere la cartella dei log direttamente in /var/log perché ci possono essere altre partizioni per i log, e anche collegamenti simili dalla home di Shibboleth. Il logger di preoccupa di girare i le di log se necessario. Solo l'utente root ha i diritti di lettura/scrittura su questa cartella.

root# mkdir /var/log/shibboleth

Poiché il modulo di Apache Shibboleth venga eseguito come l'utente www-data su Debian, occorre dare i diritti di scrittura a questo utente sulla cartella dei log. È opportuno scegliere un'altra cartella per questo. Si dovrebbe inoltre creare questa cartella e impostare i permessi corretti.

root# mkdir /var/log/shibboleth/httpd

root# chown www-data /var/log/shibboleth/httpd Chiavi e certicati

Assicurarsi che i permessi siano correttamente impostati. Solo l'utente che esegue Apache deve essere in grado di leggere la chiave privata. Altri utenti non hanno bisogno di accedere ai le con la chiave, così il corretto settaggio dei diritti di accesso è impostato in modo sensato.

shibboleth.xml

Scaricare il le shibboleth.xml

(http://www.federation.org.au/twiki/pub/Federation/ManualInstallSP/shibboleth.xml) e salvarlo in /etc/shibboleth/shibboleth.xml Questo è il le di congu- razione principale per il Service Provider.

Editare il le /etc/shibboleth/shibboleth.xml e congurare SP 1.3: • providerId: questo è un identicatore univoco della risorsa con la fe-

derazione. Il suo valore dovrebbe essere stabile. Non dovrebbe cam- biare. Per il default l'applicazione dovrebbe sceglie l'hostname (anche se questo non è necessario se Shibboleth è già in esecuzione). Quando si aggiungono più applicazioni speciche, si dovrebbe scegliere l'URL completo per l'applicazione specica.

Settaggio a https://shibsp.unipr.it

Nella Appendice A Ã possibile trovare il sorgente del le shibboleth.xml. AAP.xml

Si può scaricare questo le di default Attribute Acceptance Policy: AAP.xml (https://spaces.internet2.edu/display/SHIB/NewSPAttribute) e salvarlo in /etc/shibboleth/AAP.xml.

Sono le regole attuate da un Fornitore di Servizi per decidere se autoriz- zare l'accesso di un Utente in base al valore dei suoi Attributi ottenuti dalla sua Organizzazione di Appartenenza.

Metadata della Federazione

Il Metadata su di un SP descrive tutti gli IdP che possono essere usati per l'accesso ad una determinata risorsa. Molte volte c'è un nuovo IdP, e occorre aggiornare il metadata con tutti gli SP inseriti. È possibile scaricare il le metadata metadata.xml da (https://www.federation.org.au/level-2/level-2- metadata.xml), e salvarlo in /etc/shibboleth/metadata.xml.

3.3.3.12 Congurazione iniziale di Shibboleth SP 1.3 56 Congurazione dei Logger

È possibile scaricare i le di congurazione dei logger, ovvero: shibboleth.logger, native.logger e shibd.logger, dal seguente indirizzo:

http://www.switch.ch/aai/docs/shibboleth/SWITCH/1.3/sp/ e salvarli nel- la cartella /etc/shibboleth.

Il Shibboleth SP manterrà i log nella cartella /var/log/shibboleth. L'u- ser Apache (tipicamente www-data) dovrà avere i permessi di scrittura su questa cartella perchè il modulo apache mod_shib scriverà i native.log in questa cartella.

Script di avvio del Demone Shibboleth

Il demone shibd di Shibboleth SP 1.3 devono essere eseguiti in parallelo con Apache.

È possibile scaricare il sorgente dello script di shibd da (inserire indirizzo) e salvarlo nella cartella /etc/init.d.

Il contenuto del le /etc/init.d/shibd è il seguente: #! /bin/sh

#

# /etc/init.d/shibd for Debian #

# start/stop script for Shibboleth ServiceProvider 1.3 daemon #

# HOWTO INSTALL:

# root:/etc/init.d# update-rc.d shibd defaults PATH=/bin:/usr/bin:/sbin:/usr/sbin

#

# Shibboleth 1.3 #

SHIB_ETC=$SHIB_HOME/etc/shibboleth SHIB_CONFIG=$SHIB_ETC/shibboleth.xml LD_LIBRARY_PATH=$SHIB_HOME/lib DAEMON=$SHIB_HOME/sbin/shibd NAME=shibd DESC="Shibboleth 1.3 Daemon" test -x $DAEMON || exit 0 set -e

case "$1" in start)

echo -n "Starting $DESC: $NAME"

start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \ --background --make-pidfile \

--exec $DAEMON -- -fc $SHIB_CONFIG echo "."

;; stop)

echo -n "Stopping $DESC: $NAME"

start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \ --exec $DAEMON echo "." ;; restart) # Restart $0 stop sleep 1 $0 start ;; configtest)

3.3.3.12 Congurazione iniziale di Shibboleth SP 1.3 58 echo "Check config for $DESC: $NAME"

start-stop-daemon --start \

--exec $DAEMON -- -tc $SHIB_CONFIG echo "Done."

;; *)

N=/etc/init.d/$NAME

# echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2 echo "Usage: $N {start|stop|restart|configtest}" >&2

exit 1 ;; esac exit 0

Usare il tool update-rc.d per registrare lo script /etc/init.d/shibd nei programmi avviati all'avvio del sistema.

root# update-rc.d shibd defaults 20 95

Adding system startup for /etc/init.d/shibd ... /etc/rc0.d/K20shibd -> ../init.d/shibd /etc/rc1.d/K20shibd -> ../init.d/shibd /etc/rc6.d/K20shibd -> ../init.d/shibd /etc/rc2.d/S20shibd -> ../init.d/shibd /etc/rc3.d/S20shibd -> ../init.d/shibd /etc/rc4.d/S20shibd -> ../init.d/shibd /etc/rc5.d/S20shibd -> ../init.d/shibd

Il demone di Shibboleth dovrà essere avviato prima di caricare il modulo del webserver. Se il server non è in esecuzione, il server partirà con successo, ma a tutte le richieste di Shibboleth verrà visualizzato un errore no a quando il demone non sarà avviato. Si può controllare la congurazione di Shibboleth avviando il demone con la seguente modalità:

root# /usr/local/shib-sp/sbin/shibd -t

overall configuration is loadable, check console for non-fatal problems shibd shutdown complete

È possibile anche eseguire shibd in modalità console: root# /usr/local/shib-sp/sbin/shibd

loading new logging configuration from /etc/shibboleth/shibd.logger

New logging configuration loaded, check log destination for process status... (Premere ctrl-c per terminare il processo del demone).

Per ultimo è possibile far partire il demone Shibboleth 1.3 in modalità background con lo script init:

root# /etc/init.d/shibd start

Starting Shibboleth 1.3 Daemon: shibd. Congurazione di Apache

Il modulo Shibboleth per Apache è un modulo DSO (Data Source Object) implementato usando apxs. Il modulo prevede delle direttive necessarie per la congurazione principale di Apache. Alcune di queste direttive possono essere anche usate nei le .htaccess.

Per far lavorare Shibboleth per il webserver Apache, questo modulo dovrà essere caricato e congurato correttamente.

Script di avvio Apache

Sotto Debian il webserver Apache 1.3 viene fatto partire con lo script /etc/init.d/apache.

Il webserver Apache SSL-1.3 viene fatto partire con /etc/init.d/apache-ssl. Apache 2.0 viene fatto partire con /etc/init.d/apache2.

È possibile far partire questi script semplicemente modicando come mostra- to di seguito:

#!/bin/bash #

# apache Start the apache HTTP server. #

3.3.3.12 Congurazione iniziale di Shibboleth SP 1.3 60 # The variables below are NOT to be changed. They are there to make the # script more readable.

NAME=apache

DAEMON=/usr/sbin/$NAME PIDFILE=/var/run/$NAME.pid CONF=/etc/$NAME/httpd.conf APACHECTL=/usr/sbin/${NAME}ctl

# note: SSD is required only at startup of the daemon. SSD=`which start-stop-daemon`

ENV="env -i LANG=C PATH=/bin:/usr/bin:/usr/local/bin" SHIB_HOME=/usr/local/shib-sp

LD_LIBRARY_PATH=${SHIB_HOME}/libexec:${SHIB_HOME}/lib export LD_LIBRARY_PATH

...

Congurazione Apache 1.3

Nota: Il pacchetto apache-ssl può usare tutti i moduli che si trovano nella cartella di installazione di apache. Sarebbe suciente creare anche un link simbolico alla cartella di installazione di apache (e NON nella cartella di installazione di apache-ssl). Si noti che la congurazione di questo pacchetti è localizzata in /etc/apache/ssl e che lo script di avvio è /etc/init.d/apache-ssl.

• Per prima cosa occorre creare un link simbolico alla cartella /usr/lib/apache/1.3.

Questo link simbolico sarà necessario per il tool apache-modconf. Que- sto tool cercherà la directory dei moduli di apache per il giusto modulo ed il suo descrittore.

root# ln -s /usr/local/shib-sp/libexec/mod_shib_13.so /usr/lib/apache/1.3/mod_shib_13.so

• Scaricare il descrittore del modulo di Shibboleth 500mod_shib_13.info (http://www.switch.ch/aai/docs/shibboleth/SWITCH/1.3/sp/500mod_- shib_13.info) per usarlo con apache-modconf e salvarlo nella directory /usr/lib/apache/1.3.

Il contenuto del le /usr/lib/apache/1.3/500mod_shib_13.info è il seguente:

LoadModule: mod_shib /usr/lib/apache/1.3/mod_shib_13.so Directives: ShibConfig ShibSchemaDir ShibURLScheme ShibDisable ShibApplicationId ShibBasicHijack ShibRequireSession ShibRequireSessionWith ShibExportAssertion ShibRequireAll

Description: Shibboleth Daemon for SP 1.3

• Registrare il modulo di Shibboleth mod_shib_13 in Apache 1.3 con il tool Debian apache-modconf.

root# /usr/sbin/apache-modconf apache enable mod_shib_13

Replacing config file /etc/apache/modules.conf with new version • Scaricare la congurazione del modulo di Shibboleth mod_shib.conf

(http://www.switch.ch/aai/docs/shibboleth/SWITCH/1.3/sp/mod_shib.conf) e salvarlo nella cartella /etc/apache/conf.d.

Il contenuto del le /etc/apache/conf.d/mod_shib.conf è il seguen- te: ## # Shibboleth SP 1.3 ## # Shibboleth SP 1.3 config ShibSchemaDir /usr/local/shib-sp/share/xml/shibboleth ShibConfig /usr/local/shib-sp/etc/shibboleth/shibboleth.xml <Files *.sso> SetHandler shib-handler </Files>

3.3.3.12 Congurazione iniziale di Shibboleth SP 1.3 62

# when using Debian's apache-ssl package the next directive is NECESSARY # it makes the SAML post use SSL, even when HandlerSSL="false"

# when set HandlerSSL="true" without this directive, apache fails to # load...

# see Shibboleth-internet2 mailinglist "apache-ssl 1.3.33 debian (Sarge) # oddity"

ShibURLScheme https #

# Used for example logo and style sheet in error templates. #

#

# Alias /shibboleth-sp/main.css /usr/local/shib-sp/doc/shibboleth/main.css # Alias /shibboleth-sp/logo.jpg /usr/local/shib-sp/doc/shibboleth/logo.jpg # <Location /secure> AuthType shibboleth ShibRequireSession On require valid-user </Location>

Riavviare il webserver Apache 1.3 per applicare i cambiamenti: root# /etc/init.d/apache restart

Restarting apache.

Congurazione di Apache 2.0

Il webserver Apache 2.0 deve essere congurato per caricare il modulo di Shibboleth SP 1.3.

• La congurazione del modulo di Shibboleth è inclusa nella distribuzione di Shibboleth, può anche essere considerata una direttiva di include o

un collegamento a /usr/local/shib-sp/etc/shibboleth/apache2.config.. La congurazione deve essere salvata in

root# cp /usr/local/shib-sp/etc/shibboleth/apache2.config /etc/apache2/conf.d/mod_shib.conf

Il contenuto del le /etc/apache2/conf.d/mod_shib.conf è il seguen- te:

# ADD THIS TO THE END OF YOUR APACHE'S HTTPD.CONF ######

## SHIB Config ######

#

# Load the SHIBBOLETH module #

LoadModule mod_shib /usr/local/shib-sp/libexec/mod_shib_20.so #

# Global Configuration

# This is the XML file that contains all the global, non-apache-specific # configuration. Look at this file for most of your configuration

# parameters. #

ShibSchemaDir /usr/local/shib-sp/share/xml/shibboleth

ShibConfig /usr/local/shib-sp/etc/shibboleth/shibboleth.xml #

# Used for example logo and style sheet in error templates. #

<IfModule mod_alias.c>

Alias /shibboleth-sp/main.css /usr/local/shib-sp/doc/shibboleth/main.css Alias /shibboleth-sp/logo.jpg /usr/local/shib-sp/doc/shibboleth/logo.jpg </IfModule>

#

# Configure the module for content #

3.3.3.12 Congurazione iniziale di Shibboleth SP 1.3 64 # You can now do most of this in shibboleth.xml using the RequestMap # but you MUST enable AuthType shibboleth for the module to process # any requests, and there MUST be a require command as well. To # enable Shibboleth but not specify any session/access requirements # use "require shibboleth".

# <Location /secure> AuthType shibboleth ShibRequireSession On require valid-user </Location>

Riavviare il webserver Apache 2.0 per applicare il cambiamenti: root# /etc/init.d/apache2 restart

Restarting apache.

Impostazioni del Firewall • traco in entrata:

 webserver: le porta 80 e/o 443 sono usate da alcuni browser-user • in uscita:

 demone Shibboleth (shibd): deve essere abilitata la connessio- ne per ogni IdP remoto nella federazione sulla porta 8443 per il prelevamento degli attributi

 NTP (Network Time Protocol): una query da parte di un client è rivolta ad un server-NTP remoto che gira sulla porta 123.

Documenti correlati