CMDBuild Forum

Importare Employees da Active Directory

Ciao a tutti,

spero che questo post possa tornare utile a coloro che come me stanno provando a importare da Active Direcory e mantenere aggiornato l'elenco degli Employees.

 

Per ora ho esportato i nominativi da AD con la seguente query ldap:

 

 

ldapsearch -LLL -H ldap://your.dc.address -ssub -x -D user -W -b "dc=your,dc=base" "(&(objectCategory=person)(objectClass=user))" sn givenName mail telephoneNumber objectSid | grep -vE "^#|^$|^\s+|^dn: "| awk 'BEGIN { print "Surname|Name|Email|Phone|State|Code" } {a[$1]=$2; for (i=3; i<NF; i++) a[$1]=a[$1] $i; if(NF > 2) a[$1]=a[$1]" "$NF; if ($1=="mail:") {printf( "%s|%s|%s|%s|Active|%s\n", a["sn:"], a["givenName:"], a["mail:"], a["telephoneNumber:"], a["objectSid::"]); delete a;}}'

 

Le righe sono formattate come: Surname|Name|Email|Phone|State|Code

Il campo Code, che ho messo a unique nella classe Employee, viene valorizzato con il SID dell'utente.

Il campo State per ora viene valorizzato con Active, ma si può facilmente impostare in accordo con lo stato che l'oggetto ha in Active Directory.

 

Ho quindi importato con successo gli Employees in CMDBuild.

 

Le domande che mi restano sono:

 

1 - In CMDBuild è prevista o preferibile una strada diversa da questa per importare dati da Active Directory?

 

2 - Come posso mantenere facilmente aggiornata la base dati? Ho visto che la funzionalità "Import CSV" ha un tasto Update, ma non sembra aggiornare le Card qualora vi siano dei dati modificati: ogni volta restituisce l'avviso "No cards to update" anche se vado a modificare a mano uno dei valori.

 

Un grazie in anticipo per l'aiuto.

Paolo Larcheri

 

 

 

 

 

 

Se si tratta di una importazione una-tantum la strada da lei descritta è corretta.

Va però considerato che la funzione di Import CSV opera esclusivamente in modalità di "Add", per cui non sarebbe possibile eseguire aggiornamenti successivi.

 

Per configurare un sistema di sincronizzazione periodica la strada che utilizziamo è quella di configurare un connettore esterno in grado di accedere sia a LDAP che al webservice di CMDBuild per operare i controlli e gli aggiornamento del caso (eventualmente, se utile, con meccanismi di notifiche mail e avvio di processi per il controllo "umano" delle modifiche prima di registrarle nel CMDB).

 

Per ottimizzare le nostre attività di sviluppo abbiamo anche realizzato due tool in grado di eseguire tali operazioni.

Il primo (basato su XML + XSLT) è rilasciato sul sito CMDBuild, trova il link nella pagina http://www.cmdbuild.org/it/download con la descrizione "external-connectors-1.4.0.zip (connettore per importazione da sorgenti esterne - OCS Inventory)". Come esempio di fonte dati esterna è stato indicato il tool di discovery OCS Inventory, ma se opportunamente configurato può essere utilizzato anche per connettersi a LDAP.

Il secondo, con maggiori funzionalità (opera anche con webservice SOAP, file CSV, account di posta IMAP) e maggiori performance (è scritto in Java con possibilità di personalizzazione in Groovy), viene invece reso disponibile a chi dispone di un contratto di assistenza attivo.

 

CMDBuild Team