Strumenti Utente

Strumenti Sito


documentazione_3di_riservata:docway4:audit

Questa è una vecchia versione del documento!


Modulo AUDIT di DocWay4

  • Modulo attraverso il quale tutte le azioni svolte da operatori o processi sull'applicazione DocWay vengono tracciate e registrate all'interno di uno specifico database su MongoDB
  • In caso di modifica di record (documenti XML su eXtraWay), all'interno del record di audit verranno registrate tutte le differenze (calcolate in formato JSON per successivo salvataggio su MongoDB) rispetto alla versione precedente del record
  • La registrazione delle differenze in salvataggio avviene con una procedura a 2 step per avere la certezza di non perdere informazioni di audit (e garantire quindi un tracciamento completo delle modifiche) anche in caso di arresto del server Tomcat:
    • Prima del salvataggio del record su eXtraWay, viene prodotto un file di lavoro dell'autit (contenente tutte le informazioni necessarie alla registrazione su MongoDb) e salvato su una specifica directory su file system come “lavoro in attesa
    • Se il salvataggio su eXtraWay restituisce errore, il file di lavoro in attesa viene rimosso dal disco
    • Se il salvataggio su eXtraWay si completa con successo, il file di lavoro in attesa viene riversato su MongoDB (specifica chiamata di save al client MongoDB) e rimosso dal disco
  • In caso di errore riscontrato in salvataggio dell'audit su MongoDB (es. database MongoDB non raggiungibile) il file in attesa viene rinominato come “fallito”. E' presente uno specifico JOB su DocWay che si occupa di analizzare la directory di lavoro dell'audit e verifica la presenza di file di errore e ritenta il salvataggio su MongoDB.
  • La registrazione dell'audit sul salvataggio di record (calcolo delle differenze con la versione precedente) può essere abilitata anche su tutte le applicazioni integrate con DocWay, ad esempio 3diWS o MSA
  • In caso di fallimento della registrazione dell'audit (o di altri errori ritenuti gravi) è possibile attivare l'invio di email di notifica ad amministratori di sistema. In questo modo sarà possibile riabilitare il tracciamento nel più breve tempo possibile
  • E' possibile configurare l'audit in modo da ignorare interventi su interi archivi eXtraWay o specifiche tipologie di record

N.B.: Visto che la registrazione temporanea dei dati di audit viene fatta su una specifica directory su file system, è importante tenere conto della velocità di scrittura su questa directory per mantenere delle performance accettabili.

Configurazione

  • Per attivare il modulo di audit su DocWay (o altre applicazioni integrate con esso, quali 3diWS o MSA) occorre abilitarlo attraverso uno specifico set di properties definite all'interno del file it.highwaytech.broker.properties:
audit.enabled=false

# Parametri di connessione a MongoDB
#audit.mongodb.uri=mongodb://localhost:27017/dw4audit?safe=true&w=1
audit.mongodb.uri=
#audit.mongodb.dbName=dw4audit
audit.mongodb.dbName=

# Directory all'interno della quale registrare i dati temporanei e gli errori riscontrati sulla registrazione dell'audit. Se non viene specificata alcuna directory, verra'
# creata ed utilizzata una directory 'dw4audit' all'interno della directory dei temporanei.
audit.workDir=

# Regular Expression da utilizzare per identificare eventuali seriali presenti all'interno dell'XML aggiornato dall'utente e che saranno poi assegnati tramite eXtraWay. Nei 
# casi previsti dalla regex il documento XML verra' ricaricato dopo il salvataggio su eXtraWay in modo da registrare il seriale asssegnato all'interno dell'archivio 
# di audit. Se non viene specificata alcuna regex si disabilitera' questo controllo 
audit.serial.regex=(num_prot|numero)[ ]{0,1}=[ ]{0,1}\"\\S*-\\.\"

# Definizione di xpath conosciuti per i quali e' possibile definire un set di attributi (o sottoelementi testo) che definiscono la chiave del nodo all'interno della 
# ripetizione. In questo modo le differenze possono essere valutate sul singolo nodo di elementi ripetibili e non sull'intera lista. Tutti i classici xpath ripetibili
# di docway e acl sono gia' gestiti a livello di codice (occorre definire eventuali xpath ripetibili di campi custom).
# Il formato di definizione e' il seguente:
# audit.repeatableXPath.know.N=XPATH_DOT_NOTATION|KEY_VALUE[,KEY_VALUE]
# dove:
# - N rappresenta il numero progressivo di definizione del path
# - XPATH_DOT_NOTATION rappresenta l'xpath con separatore il punto (/doc/rif_esterni/rif -> doc.rif_esterni.rif)
# - KEY_VALUE corrisponde ad un attributo o un sottoelemento di tipo test del nodo. E' possibile specificare piu' valori separandoli con la virgola
# - la definizione del path deve essere separata dalle chiavi tramite pipe
# Esempio (in realta' gli xpath seguenti sono gia' gestiti di default):
# audit.repeatableXPath.know.1=doc.postit|@cod_operatore,@data,@ora
# audit.repeatableXPath.know.2=doc.link_interno|@href
# audit.repeatableXPath.know.3=fascicolo.link_interno|@href

