Sei sulla pagina 1di 9

Messa in esercizio, assistenza e

aggiornamento di una Piattaform Open


Source
Liferay plug-in per ARPA

C. Simonelli (TAI)

Redatto da

E.Mattei (TAI)

Rivisto da
Approvato da

1.2

Versione

13/08/10

Data emissione

Proposto per approvazione

Stato

Storia del documento


Versione

Data
1.0
1.1

15/03/10
21/04/10

1.2

13/08/10

Descrizione
Prima versione
Inserito uso del file XML
Esteso Supporto Liferay
4.3.5

Sommario
1

4
1.1Glossario

termini

4
1

4
1

2Connettore ARPA SpAgent / Amsdk per Liferay


6
2

6
2

6
2

7
2

7
2

7
2.3.3Configurazione

versione

Arpa

SpAgent

8
2.3.4Installazione

Configurazione

versione

AmSdk

9
2.3.5Mappatura
9

dei

Ruoli

Premessa
Il Liferay plug-in per ARPA un componente software che permette di integrare
un portale basato su Liferay Portal Server nell'infrastruttura ARPA di Autenticazione e
Autorizzazione basata su Ruoli di Regione Toscana.
Sfruttando il Liferay plug-in per ARPA possibile fruire dei servizi di
autenticazione e autorizzazione forniti da ARPA e mappare in modo configurabile le
informazioni di ruolo fornite da ARPA sulle strutture di profilazione utilizzate al
proprio interno dal portale Liferay.
Sono nel seguito descritte le modalit di installazione e configurazione del
componente.

Glossario e termini

ARPA

SAML

J2EE
Liferay

Policy Agent

SLO
SSO

SpAgent

Autenticazione Ruoli Profili Applicazioni


Security Assertion Markup Language.
Linguaggio basato su XML utilizzato per lo
scambio di informazioni di autenticazione e
autorizzazione tra domini distinti, detti
Identity Provider e Service Provider
Java 2 Enterprise Edition
E' un portale OpenSource realizzato in
Java
Componente plug-in che agisce in
cooperazione con Access Manager ed
effettua il controllo delle credenziali
consentendo la gestione della
autenticazione ed il controllo degli
accessi centralizzato.
Richiede e applica le politiche di
autorizzazione daccesso alle risorse
Single Logout

Single Sign On
Filtro J2EE basato su standard Samlv2 che viene
impiantato su applicazioni che non possiedono
propri meccanismi di autenticazione e che
intendono trarre vantaggio dai servizi di
autenticazione messi a disposizione da ARPA.

Riferimenti
Progetto MEVARPA-Manuale di Installazione SpAgent

Validit
Il presente documento valido a partire dalla data di emissione riportata in
copertina.

Connettore ARPA SpAgent / Amsdk per Liferay

Introduzione
Il connettore ARPA per Liferay (o Liferay plug-in per ARPA) un plugin, distribuito
come libreria java, che consente di integrare il prodotto Liferay con l'infrastruttura
ARPA SpAgent / Amsdk delegando quindi a quest'ultima la funzione di autenticazione
degli utenti.
Anche la definizione dei permessi viene delegata ad ARPA, infatti il file di
configurazione roledecode2.xml permette di associare alle informazioni di ruolo di
ARPA (es. <nome ruolo>, o combinazione <nome ruolo>, <nome attributo>,
<valore attributo>) uno o pi ruoli applicativi preventivamente definiti in Liferay.
E' possibile usare il Liferay Plug-in per ARPA sia per utenti gi presenti nel DB
interno di Liferay che per utenti non registrati: in questo secondo caso, l'utente viene
creato. Nel momento in cui l'utente effettua l'accesso a Liferay, la sua eventuale
appartenenza a gruppi di utenti definiti in Liferay viene resettata e reimpostata in
base alle informazioni ottenute da ARPA.

Prerequisiti
I prerequisiti software per l'installazione e l'uso del connettore sono i seguenti:
Nome Prodotto
Jvm
Liferay
Arpa SpAgent (Per installazione su
SpAgent)
Sun policy Agent per Tomcat (Per
installazione su Amsdk)
Arpa Common

