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