# Tempo (in minuti) di sleep del thread di che si occupa di ritentare il salvataggio dell'audit su MongoDB in caso di precedenti errori (default = 1 min)
audit.errorsJob.sleep=1

# Configurazione della casella per l'invio di email di notifica
# host
#audit.email_host=localhost
# porta
#audit.email_port=2525
# credenziali di accesso
#audit.email_username=
#audit.email_password=
# protocollo di invio
#audit.email_protocol=smtp
# indirizzo email utilizzato per l'invio
#audit.email_from_address=notifier@audit.3di
# nome alternativo dell'indirizzo email di invio
#audit.email_from_nickname=Audit Notifier
# indirizzo email al quale inviare le notifiche
#audit.email_to_address=admin@audit.3di

# Eventuale elenco di tipologie di record da ignorare su uno specifico archivio. Il formato di definizione e' il seguente:
# audit.pne.ignore.N=DB_NAME|ROOT_NAME[,ROOT_NAME]
# dove:
# - N rappresenta il numero progressivo
# - DB_NAME corrisponde all'archivio sul quale applicare le esclusioni di tipologie di record
# - ROOT_NAME corrisponde al nome dell'elemento radice dei record da non registrare in audit. E' possibile specificare piu' valori separandoli con la virgola
# - la definizione del nome db deve essere separata dagli xpath tramite pipe
# Esempio:
# audit.pne.ignore.1=acl|comune

# Elenco di archivi che devono essere ignorati dalla procedura di audit (nessun intervento sugli archivi specificati verra' tracciato)
audit.dbNames.ignore=

# Elenco di diritti (codici separati da virgola) per i quali deve essere mappata una specifica azione in fase di audit delle attivita' degli utenti. Verranno analizzati
# tutti gli interventi svolti su diritti e identificate le variazioni su diritti speciali o diritti di amministrazione
audit.acl.rights.dirittiSpeciali=ACL-16,ACL-30,ACL-DL01,ACL-SP01
# Per quanto riguarda i diritti di amministrazione, sono stati inseriti i codici degli applicativi classici, vanno aggiunti tutti i casi specifici dell'installazione
# presso il cliente
audit.acl.rights.amministrazione=ACL-25,ACL-24-ACL,ACL-24-ACLCRAWLER,ACL-24-DW,ACL-24-TO,ACL-24-SOGINSAP
  • audit.enabled deve essere settato per abilitare l'audit sull'applicazione. Con l'attivazione occorre sicuramente settare anche le properties di connessione al database MongoDB
  • audit.workDir corrisponde al percorso assoluto alla directory sulla quale verranno salvati i file temporanei di elaborazione dell'audit (prima di essere riversati su MongoDB)

Accesso da DocWay

L'accesso alla console di Audit può essere abilitato anche per alcuni operatori di DocWay, in base ad uno specifico diritto definito in ACL.

Il link di accesso alla console è visibile dal menù in altro di DocWay, sezione 'ALTRE FUNZIONI' → 'Console di Audit'.

Per poter abilitare il link occorre configurare le necessarie properties sul file it.highwaytech.apps.generic.properties:

# Abilita il link di accesso alla console di audit dall'applicativo docway ('si', 'no' - Default = 'no')
abilitaConsoleAudit=si

# Eventuale URL di accesso alla console di audit dall'applicativo docway (se non specificato non verra' visualizzato il link per l'accesso alla
# console di audit direttamente da docway)
auditConsole.url=http://HOST[:PORT]/auditConsole/login

Oltre alle properties occorre verificare la presenza del diritto di accesso alla console sul file dei diritti acl.xml:

...
<group label="Diritti speciali">
  ...
  <right cod="ACL-AU01" label="Accesso alla console di Audit applicativo"></right>
</group>
...

N.B.: Se il file è stato personalizzato per la specifica installazione, occorre aggiungere la porzione XML relativa al diritto al file acl.xml presente all'interno della directory del configuratore (es. '/opt/3di.it/confDocWay4-service/base/acl/diritti')

/data/attic/documentazione_3di_riservata/docway4/audit.1531906299.txt.gz · Ultima modifica: 2018/07/18 11:31 da mbernardini