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

L'impatto dei Servizi Applicativi

Embed Size (px)

DESCRIPTION

Sistema federato interregionale di autenticazione. Parte tecnica

Citation preview

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