Utenti e Gruppi¶
Contenuti
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.
Utenti¶
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.
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.
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).
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.
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.
Gruppi¶
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.
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
Tenant di default per utente¶
Per ogni utente e’ possibile indicare un tenant di default tra quelli visibili da quell’utente.
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.
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.
Permessi¶
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’.
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)
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.
Permessi dei gruppi sugli element-template¶
I permessi read/write su un datagroup-template di un tenant deve essere indicato per ogni gruppo.
Permessi dei gruppi su tagtree¶
I permessi read/write su un datagroup-template di un tenant deve essere indicato per ogni gruppo.
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).
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.
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
Configurazione¶
Altri comandi¶
Si rimanda alla sezione: Comandi per amministrazione utenti.