r-map / rmap

rete monitoraggio ambientale partecipativo documentation at https://doc.rmap.cc
https://rmap.cc
54 stars 43 forks source link

server: migrate from the use of ident for authorization to user + station/ident #356

Open pat1 opened 2 years ago

pat1 commented 2 years ago

Autorizzazione e tracciabilità attualmente usano in modo improprio ident. E' necessario migrare a un sistema basato su user + station (ident+latlon+network) per le stazioni fisse e user + ident per le stazioni mobili.

Il fixed/mobile attualmente determina la destinazione nei DB ma potrebbe essere utilizzata la presenza o no di IDENT

pat1 commented 2 years ago

Questo approccio ha un problema: ogni utente può decidere liberamente gli ident da utilizzare per stazioni mobili il che comporta nel data model RMAP possibili e inevitabili conflitti, ossia differenti utenti potrebbero utilizzare lo stesso ident essendo lo user non facente parte del datamodel dei metadati di identificazione univoca del dato.

pat1 commented 2 years ago

Per ora è stato modificato il sistema di autenticazione: ogni utente gestisce le sue stazioni composte da una o più board, ogni board con più trasporti, ma solo uno per tipo. Il trasporto mqtt definisce il server, utente, password e pskkey l'autenticazione di una stazione avviene tramite: user/station_slug/board_slug password oppure pskkey

quindi ogni board di una stazione si autentica con credenziali differenti e viene autorizzata sui suoi specifici topics; ad esempio:

user stima37
pattern sample/stima37/1146210,4440275/fixed/
pattern report/stima37/1146210,4440275/fixed/
pattern maint/stima37/1146210,4440275/fixed/
pattern rpc/stima37/1146210,4440275/fixed/

ossia 4 topics per ogni stazione fissa

l'implementazione non è risolta per le stazioni mobili in quanto per il momento per non creare conflitti di ident rimane possibile registrare una sola stazione mobile che ha per ident lo user corrispondente con i seguenti topics:

user rmap
pattern sample/rmap/+/mobile/
pattern report/rmap/+/mobile/
pattern maint/rmap/+/mobile/
pattern rpc/rmap/+/mobile/
edigiacomo commented 2 years ago

Da riunione odierna: la soluzione temporanea è di avere una stazione mobile per utente con ident pari a nome utente. In futuro si potrà prevedere una associazione tra utente e più ident univoci che comporta dello sviluppo.