2.5. Utenti e Gruppi¶
Contenuti
2.5.1. Premesse¶
Sanet prevede due tipi di interfacce utente per l'accesso ai dati:
L'accesso tramite credenziali e' obbligatorio.
L'accesso tramite credenziali e' opzionale e puo' essere abilitato/disabilitato da file configurazione.
In entrambi i casi, l'accesso ai dati di Sanet viene regolato attraverso la gestione di:
utenze con credenziali di accesso (username, password).
gruppi di utenze.
capability generiche.
permessi di accesso in lettura/scrittura alle singole risorse configurate.
2.5.2. Utenti¶
2.5.2.1. Dati di base¶
Questi sono i dati associati ad ogni utenza:
Dato
Descrizione
username
Username utilizzato per le procedure di autenticazione
firstname
Nome associato all'utente.
lastname
Cognome associato all'utente.
Indirizzo email associato all'utenza.
2.5.2.2. Tipi di utenti¶
Si distinguono due tipi di utenti:
- Superutenti o amministratori o admin.
I superutenti possono accedere a tutte le funzionalita' del sistema senza nessun tipo di restrizione.
- Utenti (normali)
L'accesso alle diverse funzionalita' del sistema e' regolamentato da un sistema di gruppi/capabilities descritto in seguito.
2.5.2.3. Abilitazione/Disabilitazione utenti¶
Un utente puo' essere attivo o disabilitato.
Gli utenti (anche admin) disabilitati non possono effettuare il login (indipendentemente dalla validita' delle credenziali usate).
2.5.2.4. Username lowercase¶
Gli username delle utenze in sanet3 devono rispettare le seguenti regole:
possono contenere solo carattere alfabetici lowercase
possono contenere numeri (ma non possono iniziare con numeri)
Important
L'interfaccia web di Sanet3 puo' essere configurata per accettare o meno username anche con caratteri maiuscoli alfabetici in maiuscolo. Per alterare questo comportamento bisogna cambiare la costante AUTH_WEB_LOGIN_USERNAME_CASE_SENSITIVE nel file settings.py.
Important
Anche se la procedura di login WEB puo' supportare username con caratteri in maiuscolo, i moduli di autenticazione gestiscono sempre e comunque username con caratteri solo in minuscolo.
2.5.2.5. Password e metodi di autenticazione¶
Il sistema di autenticazione degli utenti (verifica username/password) e' regolato da moduli di autenticazione.
E' possibile utilizzare piu' moduli di autenticazione contemporaneamente.
Si rimanda alla sezione Configurazione autenticazione per dettagli.
2.5.3. Gruppi¶
2.5.3.1. Introduzione¶
Le diverse funzionalita' di Sanet sono accessibili tramite interfaccia utente da parte di un utente solo se questo e' in possesso delle opportune autorizzazioni.
Per semplificare la configurazione della autorizzazioni, gli utenti sono organizzati logicamente in gruppi.
Le autorizzazioni/permessi vengono assegnate ad un gruppo.
Gli utenti ereditano le autorizzazioni/permessi dai gruppi di cui fanno parte.
Valgono le seguenti regole di associazione utente/gruppo:
Un gruppo puo' contenere zero o piu' utenti.
Un utente puo' far parte di piu' gruppi.
Note
come gia' detto, gli utenti superuser o amministratori fanno eccezione e possono sempre accedere a tutte le funzionalita/risorse del sistema.
2.5.3.2. Gruppi e Tenant¶
La visibilita' dei dati di un tenant da parte di un utente e' sempre mediata attraverso l'appartenenza ad un gruppo.
Un gruppo puo' essere configurato per accedere ai dati di monitoraggio di zero o piu' tenant.
Tutti gli utenti appartenti ad un gruppo, possono vedere i dati dei tenant visibili da quel gruppo

2.5.3.2.1. Tenant di default per utente¶
Per ogni utente e' possibile indicare un tenant di default tra quelli visibili da quell'utente.
2.5.3.2.1.1. Accesso al tenanti di default tramite interfaccia web¶
Quando un utente effettua la procedura di autenticazione viene "posizionato" sul suo tenant di default.
L'algoritmo per la sezione del tenant di default e' la seguente:
step 1) Se esiste un tenant configurato di default, restituisce quello. step 2) Trova tutti i tenant visibili dai gruppi a cui appartiene l'utente. Se tra questi c'e' il tenant primario, restituisce quello. Se non c'e' nessun primario, restituisce il primo tenant in ordine alfabetico. step 3) Se l'utente e' admin, comunque visualizza il tenant primary.
2.5.4. Gruppi e Capabilities generiche¶
Le azioni che gruppo e' autorizzato o meno a fare da interfaccia utente sui dati di Sanet sono regolamentate da un sistema di capabilites.
Ad ogni azione e' associata una capability. Se un gruppo e' autorizzato a quella capability puo' effettuare l'azione corrispondente.
Questo e' l'elenco delle capability previste:
Core
Configurazione template di un tenant
Codice
Descrizione
core.template.dg.edit
Creare/modificare/cancellare datagroup-template
Codice
Descrizione
core.template.element.edit
Creare/modificare/cancellare element-template (node-template,ecc.)
Configurazione elementi di monitoraggio di un tenant
Codice
Descrizione
core.element.create
Creare un elemento (node, interface, storage, service, device)
core.element.delete
Cancellare un elemento
core.element.conf
Modificare gli attributi di un elemento (nome, xform, ecc.)
core.element.conf_monitoring
Aggiungere/cancellare/modificare i datagroup di un elemento
core.link.edit
Aggiungere/cancellare/modificare link tra interfacce
Gestione note
Codice
Descrizione
notes.note.tenant.edit
Aggiungi/rimuovi note al tenant
notes.note.element.edit
Aggiungi/rimuovi note di un elemento
notes.note.tag.edit
Aggiungi/rimuovi note di un tag
Gestione Tagging
Codice
Descrizione
tags.tagtree.create
Crea nuovo
tags.tagtree.delete
Cancella
tags.tagtree.edit
Modifica flag (allnodes, nostate, ecc.)
tags.tag.create
Create a tag
tags.tag.delete
Delete a tag
tags.tag.edit
Edit tag ( change tag map, ecc..)
tags.tag.tag_element
Tag/Untag
tags.tag.state.force_reload
Force tag's state reload
Mappe Logiche
Codice
Descrizione
maps.logic.create
Create a logic map
maps.logic.delete
Delete a logic map
maps.logic.edit
Edit a logic map
Geo referenziazione
Codice
Descrizione
geomaps.set_pos
Set geo position of an element
Reportistica
Codice
Descrizione
report.read
Vedere i report (sia normali che periodici)
report.normal.create
Creare un nuovo report
report.normal.delete
Cancellare un report
report.periodic.create
Creare un nuovo report periodico
report.periodic.delete
Cancellare un report periodico
report.normal.process
Forzare la generazione di un report via web
Sistema di Discovery
Codice
Descrizione
discovery.read
Visualizzare lo stato del discovery
discovery.element.edit
Modificare un elemento scoperto in fase di discovery
discovery.element.link
Collegare/scollegare un elemento scoperto con un elemento di monitoraggio
discovery.element.edit
Modificare un elemento scoperto in fase di discovery
discovery.element.link
Collegare/scollegare un elemento scoperto con un elemento di monitoraggio
Interfaccia Web
Codice
Descrizione
gui.view_sensible_data
Mostare/Non mostare dati "sensibili" via web (community, SNMPv3)
gui.view.extra_menus
Vedere o meno i pulsanti per accedere alle applicazioni esterne
gui.view.system_status
Vedere lo stato del sistema dal pulsante system
Gestione WebScenario
Codice
Descrizione
webscenario.access
Permette di accedere ai webscenario
webscenario.element.create
Crea un nuovo webscenario
Per la configurazione delle capability si rimanda alla sezione Configurazione.
2.5.5. Permessi¶
2.5.5.1. Ownership¶
Viene definito owner (o proprietario) l'utente che crea una determinata entita' nel database di Sanet.
L'owner di un datagroup-template e' l'utente che crea il template.
L'owner di un element-template (node-template, interface-template, ecc.) e' l'utente che crea il template.
L'owner di un nodo e tutte le sue sotto-entita' (e datagroup/condition/ecc.) e' l'utente che ha creato il nodo.
L'owner di un tag e' l'utente che ha creato il tagtree in cui risiede quel tag.
L'utente owner ha sempre accesso alle entita' da lui create, indipendentemente dai gruppi/permessi configurati.
Quando un utente viene rimosso dal sistema, le entita' da lui create assumono owner nullo.
Important
Solo gli utenti admin possono vedere/accedere ad entita' con owner nullo.
Important
Solo gli utenti admin possono cambiare l'owner associato ad una entita'.
2.5.5.2. Gruppi e tipologie di permessi (ACL)¶
Esistono due tipologie di permessi che possono essere configurate per accedere ad una entita' in Sanet:
READ-ONLY (o semplicemente READ): l'utente in possesso di questo permesso puo' vedere una entita'.
READ-WRITE: l'utente in possesso di questo permesso puo' vedere e modificare una entita'.
I permessi vengono assegnati a livello di gruppo per ogni tenant.
Un utente eredita tutti i permessi di tutti gruppi a cui appartiene.
In presenza di due tipi di permessi diversi sulla stessa entita', eredita il permesso piu' autorizzativo (READ-WRITE vince su READ-ONLY)
2.5.5.3. Permessi dei gruppi sui datagroup-template di un tenant¶
I permessi read/write su un datagroup-template di un tenant deve essere indicato per ogni gruppo.
2.5.5.4. Permessi dei gruppi sugli element-template¶
I permessi read/write su un datagroup-template di un tenant deve essere indicato per ogni gruppo.
2.5.5.5. Permessi dei gruppi su tagtree¶
I permessi read/write su un datagroup-template di un tenant deve essere indicato per ogni gruppo.
2.5.5.6. Permessi dei gruppi sugli elementi di monitoraggio¶
L'accesso in read/write agli elementi di monitoraggio viene configurato indirettamente tramite il tagging.
Se un elemento di monitoraggio compare all'interno di un tag definito in un tagtree, un utente ha accesso a quell'elemento con i permessi corrispondenti ai permessi che ha sul tagtree.
Important
Un utente puo' taggare un elemento in un tagtree su cui ha permessi READ-WRITE solo se ha gia' precedenti permessi READ-WRITE (su altri tagtree).
2.5.5.7. Permessi e datagroup-template della LIBRARY¶
Solo gli utenti admin possono accedere in scrittura sui datagroup-template definiti nella library.
Gli utenti normali possono accedere in lettura ai datagroup-template definiti nella library.
2.5.6. Utente predefinito e gruppo predefinito¶
Quando il sistema viene installato la prima volta, viene creato automaticamente un utente amministratore predefinito e un gruppo associato a questo utente.
Note
Username e group name sono modificabili da file di configurazione, vedi DEFAULT_ADMIN_USERNAME in {{SANET_INSTALL_DIR}}/conf/default_settings.py o anche:
$ sanet-data get_config DEFAULT_ADMIN_USERNAME
$ sanet-data get_config DEFAULT_ADMIN_GROUP
2.5.7. Configurazione¶
2.5.7.1. CLI¶
Si rimanda alla sezione: Utenti.
2.5.7.2. Web¶
In preparazione.
2.5.7.3. Altri comandi¶
Si rimanda alla sezione: Comandi per amministrazione utenti.