l'impatto dei servizi applicativi
DESCRIPTION
Sistema federato interregionale di autenticazione. Parte tecnicaTRANSCRIPT
PROGETTO ICARTask inf-3
L’impatto dei Servizi Applicativi
Michele ManzottiFausto Marcantoni
Barbara Re
Università di Camerino
2
Agenda
Scenari Applicativi in fase di test
• Installazione di un IdP
• Installazione di un Sp
• Installare l’infrastruttura ICAR
Integrazione dei sistemi
• Integrazione IdP e Sp
• Integrazione con l’infrastruttura ICAR
Sviluppi Futuri
• Autenticazione tramite SmartCard
• Autenticazione tramite Google
3
Scenari Applicativi in fase di test
• Installazione di un IdP
• Installazione di un Sp
• Installare l’infrastruttura ICAR
4
Scenari Applicativi in fase di test
• Installazione di un IdP
• Installazione di un Sp
• Installare l’infrastruttura ICAR
5
Shibboleth
Handle
Handle
Attributi
Attributi
12
3
4
5
6
7
8 910
11
12
13
8
10
6
Installare l’IdP• Debian (netinst 5.03)
• Sistema minimale senza interfaccia grafica
• Packages• Openssl – Pacchetto per la generazione delle chiavi per i
certificati
• Ntp – Network Time Protocol per sincronizzare le macchine
• Apache2 – Server web
• Sun-java6-jdk – Kit e dipendenze per l’ambiente di sviluppo Java
• Tomcat5.5 – Web container per le applicazioni
• Curl - Pacchetto per effettuare richieste http da riga di comando
7
Installare l’IdP• Shibboleth IdP versione 2.1.2
Pacchetto per la creazione di un Identity Provider
Comandi Descrizione
jar xf shibboleth-identityprovider-2.1.2-bin.zip
Estrae lo zip
cd shibboleth-identityprovider-2.1.2 Entra nella directory estratta
cp ./endorsed/*.jar /usr/share/tomcat5.5/common/endorsed/
Copia i file della cartella endorsed nella directory di Tomcat
export JAVA_HOME=/usr/lib/jvm/java-6-sunexport CATALINA_HOME=/var/lib/tomcat5.5
Assegna due variabili d’ambiente
sh install.sh Lancia lo script di installazione
8
Organizzazzione dei file
9
Organizzazzione dei file
10
Organizzazzione dei file
11
Organizzazzione dei file
12
Organizzazzione dei file
13
Organizzazzione dei file
14
Organizzazzione dei file
15
Configurare l’IdP• Editare:
• /etc/apache2/sites-available/default-ssl <Location /idp>ProxyPass ajp://localhost:8009/idpProxyPassReverse ajp://localhost:8009/idp</Location>
• /etc/apache2/mods-enabled/proxy.conf<Proxy *>AddDefaultCharset offOrder deny,allow</Proxy>
16
Configurare l’IdP• Editare:
• /etc/apache2/ports.conf <IfModule mod_ssl.c>Listen 8443</IfModule>
• /etc/tomcat5.5/server.xml <!-- Define an AJP 1.3 Connector on port 8009 --><Connector port="8009" address= " 127.0.0.1 " enableLookups="false" redirectPort= " 443 " protocol="AJP/1.3" tomcatAuthentication="false" />
17
Configurare l’IdP• Editare:
• /etc/default/tomcat5.5 JAVA_OPTS="-Djava.awt.headless=true -Xmx512M -XX:MaxPermSize=512M”
TOMCAT5_SECURITY=no
• chown tomcat55:nogroup /opt/shibboleth-idp/logs/chown tomcat55:nogroup /opt/shibboleth-idp/metadata/chown tomcat55:nogroup /opt/shibboleth-idp/credentials/
• /var/lib/tomcat5.5/conf/Catalina/localhost/idp.xml<Context docBase="/opt/shibboleth-idp/war/idp.war“privileged="true" antiResourceLocking="false" antiJARLocking="false" unpackWAR="false" swallowOutput="true" />
18
Configurare l’IdP• Eseguire:
• a2enmod ssl – Attivazione del modulo ssl
• a2enmod proxy_ajp – Attivazione del modulo proxy_ajp
• a2ensite default-ssl – Attivazione delle configurazione fatte sul default-ssl
• /etc/init.d/apache2 force-reload – Riavvio di apache
• Test:• https://idp.e-lios.eu/idp/profile/Status - deve uscire ok
• https://sp.testshib.org/ - per il passaggio degli attributi
19
Scenari Applicativi in fase di test
• Installazione di un IdP
• Installazione di un Sp
• Installare l’infrastruttura ICAR
20
Scenari Applicativi in fase di test
• Installazione di un IdP
• Installazione di un Sp
• Installare l’infrastruttura ICAR
21
Installare l’SP• Debian (netinst 5.03)
• Sistema minimale senza interfaccia grafica
• Packages• mysql-server – Server database
• Phpmyadmin – Client web per il database
• openssh-server – Server per l’accesso remoto alla macchina
• apache2.2 - Server web
• Php5 – Linguaggio di scripting per il web
• php5-ldap – Modulo di php per l’openldap
• libapache2-mod-shib2 – Modulo di Apache per il Service Provider di Shibboleth
22
Configurare l’SP• Editare
• /etc/apache2/sites-available/default <Location /secure>AuthType shibbolethShibRequireSession Onrequire valid-user</Location>
Comandi Descrizione
a2enmod shib2 Attiva il modulo di Shibboleth Service Provider
shibd -t /etc/shibboleth/shibboleth2.xml
Ricarica il file di configurazione
/etc/init.d/apache2 restart Riavvia Apache
23
Panoramica sui conf dell’SP
• /etc/shibboleth• shibboleth2.xml
impostazioni generali del servizio
• attribute-map.xmldefinisce la conversione tra gli attributi ricevuti dallo IdP e le variabili server
• Attribute-policy.xmldefinisce l’accettabilità degli attributi a partire dal loro formato
24
Scenari Applicativi in fase di test
• Installazione di un IdP
• Installazione di un Sp
• Installare l’infrastruttura ICAR
25
Scenari Applicativi in fase di test
• Installazione di un IdP
• Installazione di un Sp
• Installare l’infrastruttura ICAR
26
Installare l’infrastruttura ICAR• Debian (netinst 5.03)
• Sistema minimale senza interfaccia grafica
• Packages• sun-java6-jdk
• libbcprov-java – Librerie Java
• libbcprov-java-gcj – Librerie Java
• mysql-server
• phpmyadmin
• Porte aperte per le connessioni• 3443, 4443, 5443, 6443, 8006, 8080 e 9443
27
Installare l’infrastruttura ICAR• Copiare
• icar-inf3-release-0.9.5 in /root
• /root/icar-inf3-release-0.9.5/catalina_base/common/endorsed/* in/usr/share/tomcat5.5/common/endorsed
• catalina_base/* in /usr/share/tomcat5.5
• catalina_base/conf/* in /usr/share/tomcat5.5/confComandi Descrizione
mysql -u root -p < /root/icar/dbscripts/mysql/icarlp.sql
Importa il database icarlp.sql
mysql -u root -p < /root/icar/dbscripts/mysql/icarpa.sql
Importa il database icarpa.sql
source env.sh Assegna le variabili d’ambiente
startTomcat.sh Lancia lo script d’installazione
28
Test dell’infrastruttura ICAR• Modificare il file hosts
• 127.0.0.1 lp.icar.it idp.icar.it ar.icar.it aa.icar.it pa.icar.it sp.icar.itutile per fare la simulazione locale
• Collegarsi• http://sp.icar.it:8080/icar-sp-test
29
Integrazione dei sistemi
• Integrazione IdP e Sp
• Integrazione con l’infrastruttura ICAR
30
Integrazione dei sistemi
• Integrazione IdP e Sp
• Integrazione con l’infrastruttura ICAR
31
Integrazione IdP e SP• Nell’IdP
• Modificare il relayparty.xml <MetadataProvider id="URLMD" xsi:type="FileBackedHTTPMetadataProvider" xmlns="urn:mace:shibboleth:2.0:metadata" metadataURL="http://idp.xxx.eu/xxx-metadata.xml" backingFile="/opt/shibboleth-idp/metadata/elios-metadata.xml">
• Nell’SP• Modificare il shibboleth2.xml
<SessionInitiator type="Chaining" Location="/Login" isDefault="true" id="Intranet" relayState="cookie" entityID="https://idp.e-xxx.eu/idp/shibboleth">
32
Integrazione IdP e SP• Nell’SP
• Modificare il shibboleth2.xml <MetadataProvider type="XML" uri="http://idp.xxx.eu/xxx-metadata.xml" backingFilePath="elios-metadata.xml" reloadInterval="7200"> </MetadataProvider>
<Host name="http://xxxx"> <Path name="secure" authType="shibboleth" requireSession="true" requireSessionWith="intranet"/> </Host>
<ApplicationDefaults id="default" policyId="default" entityID="http://xxx/secure/" homeURL="http://xxx/secure/index.html" ….
33
Integrazione IdP e SP• Nell’SP
• Modificare il shibboleth2.xml <!-- <SignatureMetadataFilter certificate="fedsigner.pem"/> -->
<CredentialResolver type="File" key="/etc/shibboleth/cert/server.key" certificate="/etc/shibboleth/cert/server.crt"/>
• Generazione dei certificati• openssl genrsa -des3 -out server.key 1024
• openssl req -new -key server.key -out server.csr
• cp server.key server.key.org
• openssl rsa -in server.key.org -out server.key
• openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
34
Integrazione IdP e SP• Metadata
• Unire in un file i metadati dell’IdP e dell’SP file: /opt/shibboleth-idp/metadata/idp-metadata.xml run time: http://SP/Shibboleth.sso/Metadata
• <EntitiesDescription […]> … </EntitiesDescription>
• Renderli pubblici in modo da aggiornare un solo file ogni volta http://idp.xxxo.eu/xxx-metadata.xml esempio: link
35
Integrazione dei sistemi
• Integrazione IdP e Sp
• Integrazione con l’infrastruttura ICAR
36
Integrazione dei sistemi
• Integrazione IdP e Sp
• Integrazione con l’infrastruttura ICAR
37
Integrazione con l’infrastruttura ICAR• Ancora in fase di sviluppo
• Nel caso dell’IdP:• Modifica del relaying-party.xml
• <RelayingParty> in modo che punti alla PA
• <MetadataProvider> in modo che punti alla PA
• Modifica dell’attribute-resolver.xml• <resolver:AttributeDefinition>
• <resolver:DataConnector>
• Registrazione del nuovo IdP all’interno dell’ Authority Registry
• Recupero dinamico dei metadati
38
Integrazione con l’infrastruttura ICAR• Nel caso dell’SP:
• Modifica del shibboleth2.xml• <RequestMapper> in modo che punti al nuovo SP
• <ApplicationDefault> in modo che punti al nuovo SP
• <SessionInitiator> in modo che punti al metadata del LP
• <ApplicationOverride> in modo che punti ai singoli servizi offerti dall’SP
• Modifica dell’attribute-map.xml• <Attribute name=“…”> per la lettura degli attributi
39
Sviluppi Futuri
• Autenticazione tramite SmartCard
• Autenticazione tramite Google
40
Autenticazione tramite Google
• Accesso tramite Shibbolth a tutti i servizi di Google
• Google è il nostro SP
• Necessario un accountEducation Edition (pagamento)
• https://shibboleth.usc.edu/docs/google-apps/
41
Autenticazione tramite SmartCard
• Ci sono diverse estensioni su Shibboleth che permettono l’autenticazione attraverso la SmartCard
• http://www.mediawiki.org/wiki/Extension:LDAP_Authentication/Smartcard_Configuration_Examples
• Working in progress con Carta Raffaello
42
Conclusioni• Configurazioni non sono troppo banali• Necessario un minimo di skill di base• Shibboleth è un software con ampi margini di
miglioramento senza dimenticare che è opensource
• Numerose estensioni che supportano l’autenticazione tramite shibboleth• Drupal• Joomla• Google• simpleSAMLphp• Tutorial Video
• Numerosi vantaggi derivanti dall’accesso federato
43
Riferimenti• Debian - http://www.debian.org/distrib/
• Shibboleth IdP• http://shibboleth.internet2.edu/downloads/shibboleth/id
p/2.1.2/shibboleth-identityprovider-2.1.2-bin.zip• https://www.idem.garr.it/index.php/it/documenti/doc_do
wnload/21--costruire-uno-shibboleth-idp-20-per-idem
• Shibboleth SP• http://shibboleth.internet2.edu/downloads/shibboleth/cp
psp/latest/shibboleth-sp-2.3.1.tar.gz
• https://www.idem.garr.it/index.php/it/documenti/doc_download/23-shibboleth-sp-20-per-idem-con-debian
4444
Th@nk for your Attention!
Michele Manzotti
Scuola di Scienze e TecnologieUniversità di Camerino
Polo di informaticaVia Madonna delle Carceri, 9
62032 - Camerino (Macerata) – ITALY
eMail: [email protected]
http://conferences.cs.unicam.it/icarplusformazione