Do It The jAPS Way
Copyright © 2009 AgileTec s.r.l.
Legal Notice
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the Appendix entitled "GNU Free Documentation License".
2011-02-18
| Revision History | ||
|---|---|---|
| Revision 1.2 | 2011-02-18 | MEM |
|
Controllo per il rilascio di jAPS 2.2.0 | ||
| Revision 1.1 | 2010-03-31 | MEM |
|
Controllo per il rilascio di jAPS 2.0.10 Modifica struttura capitoli | ||
| Revision 1.0 | 2009-05-02 | ES |
Prima versione pubblica | ||
Abstract
Lo scopo di questo documento è quello di fornire una descrizione completa della struttura del PluginLdap.
Table of Contents
List of Tables
List of Examples
Table of Contents
Lo scopo di questo documento è quello di fornire una descrizione completa della struttura del Plugin LDAP.
Questo documento è destinato a chi intende conoscere le funzionalità del jAPS Plugin LDAP,
e sta prendendo in considerazione la eventuale integrazione in un Ambiente di Produzione già funzionante
o nel proprio Ambiente di Sviluppo (Progetto in IDE Eclipse).
Il documento è indirizzato sia a Sistemisti (responsabili di installazioni di Applicazioni su base jAPS 2.0) che a Java Developers (con una conoscenza base del Framework jAPS 2.0).
Per poter utilizzare efficacemente le informazioni contenute in questo documento, occorre un po' di esperienza su alcune tecnologie del web base: la piattaforma Java, gli strumenti di sviluppo Eclipse, il servlet engine Apache Tomcat, il database PostgreSQL, e del Framework jAPS 2.0. E' inoltre necessario aver letto il documento jAPS 2.0 - Plugin Pattern.
Ulteriori informazioni possono essere richieste attraverso la mailing list ufficiale Google Group "japs-platform".
Per mandare un messaggio ai membri della lista, invia una mail a <japs-platform@googlegroups.com>.
È inoltre possibile consultare la documentazione presente in:
Table of Contents
Il Plugin LDAP consente la connessione ad una Directory LDAP (compreso Directory Microsft) e
la gestione di utenze di dominio nella stessa modalità in cui vengono gestite le utenze locali di jAPS 2.0 entando.
Il Plugin permette di delegare le operazioni di autenticazione alla directory, senza modificare le modalità di gestione delle autorizzazioni, che vengono sempre gestire (indifferentemente sia su utenze locali che remote) attraverso le interfacce utente in dotazione alla Distribuzione Base di jAPS 2.0 entando.
Table 2.1. Riassunto delle caratteristiche
| Codice | Nome | Tipo | Versione del Plugin | Versione di jAPS 2.0 entando |
|---|---|---|---|---|
| jpldap | LDAP | Modification | 1.1 | 2.2.0 - |
| jpldap | LDAP | Modification | 1.0 | 2.0.2 - 2.0.10 |
Table of Contents
Il Plugin ha la caratteristica di Modification, in quanto modifica le modalità di gestione delle utenze di sistema consentendo
l'operazione di autenticazione su server esterni basati su LDAP. Il Plugin non modifica la definizione e associazioni delle autorizzazioni, che possono
essere gestite, attraverso le Interfacce di Amministrazione di jAPS 2.0, in maniera trasparente sia su utenze locali
(cioè definite nel db serv di jAPS 2.0) che remote.
Il Plugin modifica un elemento base del core di jAPS 2.0, il Servizio Gestore Utenti.
In particolare il Plugin effettua la sovrascrittura del bean UserManager del contesto di Spring, inserendo le funzioni
necessarie per poter supportare le operazioni autenticazione (effettuate dal Servizio Authentication Provider) ed effettuare le operazioni di ricerca e sulla Directory.
Il pacchetto del Plugin contiene l'insieme delle cartelle (cartelle doc ed src più il file README)
definite nel documento di descrizione generale del jAPSPlugin Pattern.
In particolare, la directory src è strutturata come di seguito descritto:
Directory
java. Contiene le sorgenti java complete e i test jUnit del Plugin.Directory
webapp. La directory contiene tutti i file necessari alla webapp. Siccome il Plugin non presenta nessuna interfaccia utente, la directory contiene esclusivamente i file di definizione dei bean a servizio del layer di Business del Modello di jAPS 2.0.
Nota: da questo momento in poi ci riferiremo a mioportale come all'installazione di jAPS 2.0 entando in esecuzione sul server nel quale si vuole intervenire.
Per eseguire l'installazione in una applicazione Web in produzione basata sulla versione di jAPS 2.0 dichiarata compatibile con il Plugin, i passi da eseguire sono i seguenti:
Arrestare il servlet container
Copiare il contenuto della directory
src/webapp/WEB-INF/libdel pacchetto dato in dotazione, all'interno della directorymioportale/WEB-INF/lib/in produzione.Copiare il contenuto della directory
src/webapp/WEB-INF/pluginsdel pacchetto dato in dotazione, all'interno della directorymioportale/WEB-INF/plugins/in produzione. Creare la directory plugins se non è presente.Inserire i parametri di configurazione (
ldap.provider.url,ldap.provider.securityPrincipal,ldap.provider.securityCredentials,ldap.provider.userObjectClass,ldap.provider.userIdAttributeName,ldap.provider.filterGroup,ldap.provider.filterGroupAttributeName) adeguatamente configurati, nel filemioportale/WEB-INF/conf/systemParams.propertiesin produzione.
Per eseguire l'installazione in un progetto Eclipse basato sulla versione di jAPS 2.0 dichiarata compatibile con il Plugin, i passi da eseguire sono i seguenti:
Copiare il contenuto della directory
src/webapp/WEB-INF/pluginsdel pacchetto dato in dotazione, all'interno della directory.mioprogetto/WebContent/WEB-INF/plugins/Inserire i parametri di configurazione (descritti in dettaglio nel prossimo capitolo)
ldap.provider.url,ldap.provider.securityPrincipal,ldap.provider.securityCredentials,ldap.provider.userObjectClass,ldap.provider.userIdAttributeName,ldap.provider.filterGroupeldap.provider.filterGroupAttributeName), adeguatamente configurati, nel file,mioprogetto/WebContent/WEB-INF/conf/systemParams.propertiesemioprogetto/WebContent/WEB-INF/conf/ANTsystemParams.properties.mioprogetto/admin/test/systemParams.propertiesCopiare il contenuto della directory
src/java/main/comnella directorydel proprio progetto.mioprogetto/src/com
Una volta eseguiti i passi sopra descritti, far partire il progetto da Eclipse e verificare la corrette connessione con il server ldap desiderato, verificando la presenza delle utenze attese nella lista delle utenze di sistema visualizzate nell'apposita Interfaccia di Amministrazione.
Il Plugin necessita di una serie di parametri per poter effettuare correttamente la connessione con la specifica Directory LDAP (sia OpenLDAP che Microsoft Active Directory).
I parametri vanno inseriti come variabili d'ambiente all'interno
del file di configurazione /META-INF/context.xml.
Example 4.1. Una possibile configurazione di LDAP
<!-- jpldap -->
<Environment name="ldap.provider.url"
value="ldap://192.168.4.11:389/dc=mydomain,dc=com"
type="java.lang.String" override="false" />
<Environment name="ldap.provider.securityPrincipal"
value="" type="java.lang.String" override="false" />
<Environment name="ldap.provider.securityCredentials"
value="" type="java.lang.String" override="false" />
<Environment name="ldap.provider.userObjectClass"
value="posixAccount" type="java.lang.String" override="false" />
<Environment name="ldap.provider.userIdAttributeName"
value="uid" type="java.lang.String" override="false" />
<Environment name="ldap.provider.filterGroup"
value="" type="java.lang.String" override="false" />
<Environment name="ldap.provider.filterGroupAttributeName"
value="" type="java.lang.String" override="false" />
Notare che la dichiarazione degli stessi parametri assume una forma differente
per i file myproject/admin/test/systemParams.properties e
myproject/WebContent/WEB-INF/conf/ANTsystemParams.properties
Example 4.2. Dichiarazione dei parametri del plugin LDAP per i file *.properties
ldap.provider.url=ldap://192.168.4.11:389/dc=mydomain,dc=com ldap.provider.securityPrincipal= ldap.provider.securityCredentials= ldap.provider.userObjectClass=posixAccount ldap.provider.userIdAttributeName=uid ldap.provider.filterGroup ldap.provider.filterGroupAttributeName=
I parametri da inserire sono:
ldap.provider.urlUrl del server LDAP a cui connettersi. La valorizzazione del parametro è Obbligatoria.
ldap.provider.securityPrincipalNome utente dell'utenza attraverso la quale connettersi con il server. Non è necessario specificare il parametro nel caso si voglia effettuare una connessione anonima al server ldap, se il server lo consente (Microsoft Active Directory non consente connessioni anonime). Il parametro rappresenta l'identificavo univoco dell'utente tramite il quale effettuare la connessione, cioè il suo Distinguished Name; il Distinguished Name è formato dal nome stesso dell'entry (detto Relative Distinguished Name, solitamente ricavato da qualche attributo della entry) seguito dai nomi delle entry-genitore, separati da virgole.
ldap.provider.securityCredentialsPassword dell'utenza attraverso la quale connettersi con il server. Non è necessario specificare il parametro nel caso si voglia effettuare una connessione anonima al server ldap, se il server lo consente (Microsoft Active Directory non consente connessioni anonime).
ldap.provider.userObjectClassNome della
objectClassdi riferimento per le entry di tipo utente. La valorizzazione del parametro è Obbligatoria. Nel caso di connessioni con Domini Microsoft Active Directory, il parametro deve assumere il valoreuser. Nel caso di Domini basati su OpenLDAP, di solito, assume il valoreposixAccount.ldap.provider.userIdAttributeNameNome dell'attributo della entry che rappresenta l'identificativo univoco dell'utenza LDAP. La valorizzazione del parametro è Obbligatoria. Nel caso di connessioni con Domini Microsoft Active Directory, il parametro deve assumere il valore
sAMAccountName. Nel caso di Domini basati su OpenLDAP, di solito, assume il valoreuid.ldap.provider.filterGroupSpecifica il nome completo del gruppo LDAP a cui devono appartenere gli utenti erogati dal servizio. Nel caso non si voglia effettuare nessun filtro sulle utenze, può essere lasciato vuoto.
ldap.provider.filterGroupAttributeNameNome dell'attributo della entry che indica l'appartenenza a gruppi LDAP. Nel caso non si voglia effettuare nessun filtro sulle utenze, può essere lasciato vuoto.
Se LDAP non è configurato propriamente la risposta del server può essere così grande da risultare in un eccessivo rallentamento delle prestazioni che poi può causare un blocco complessivo del sistema.
Per prevenire questa situazione, l'XML che contiene il bean che dichiara
il servizio LDAP, WEB-INF/plugins/jpldap/conf/managers/baseManagersConfig.xml
contiene una property commentata:
<!-- <property name="searchResultMaxSize">
<value>100</value>
</property> -->
Questo parametro può essere attivato per limitare il numero dei risultati restituiti dal manager LDAP in modo da poter valutare il degrado prestazionale durante il fine tuning del sistema.
