Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
pat1 opened this issue Nov 20, 2021 · 3 comments

Comments

@pat1
Copy link
Member

pat1 commented Nov 20, 2021

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.

  • MQTT: modifica del topic di pubblicazione
    • Stato della connessione
      maint/USER/IDENT/COORDS/NETWORK/254,0,0/265,0,-,-/B01213/
    • Data e
      /USER/IDENT/COORDS/NETWORK/TRANGE/LEVEL/VAR
    • Constant Data
      /USER/IDENT/COORDS/NETWORK/-,-,-/-,-,-,-/VAR
    • RPC
      topiccom="rpc/USER/IDENT/COORDS/NETWORK/com"
      topicres= "rpc/USER/IDENT/COORDS/NETWORK/res"

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

  • server cambio autorizzazione

    • senza ident (stazioni fisse) verifica esistenza della stazione per quell'utentre
    • con ident (stazioni mobili) verifica esistenza ident registrato per quell'utente
  • server cambio tracciabilità
    A ogni dato accolto dovranno essere addizionati alcuni metadati nella sezione constant station data corrispondenti a:

    • user
    • altri dati di tracciabilità del dato
  • gestione dati tracciabilità: in tutto il percorso dei dati dovrà essere garantita la persistenza e coerenza dei dati di tracciabilità nei constant station data: a tal proposito dballe dovrà garantire una corretta gestione di tali metadati Gestione dei conflitti nei dati di contesto in fase di import ARPA-SIMC/dballe#266

  • sistema di autorizzazione: è possibile ipotizzare una autenticazione per stazione e non per utente: username/password per utente e differenti username/password per ogni stazione gestiti dall'utente

@pat1 pat1 self-assigned this Nov 20, 2021
@pat1 pat1 changed the title server: mgrate from the use of ident for authorization to user + station/ident server: migrate from the use of ident for authorization to user + station/ident Nov 23, 2021
@pat1
Copy link
Member Author

pat1 commented May 2, 2022

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 pat1 assigned edigiacomo and pat1 and unassigned pat1 May 2, 2022
@pat1
Copy link
Member Author

pat1 commented May 2, 2022

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
Copy link
Member

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants