Manuale d`uso dell`emulatore di portale e del relativo generatore di file

Transcript

Manuale d`uso dell`emulatore di portale e del relativo generatore di file
Contratto:
ARPA – Rif. repertorio n° 6788 raccolta n° 2778 firmato il 7/4/2006
Modulo:
Sistema:
ARPA
Nota:
Ad esclusivo uso interno della Regione Toscana Settore ITSAE.
Versione documento: 1.0.2
Manuale d’uso dell’emulatore di portale e del relativo
generatore di file
Livelli di approvazione
RTI
Redazione
Funzione
Nome
Data
Architect Jada
Marco Gramaglia
05-03-2008
Revisione
Approvazione/Emissione
PM Jada
PM RTI
Alessandro Rossi
Marco Coppi
05-03-2008
05-03-2008
Livelli
Cliente
Verifica
di
approvazione Funzione
Nome
Data
Firma
Firma
Approvazione
Approvazione
LISTA DI DISTRIBUZIONE
Emulatore di portale
Pagina 1 di 8
PROGETTO ARPA
REVISIONI
Paragrafo/Revisione
1
Modifica effettuata
Prima versione
Emulatore di portale
Pagina 2 di 8
Data
05/03/2008
PROGETTO ARPA
SOMMARIO
1 GENERALITÀ..............................................................................................................................4
1.1 SCOPO ...................................................................................................................................4
1.2 VALIDITÀ .................................................................................................................................4
1.3 GLOSSARIO DEI TERMINI ..........................................................................................................4
1.4 RIFERIMENTI ...........................................................................................................................6
2 CONFIGURAZIONE DEL GENERATORE DI FILE......................................................................7
3 UTILIZZO DELL’EMULATORE DI PORTALE ............................................................................. 7
Emulatore di portale
Pagina 3 di 8
PROGETTO ARPA
1GENERALITÀ
Il presente documento descrive l’utilizzo dell’ emulatore di portale e del relativo generatore di file nell’
ambito del progetto Arpa
1.1Scopo
L’obiettivo di questo documento è la descrizione dell’ emulatore di portale e del relativo generatore di
file per gli sviluppatori di applicazioni che devono essere integrate nel contesto Arpa.
1.2Validità
Il presente documento è valido a partire dalla data di emissione riportata in copertina.
1.3Glossario dei termini
Access Manager
Componente della suite Sun Java System (SJS) che eroga funzionalità di
autenticazione e controllo accessi.
http://docs.sun.com/app/docs/doc/819-6188/6n87ih3o2?a=view
Adapter
Componente software che nasconde ed “adatta” l’interfaccia di un
componente mostrandone un’altra all’esterno. Consente di “uniformare”
l’interfaccia di accesso alle fonti dati durante il processo di discovery e verifica
dei ruoli.
ARPA
Autenticazione Ruoli Profili Applicazioni
AM Policy Agent
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 d’accesso alle risorse.
http://docs.sun.com/app/docs/coll/1322.1
http://docs.sun.com/app/docs/doc/819-2143
AM SDK
Access Manager Software Development Kit. L'AMSDK è un framework che
permette la verifica e la validazione del token di sessione del portale.
Permette inoltre di accedere alla sessione utente e acquisire le informazioni
che preventivamente sono state associate al tokenId della sessione (es. CF,
ruoli, etc.)
http://docs.sun.com/app/docs/doc/819-2139
http://docs.sun.com/app/docs/doc/819-2141
CART
Infrastruttura di Cooperazione Applicativa di Regione Toscana
Cache
Memoria che contiene informazioni temporanee, utilizzata per velocizzare la
ricerca e la fruizione delle informazioni, evitando di reperirle direttamente
dalle fonti primarie.
Certificatori di
ruolo
Entità che rendono disponibili attraverso una o più Fonte Dati, le informazioni
(gli attributi) necessari alla verifica (certificazione) del ruolo da parte del
modulo ROLE MANAGER.
CIE
Carte di Identità Elettronica
CNIPA
Centro Nazionale per l'Informatica nella Pubblica Amministrazione
Emulatore di portale
Pagina 4 di 8
PROGETTO ARPA
CNS
Carta Nazionale dei Servizi
Container
Anche “Web container”; componente software specificata da J2EE che
definisce un ambiente operativo per le applicazioni web.
Connector
Componente software che consente l’interscambio di informazioni con una
particolare fonte dati mediante il protocollo richiesto.
CRIC
Centro Regionale per l’interoperabilità e la Cooperazione Applicativa
Criterio
L’insieme di dati che selezionano e valorizzano opportunamente i parametri
esposti dagli adapter, consentendone la specializzazione per il prelievo di
opportune informazioni dalle varie fonti dati.
CRL
Certificate Revocation List
Desktop
Ambiente di lavoro erogato agli utenti attraverso la componente SJS Portal
Server utilizzata nell'ambito del PORTAL.
Directory Server
È il repository dei dati utilizzato dal Portale e dell'Access Manager, costituito
dal Directory Server LDAPv3 Sun Java System Directory Server.
http://docs.sun.com/app/docs/coll/1316.1
Firewall
Componente di difesa perimetrale che svolge funzioni di controllo accessi a
livello di rete tra due o più sottoreti.
Fonte Dati
Repository di informazione necessario al ROLE MANAGER per verificare
l’assegnazione dei ruoli agli utenti attraverso specifici Adapter.
Gateway
Componente di Sun Java System Portal Server deputata alla protezione di
URL attraverso meccanismi SSL e riscrittura.
GENERIC
Applicazioni preesistenti o future che vengono integrate a vario livello
nell’infrastruttura. Sono escluse da questa definizione le applicazioni
sviluppate con il framework SRTY.
Integrazione
Applicazioni
Una applicazione è da considerarsi integrata nel portale quando:
è definita come risorsa di un ruolo gestito dal ROLE MANAGER e quindi, sul
desktop di un utente associato a tale ruolo, compare da qualche parte il link
ad essa;
tramite un modulo del Portal Server (SRA Gateway) si garantisce la
raggiungibilità e la corretta fruibilità del servizio offerto dall'applicazione;
per un più alto livello di integrazione, sia garantito il Single Sign-On (SSO).
I tre punti precedenti definiscono livelli di integrazione diversi da un livello
base in cui si ha il solo link sul desktop ad un livello maggiore in cui viene
garantito il Single Sign-On. In questo documento, il livello di integrazione
inteso sarà sempre quello massimo in cui verrà garantito: presentazione sul
desktop, raggiungibilità e fruibilità del servizio e SSO.
J2EE
Java 2 Enterprise Edition
Insieme di specifiche Sun che definisce un ambiente operativo per le
applicazioni accessibili via protocolli Internet (HTTP)
LDAP
Lightweight Directory Access Protocol
Particolare tipo di protocollo per la ricerca e la fruizione di informazioni
Load Balancer
Componente hardware o software che permette la virtualizzazione di più
server su una unica entità e la suddivisione del carico su di essi.
link
Collegamento ipertestuale
NAL
Nodo Applicativo Locale (parte dell'architettura di cooperazione applicativa)
PDC
Personal Digital Certificate
PDK
Proxy Development Kit
Insieme di pacchetti software e di specifiche per la realizzazione di proxy
Emulatore di portale
Pagina 5 di 8
PROGETTO ARPA
applicativi
Proxy applicativo Porta applicativa per l’accesso alle funzioni di pubblicazione e sottoscrizione
del CART
Risorsa
Applicazione fruibile via web e accessibile mediante link
Ruolo
Individua gli incarichi, gli obblighi ed privilegi che un utente ha all'interno di un
determinato contesto istituzionale e che ne condizionano i profili applicativi
all’interno del portale.
SIL
Sistema Informativo
applicativa)
SAML
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
SSO
Single Sign On
SRTY
Framework per lo sviluppo di applicazioni profilate ad accesso sicuro di
Regione Toscana.
SJS
Sun Java System. Famiglia di prodotti software di Sun Microsystems
Web Proxy
Server
Componente SJS con funzionalità di reverse proxy.
http://docs.sun.com/app/docs/coll/1311.1
Web Service
Applicazione software le cui funzionalità sono descrivibili, identificabili ed
usufruibili tramite linguaggio XML; le interazioni con altre applicazioni
vengono effettuate tramite scambio di messaggi basati su XML con l’utilizzo
di protocolli Internet (HTTP)
Locale
(parte
dell'architettura
di
cooperazione
1.4Riferimenti
Sono di seguito elencati i documenti utilizzati nel processo di identificazione delle funzionalità:
•
Specifiche funzionali e tecniche emulatore di portale Progetto ARPA
Emulatore di portale
Pagina 6 di 8
PROGETTO ARPA
2CONFIGURAZIONE DEL GENERATORE DI FILE
Il generatore di file è una web-application J2EE. Il generatore non fa uso di DB o repository, tutti i dati
immessi dall’utente vengono salvati nella sessione di lavoro. L’output di tale applicazione è un file
necessario al funzionamento dell’ emulatore di portale. Le uniche configurazioni del generatore sono
relativi ai file:
•
•
log4J.properties, che specifica le impostazioni per il logging
settings.properties, che specifica la locazione del file di definizione per le url che
compaiono nella prima pagina dell’applicazioni web.
Settings.properties contiene soltanto un percorso (ex. C:/temp). All’interno di tale percorso dovrà
essere posizionato un file dal nome links.properties che contiene nella forma <url>=<descrizione> la
url e la descrizione della url che si vuol fare comparire nella prima pagina dell’applicazioni web. Di
seguito viene riportato un esempio delle entry nel file links.properties:
www.repubblica.it=Vai a Repubblica
www.google.it=Google
Entrambi i file devono essere posizionati nel classpath relativo all’applicazione, normalmente sotto la
directory …/WEB-INF/classes.
3UTILIZZO DELL’EMULATORE DI PORTALE
L’emulatore di portale è un file “jar” dal nome emulatoreArpa.jar. Per il suo funzionamento è
necessario che l’applicazione java che lo utilizza abbia nel proprio classpath:
•
•
•
emulatoreArpa.jar
arpa-common.jar
Il file prodotto mediante il generatore di file.
Di seguito viene riportato un esempio di utilizzo dell’ emulatore. In particolare si vuole stampare sull’
output standard i dati dell’ utente (nome, cognome, codice fiscale) , i dati dell’ eventuale utente
delegante, i nomi dei ruoli posseduti dall’ utente, i nomi ed i valori degli attributi. Si suppone che,
tramite il generatore di file, sia stato generato ed opportunamente posizionato nel classpath il file
necessario al funzionamento dell’ emulatore. Tale file contiene tutti i dati relativi all’utente
precedentemente citati.
String className = "it.datapos.arpa.emulatore.ArpaSSOProxyFactoryImpl"; // nome
della classe che implementa ArpaSSOProxyFactory
Class factory = Class.forName(className);
Method factoryMethod = factory.getMethod("getInstance", new Class[]
{ServletRequest.class}); // isolo il metodo "getInstance"
ArpaSSOProxy proxyDeserializzato = (ArpaSSOProxy)factoryMethod.invoke(null,new
Object[] {null});// invoco il metodo "getInstance"
ArpaUser user = proxyDeserializzato.getAuthenticatedUser();
System.out.println("nome-->" + user.getName());
System.out.println("cognome-->" + user.getSurname());
System.out.println("CF-->" + user.getCf());
user = proxyDeserializzato.getDelegatingUser();
System.out.println("nome delegante-->" + user.getName());
System.out.println("cognome delegante-->" + user.getSurname());
System.out.println("CF delegante-->" + user.getCf());
Emulatore di portale
PROGETTO ARPA
Pagina 7 di 8
Set deserSet = proxyDeserializzato.getWorkingRoles();
Iterator deserIteratore = deserSet.iterator();
while(deserIteratore.hasNext())
{
ArpaRole role = (ArpaRole) deserIteratore.next();
System.out.println("nome ruolo-->" + role.getName());
ArpaRole padre = role.getParent();
if (padre != null)
System.out.println("nome ruolo padre-->" +padre.getName());
else System.out.println("nome ruolo padre-->null");
Set attribSet = role.getAllAttributes();
Iterator it = attribSet.iterator();
while(it.hasNext())
{
ArpaAttribute aa = (ArpaAttribute) it.next();
System.out.println("nome attributo-->" + aa.getName());
System.out.println (" nome ruolo di def.-->" +aa.getRole().getName());
Set attribVal = aa.getValues();
Iterator iteratore = attribVal.iterator();
while(iteratore.hasNext())
{
String value = (String) iteratore.next();
System.out.println("valore attributo-->" + value);
}
}
}
Emulatore di portale
Pagina 8 di 8
PROGETTO ARPA