Installare uno Shibboleth Service Provider 1.3 su Windows Server 2003
Introduzione
Shibboleth è un progetto inter-universitario del gruppo Middleware Architecture Committee for Education (MACE), appartenente al consorzio Internet2 [Internet2-web]. Le sue finalità sono la progettazione, la specifica e l’implementazione Open Source di sistemi per la condivisione inter-istituzionale di risorse web soggette a controllo di accesso.
Questa guida descrive l'installazione e la configurazione di un client Shibboleth Service Provider 1.3 facendo uso del web server IIS6.
Installazione
La versione del pacchetto cui si riferiscono queste istruzioni è la 1.3 e può essere scaricata dall'indirizzo: shibboleth.internet2.edu/downloads/win32/
Dopo aver scaricato e avviato il pacchetto si clicca su "Next" per iniziare il processo di installazione.
Una volta accettato il contratto di licenza il client viene installato nella directory c:\opt\
Viene richiesto di installare il servizio Shibboleth e di scegliere la porta (1600). Il servizio Shibboleth è un componente indispensabile del SP, infatti recupera tutti gli attributi dall'IdP e viene controllato da un modulo ISAPI.
Infine si conferma l'installazione di un filtro ISAPI che servirà a controllare il servizio Shibboleth.
Certificato SSL
Per la richesta del certificato e la creazione di una keystore PKCS12 si consiglia di utilizzare il tool openssl, messo a disposizione del client.
Richiesta certificato
1. Attraverso una shell ci si sposta nella directory dove si trova il file eseguibile openssl
cd \opt\shibboleth-sp\bin
2. Si genera una chiave privata non criptata in formato PEM
openssl genrsa -out sp.example.ch.key 2048
3. Scarica e copia sotto la directory \bin il file di configurazione unimore-ssl.cnf
4. Si crea una Certficate Signing Request(CSR)
openssl req -new -key sp.example.ch.key -out sp.example.ch.csr -config unimore-ssl.cnf
5. Invio del CSR all'autorità di certificazione(CA)
Uso della coppia chiave/certificato su IIS
Ottenuto il certificato lo si scarica in formato PEM. Si procede inoltre a scaricarte tutta la catena di certificati PKI Media:Europki-ca-chain.pem.
Con un editor di testo si aggiunge, in testa, a Europki-ca-chain il certificato richiesto.
Per importare una chiave privata (ad esempio thor5.key) ed un certificato su IIS questi devono essere combinati in una keystore in formato pkcs12.
openssl pkcs12 -export -in Europki-ca-chain.crt -inkey thor5.key -out KEYSTORE.pfx
Si importa la keystore in IIS usando il "Web Server Certificate Wizard"
- clic con il tasto destro web sul sito e scelta delle proprietà
- scelta della tab "Directory Security"
- clic su "Server Certificate" nella sezione Secure Cominications
- "next"
- scegliere "Import a certificate from a .pfx file" - "next"
- selezionare la keystore creata prima
- digitare la password scelta per la keystore
- scegliere la porta per l'SSL (443)
- "next"
- clic su ok per chiudere le proprietà
I file .crt e .key dovranno anche essere copiati nella directory c:/opt/shibboleth-sp/etc/shibboleth/ Riavviare IIS
Configurazione iniziale del client
Riproponiamo i file di esempio mettendo in grassetto le voci che dovrebbero essere modificate:
Questi file devono essere collocati nella cartella /etc di shibboleth (ad esempio: E:\opt\shibboleth-sp\etc\shibboleth\), che contiene gia' una copia di default di questi file.
Configurazione di IIS 6.0
Per prima cosa si aggiunge il filtro ISAPI
- "Start">"Programs">"Administrative Tools">"Internet Information Services (IIS) Manager"
- clic con il tasto destro sul sito web e scegliere "proprietà"
- tab "ISAPI Filter"
- clic su "Add"
- il file eseguibile si trova in c:\ship-sp\libexec\isapi_shib.dll
- assicurarsi che il filtro shibboleth sia il primo della lista
- se si riavvia iis assicurasi che prima del filtro sia presente una frecce verde
Se il filtro risulta caricato digitando sul browser:
http://localhost/Shibboleth.sso
dovrebbe apparire un errore che dice "Sessione Creation Failure", mentre se si visulaizza l'errore 404 di pagina mancante allora si deve ricontrollare la configurazione appena fatta.
Controllare che il web service di shibboleth sia stato abilitato
- IIS
- portarsi sulla cartella dei web services
- selezionare "Shibboleth Web Service Extension"
- se sull'icona non è presente una spunta verde cliccare su "Allow"
In caso di problemi, controllare che il servizio sia attivo e che la cartella etc/shibboleth e tutte le cartelle in essa contenute abbiano l'utente IIS_WPG con i permessi di lettura ed esecuzione.
Ultimi ritocchi
Per testare il sitema è molto importante che ci sia la sincronizzazione tra l'SP e l'IdP per questo:
- doppio clic sul orologio
- portarsi sulla tab "Internet time"
- spuntare "Automaticaly sincronize whith an internet time server"
- scrivere nella casella combinata il nome del ntp server di riferimento (ntp.unimo.it)
- cliccare su "update now"
Se si vuole usare la shell
net time /setsntp:ntp.unimo.it
In fase di test, in caso di problemi, può risulare molto utile controllare i file di log di Shibboleth che si trovano nella directory C:\opt\shibboleth-sp\var\log\shibboleth Poichè windows non dispone come linux del comando "tail" si può scaricare un software che ne replica la stessa funzione, prelevabile all'indirizzo tailforwin32.sourceforge.net