Versione
1.5
5.2.3 e 4.3.5
1.1
2.2
2.1

Come si vede, il plug-in pu essere utilizzato su installazioni ARPA basate sia


SpAgent che su SUN Policy Agent. In entrambi i casi, si presuppone che l'agent sia
gi correttamente installato come descritto nel relativo documento di installazione.
Le modifiche da applicare alla directory di deploy di Liferay sono contenute nel file
liferay-diff-sample-XXXX.war incluso nella distribuzione del plug-in. E' consigliabile
partire da tale configurazione per semplificare il processo di installazione.
L'istanza di Liferay su cui installare il connettore deve essere accessibile con
protocollo HTTPS con mutua autenticazione, a questo proposito si consiglia l'uso di

Apache HTTP Server con mod_ssl e mod_jk opportunamente configurati.


Ne consegue che il web server dovr essere fornito di un certificato X509 valido.

Installazione

Premessa
Il materiale richiesto presente nel pacchetto spas-release-x.y.z-release-full.zip,
nel seguito per indicare i file si far riferimento alla struttura di questo pacchetto:

dist: cartella contenente il connettore vero e proprio

arpa-autologin-liferay-x.y.z.jar : libreria java

arpa-autologin-liferay-versionx.y.z.jar : libreria java

arpa-autologin-common-x.y.z.jar : libreria java

doc: cartella con la documentazione a corredo;

esempi:esempi per i file di configurazione:

liferay-diff-sample-XXXX.war: contentente le modifiche da applicare


alla directory di deploy di liferay cos come descritto nei prossimi
paragrafi

roledecode2.xml: file con la mappatura per associare ad un ruolo arpa


uno o pi ruoli applicativi;

web.xml: esempio di web.xml modificato per Liferay

Installazione
Questo paragrafo descrive la procedura per l'installazione, su una istanza Liferay,
del connettore ARPA:
1.

copiare il file arpa-autologin-liferay.jar e arpa-autologin-common.jar


presente nella cartella dist dell'archivio fornito nella cartella WEB-INF/lib di
Liferay;

2.

Creare / Modificare il file portal-ext.properties in WEB-INF/classes di Liferay


aggiungendo le seguenti properties:

auto.login.hooks=it.tai.arpa.liferay.version5_2_3.ArpaAutoLogin (versione
5.2.3 di Liferay)
auto.login.hooks=it.tai.arpa.liferay.version4_3_5.ArpaAutoLogin (versione 4.3.5
di Liferay)
#Se true, indica al modulo di autenticazione se creare automaticamente il ruolo nel caso non fosse trovato all'interno di
Liferay

arpa.roledecoder.autocreaterole=true
#Se true, indica al modulo di autenticazione se creare automaticamente il gruppo nel caso non fosse trovato all'interno di
Liferay

arpa.roledecoder.autocreateusergroup=true
#Indica al modulo di autenticazione dove cercare il file per il mapping dei ruoli

arpa.roledecoder.location=home/arpa/configuration/roledecode2.xml

Configurazione versione Arpa SpAgent


Questo paragrafo descrive la procedura per la configurazione, su una istanza
Liferay, del filtro Arpa SpAgent:
Modifica del File SpBootstrap.properties
sp.config.javax.xml.soap.MessageFactory.usecustom=true
sp.config.javax.xml.soap.SOAPConnectionFactory.usecustom=true
1.
Modifica del File SpConfiguration.properties
Commentare / Eliminare le seguenti properties
#sp.config.access.denied.uri=
#sp.config.error.page.uri=
Modificare / Aggiungere le seguenti properties
sp.config.notenforced.uri.invert=true
sp.config.notenforced.uri[0]=/c/portal/login*?*
sp.config.notenforced.uri[1]=/c/portal/logout*
sp.config.notenforced.uri[2]=/c/portal/logout*?*
sp.config.notenforced.uri[3]=/c/portal/logout
sp.config.notenforced.uri[4]=/c/portal/login*
sp.config.logout.uri=/c/portal/logout

Installazione e Configurazione versione AmSdk


1.

Copiare i file arpa-common-2.1.jar e arpa-commonamsdk-2.1.jar


