External Resources
External Resources
http://shibboleth.net/
https://wiki.shibboleth.net
https://spazivirtuali.unibo.it/cesia
Installazione modulo shibboleth per apache
- installare il pacchetto libapache2-mod-shib2 e dipendenze.
- sudo apt-get install libapache2-mod-shib2
Configurazione modulo shibboleth per apache
- Copiare i file shibboleth2.xml, attribute-policy.xml e attribute-map.xml forniti dal Cesia, sostituendo quelli di default.
- sudo mv /etc/shibboleth/attribute-policy.xml /etc/shibboleth/attribute-policy.xml.bkp
sudo mv /etc/shibboleth/attribute-map.xml /etc/shibboleth/attribute-map.xml.bkp
sudo mv /etc/shibboleth/shibboleth2.xml /etc/shibboleth/shibboleth2.xml.bkp
sudo mv attribute-map.xml /etc/shibboleth/attribute-map.xml
sudo mv attribute-policy.xml /etc/shibboleth/attribute-policy.xml
sudo cp shibboleth2.test.apice.xml /etc/shibboleth/shibboleth2.xml
- sudo mv /etc/shibboleth/attribute-policy.xml /etc/shibboleth/attribute-policy.xml.bkp
- creare una coppia certificato-chiave col comando shib-keygen.
- sudo shib-keygen –y 5 -h test.apice..unibo.it
- opzione “-y”: durata in anni del certificato. “-h”: Common Name
[sudo] password for gestore:
Generating a 2048 bit RSA private key
........................................+++
..............................................+++
writing new private key to '/etc/shibboleth/sp-key.pem'
--- - vengono generati due file, certificato e chiave privata
- /etc/shibboleth/sp-cert.pem
- /etc/shibboleth/sp-key.pem
- Modificare il file /etc/shibboleth/shibboleth2.xml
- Modificare RequestMapper, .
- Modificare l’elemento Host, server (o del virtual host su cui è ospitata l’applicazione).
- Modificare l’elemento Path, directory in cui è contenuta l’applicazione sul server.
<RequestMapper type="Native">
<RequestMap applicationId="default">
<Host name="test.apice.unibo.it">
<Path name="/xwiki/bin/view/Main/Login" authType="shibboleth" requireSession="true"/>
- Modificare ApplicationDefaults,
- Modificare l’attributo entityID: identificativo univoco dell’applicazione all’interno del sistema federato
- l’entityID deve coincidere con l’URL del punto da cui l’applicazione richiede l’autenticazione
- Modificare l’attributo homeUrl: indirizzo principale dell’applicazione.
<ApplicationDefaults id="default" policyId="default" REMOTE_USER="idAnagraficaUnica eppn persistent-id" **entityID="https://test.apice.unibo.it/xwiki/bin/loginsubmit/XWiki/"** **homeURL="http://test.apice.unibo.it"**>
- Modificare l’attributo entityID: identificativo univoco dell’applicazione all’interno del sistema federato
- Modificare l’elemento Notify dentro il file di configurazione di Shibboleth con il percorso della pagina di logout locale (logout.php).
- Modificare RequestMapper, .
File di configurazione apache
<Location /risorsaDaProteggere>
AuthType shibboleth
ShibRequireSession On
ShibUseHeaders On
require valid-user
UseCanonicalName On
</Location>
Feedback per logout
- immagine greencheck.gif in una cartella NON protetta da autenticazione,
sudo mkdir /var/www/img
gestore@i2-ve029:~/SSO$ sudo cp greencheck.gif /var/www/img - la pagina di lougout deve restituire l’indirizzo dell’immagine, ovvero fare un redirect per dare sull'IDP il feedback visivo dell'avvenuto logout
header( 'test.apice.unibo.it/img/greencheck.gif' ) ;
Integrazione portale xWiki
XWiki ha una gestione delle sessioni. Si deve integrare il login ed il logout con l'apertura e la chiusura della sessione applicativa dell’utente con la logica del CMS.
Stoppare il servizioApache
Stoppare il servizio shibd
Riavviare il servizio shibd.
Riavviare il servizio Apache
Passaggio a SSO ambiente di produzione
- file di configurazione apache: /etc/apache2/sites-available/new_apice
- aggiungere <Location /risorsaDaProteggere>
- creare una coppia di certificato-chiave col comando shib-keygen.
sudo shib-keygen –y 5 -h apice.unibo.it
The files /etc/shibboleth/sp-key.pem and/or /etc/shibboleth/sp-cert.pem already exist!
Use -f option to force recreation of keypair.
sudo shib-keygen -f –y 5 -h apice.unibo.it
Generating a 2048 bit RSA private key
.....+++
...+++
writing new private key to '/etc/shibboleth/sp-key.pem' - file di configurazione di shibboleth: /etc/shibboleth/shibboleth2.xml
- cambiare https://idptest.unibo.it con https://idp.unibo.it (diff merge trova 2 istanze)
- <SessionInitiator ..
- <MetadataProvider ..
- Modificare RequestMapper
- Modificare l’elemento Host: server o virtual host su cui è ospitata l’applicazione.
- Modificare l’elemento Path: directory in cui è contenuta l’applicazione sul server.
<RequestMap applicationId="default">
<Host name="apice.unibo.it">
<Path name="/xwiki/bin/view/Main/Login" authType="shibboleth"
requireSession="true"/>
</Host>
</RequestMap>
<Notify Channel="front" Location="https://apice.unibo.it/xwiki/bin/view/Main/Logout" />
- Modificare ApplicationDefaults
- Modificare l’attributo entityID: URL del punto da cui l’applicazione richiede l’autenticazione
- Modificare l’attributo homeUrl: indirizzo principale dell’applicazione.
<ApplicationDefaults id="default" policyId="default"
REMOTE_USER="idAnagraficaUnica eppn persistent-id"
entityID="https://apice.unibo.it/xwiki/bin/view/Main/Login"
homeURL="http://apice.unibo.it">
</ >
- Modificare l’elemento Notify: URL della pagina di logout locale
<Notify Channel="front" Location="https://apice.unibo.it/xwiki/bin/view/Main/Logout" />
</ >
- cambiare https://idptest.unibo.it con https://idp.unibo.it (diff merge trova 2 istanze)
- Riavviare i servizi:
- Stoppare il servizioApache
- Stoppare il servizio shibd
- Riavviare il servizio shibd.
- Riavviare il servizio Apache
>sudo service shibd stop
Stopping Shibboleth 2 daemon: shibd.
>sudo service apache2 stop
* Stopping web server apache2
... waiting .. ...done.
>sudo service shibd start
Starting Shibboleth 2 daemon: shibd.
>sudo service apache2 start
* Starting web server apache2
...done.