l'impatto dei servizi applicativi

44
PROGETTO ICAR Task inf-3 L’impatto dei Servizi Applicativi Michele Manzotti Fausto Marcantoni Barbara Re Università di Camerino

Upload: michelemanzotti

Post on 17-Dec-2014

1.050 views

Category:

Documents


2 download

DESCRIPTION

Sistema federato interregionale di autenticazione. Parte tecnica

TRANSCRIPT

Page 1: L'impatto dei Servizi Applicativi

PROGETTO ICARTask inf-3

L’impatto dei Servizi Applicativi

Michele ManzottiFausto Marcantoni

Barbara Re

Università di Camerino

Page 2: L'impatto dei Servizi Applicativi

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

Page 3: L'impatto dei Servizi Applicativi

3

Scenari Applicativi in fase di test

• Installazione di un IdP

• Installazione di un Sp

• Installare l’infrastruttura ICAR

Page 4: L'impatto dei Servizi Applicativi

4

Scenari Applicativi in fase di test

• Installazione di un IdP

• Installazione di un Sp

• Installare l’infrastruttura ICAR

Page 5: L'impatto dei Servizi Applicativi

5

Shibboleth

Handle

Handle

Attributi

Attributi

12

3

4

5

6

7

8 910

11

12

13

8

10

Page 6: L'impatto dei Servizi Applicativi

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

Page 7: L'impatto dei Servizi Applicativi

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

Page 8: L'impatto dei Servizi Applicativi

8

Organizzazzione dei file

Page 9: L'impatto dei Servizi Applicativi

9

Organizzazzione dei file

Page 10: L'impatto dei Servizi Applicativi

10

Organizzazzione dei file

Page 11: L'impatto dei Servizi Applicativi

11

Organizzazzione dei file

Page 12: L'impatto dei Servizi Applicativi

12

Organizzazzione dei file

Page 13: L'impatto dei Servizi Applicativi

13

Organizzazzione dei file

Page 14: L'impatto dei Servizi Applicativi

14

Organizzazzione dei file

Page 15: L'impatto dei Servizi Applicativi

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>

Page 16: L'impatto dei Servizi Applicativi

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" />

Page 17: L'impatto dei Servizi Applicativi

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" />

Page 18: L'impatto dei Servizi Applicativi

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

Page 19: L'impatto dei Servizi Applicativi

19

Scenari Applicativi in fase di test

• Installazione di un IdP

• Installazione di un Sp

• Installare l’infrastruttura ICAR

Page 20: L'impatto dei Servizi Applicativi

20

Scenari Applicativi in fase di test

• Installazione di un IdP

• Installazione di un Sp

• Installare l’infrastruttura ICAR

Page 21: L'impatto dei Servizi Applicativi

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

Page 22: L'impatto dei Servizi Applicativi

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

Page 23: L'impatto dei Servizi Applicativi

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

Page 24: L'impatto dei Servizi Applicativi

24

Scenari Applicativi in fase di test

• Installazione di un IdP

• Installazione di un Sp

• Installare l’infrastruttura ICAR

Page 25: L'impatto dei Servizi Applicativi

25

Scenari Applicativi in fase di test

• Installazione di un IdP

• Installazione di un Sp

• Installare l’infrastruttura ICAR

Page 26: L'impatto dei Servizi Applicativi

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

Page 27: L'impatto dei Servizi Applicativi

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

Page 28: L'impatto dei Servizi Applicativi

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

Page 29: L'impatto dei Servizi Applicativi

29

Integrazione dei sistemi

• Integrazione IdP e Sp

• Integrazione con l’infrastruttura ICAR

Page 30: L'impatto dei Servizi Applicativi

30

Integrazione dei sistemi

• Integrazione IdP e Sp

• Integrazione con l’infrastruttura ICAR

Page 31: L'impatto dei Servizi Applicativi

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">

Page 32: L'impatto dei Servizi Applicativi

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" ….

Page 33: L'impatto dei Servizi Applicativi

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

Page 34: L'impatto dei Servizi Applicativi

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

Page 35: L'impatto dei Servizi Applicativi

35

Integrazione dei sistemi

• Integrazione IdP e Sp

• Integrazione con l’infrastruttura ICAR

Page 36: L'impatto dei Servizi Applicativi

36

Integrazione dei sistemi

• Integrazione IdP e Sp

• Integrazione con l’infrastruttura ICAR

Page 37: L'impatto dei Servizi Applicativi

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

Page 38: L'impatto dei Servizi Applicativi

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

Page 39: L'impatto dei Servizi Applicativi

39

Sviluppi Futuri

• Autenticazione tramite SmartCard

• Autenticazione tramite Google

Page 40: L'impatto dei Servizi Applicativi

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/

Page 41: L'impatto dei Servizi Applicativi

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

Page 42: L'impatto dei Servizi Applicativi

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

Page 44: L'impatto dei Servizi Applicativi

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