presente nella cartella esempi
dell'archivio fornito nella cartella WEB-INF/lib di Liferay;

Modifica del File AMAgent.properties


Modificare / Aggiungere le seguenti properties
com.sun.identity.agents.config.notenforced.uri[0] =/c/portal/login*
com.sun.identity.agents.config.notenforced.uri[1] =/c/portal/logout*
com.sun.identity.agents.config.notenforced.uri[3] =/c/portal/logout*?*
com.sun.identity.agents.config.notenforced.uri[4] =/c/portal/login*?*
com.sun.identity.agents.config.notenforced.uri[5] =/web/guest/
com.sun.identity.agents.config.notenforced.uri.invert = true
com.sun.identity.agents.config.logout.uri[DefaultWebApp] =/c/portal/logout
Nota:
Perch le deleghe funzionino correttamente necessario che l'applicazione, su
Portal, sia mappata con l'URL https://host:porta/web/guest/home

Mappatura dei Ruoli


L'associazione tra le informazioni di Ruolo di ARPA e i Ruoli e Gruppi in Liferay
avviene mediante l'uso di un file XML il cui utilizzo viene mostrato di seguito.
Per ogni ruolo ARPA che deve essere mappato su Liferay necessario aggiungere
un codice Xml come mostrato in Tabella 1, dove il campo name indica il nome del
ruolo ARPA e rolemapper e groupmapper indica rispettivamente la lista dei ruoli e
gruppi a cui associare l'utente su Liferay
<arparole>
<name>Nome Ruolo su Arpa</name>
<rolemapper>Ruolo1</rolemapper>
<rolemapper>Ruolo2</rolemapper>
<groupmapper>Gruppo 1</groupmapper>
</arparole>
Tabella 1: Esempio mappaggio ruolo
E' possibile creare un mappaggio basato sul valore di determinati attributi utente
all'interno di un ruolo. Supponiamo ad esempio che all'interno del ruolo Dipendente
in ARPA vi sia un attributo tipoDiContratto, e che si voglia mappare il valore
Indeterminato con un particolare gruppo in Liferay: il file di configazione relativo
mostrato nella figura seguente.

<arparole>
<name>Dipendente</name>
<localattribute>
<name>tipoDiContratto</name>
<value>Indeterminato</value>
<groupmapper>Dipendente Indeterminato</groupmapper>
</localattribute>
</arparole>
Tabella 2: Esempio mappaggio attributo
Ad ogni login dell'utente su Liferay, il sistema deassocia i ruoli e i gruppi
dall'utente in base ad una determinata configurazione indicata nel codice XML reset
<reset>
<role>Ruolo da deassociare all'utente ad ogni Login. Usare * per
tutti</role>
<group>Gruppo da deassociare all'utente ad ogni Login. Usare *
per tutti</group>
</reset>
Tabella 3: Esempio Reset Ruoli, Gruppi su Liferay
Per ogni ruolo da deassociare su Liferay utilizzare i tag Xml <role></role>
Per ogni gruppo da deassociare su Liferay utilizzare i tag Xml <group></group>
Di seguito mostrato un esempio completo di file di Mapping tra Arpa e Liferay

<?xml version="1.0" encoding="UTF-8"?>


<arpamapper xmlns="http://www.regione.toscana.it/schema/arpa"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.regione.toscana.it/schema/arpa
arpa.xsd ">
<arparole>
<name>Nome Ruolo su Arpa</name>
<rolemapper>Nome Ruolo su Liferay</rolemapper>
<groupmapper>Nome Gruppo su Liferay</groupmapper>
<localattribute>
<name>Nome Attributo All'interno del Ruolo</name>
<value>Valore Attributo all'interno del Ruolo</value>
<rolemapper>Nome Ruolo su Liferay</rolemapper>
<groupmapper>Nome Gruppo su Liferay</groupmapper>
</localattribute>
</arparole>
<reset>
<role>Ruolo da deassociare all'utente ad ogni Login. Usare * per
tutti</role>
<group>Gruppo da deassociare all'utente ad ogni Login. Usare *
per tutti</group>
</reset>
</arpamapper>
Tabella 4: Esempio Completo File Mapping Arpa - Liferay