Utenti e Gruppi

Premesse

Sanet prevede due tipi di interfacce utente per l’accesso ai dati:

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.
email 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:

  1. Un gruppo puo’ contenere zero o piu’ utenti.
  2. 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

digraph prova {
user1;
user2;
user3;

group1;
group2;

tenant1;
tenant2;
tenant3;

user1 -> group1;
user2 -> group1;
user3 -> group2;
user3 -> group3;

group1 -> tenant1;
group3 -> tenant1;
group2 -> tenant2;
group2 -> tenant3;
}

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

CLI

Si rimanda alla sezione: Utenti.

Web

In preparazione.