Devo fare un superadmin?

2

Attualmente sto sviluppando un'applicazione web (in Ruby on Rails) per il dipartimento della mia università. La base di utenti dell'applicazione web ha diversi ruoli: director (il direttore e assistente direttore del laboratorio per il dipartimento), lab assistant (studenti che lavorano in laboratorio), faculty e student . I ruoli si suddividono in breve in ciò che si può fare nell'app Web: accesso alle risorse, possibilità di creare / modificare ma non eliminare, inviare e-mail, ecc.

Attualmente possiedo un account di livello director per il quale solo conosco le credenziali. Tuttavia, è successo che recentemente ho avuto bisogno di un accesso completo al sistema per modificare una particolare risorsa a cui nemmeno director non aveva accesso completo. Prenderò nota che ci sono alcune risorse create da faculty che nemmeno director può modificare, il che è proprio il caso che ha dovuto essere modificato.

Quindi, ho inserito SSH nel server, eseguito rails c per entrare nel database e modificato manualmente la risorsa lì. Inutile dire che è stato un processo lungo che avrebbe potuto essere molto più veloce se avessi semplicemente accesso per aggiornare i campi tramite il modulo web esistente.

Potrei facilmente creare un ruolo admin per garantire che abbia sempre accesso completo al sistema, se necessario. Tuttavia, mi laureo in un anno. Anche se manterrò il progetto per gli anni a venire, non è impossibile che qualcun altro prenda il sopravvento.

Attualmente nessun utente ha diritti di amministrazione completi nel sistema ; Ho accesso completo tramite SSH al server e accesso diretto al database, ma questo non è l'ideale in termini di gestione dei dati in quanto è un metodo ingombrante. Pertanto, un account admin di accesso completo sarebbe molto utile. Tuttavia, il nostro caso d'uso richiede solo che un admin modifichi i dati in circostanze estreme. Il più delle volte, ruoli come faculty creano risorse che nemmeno director (più o meno uno pseudo-admin) non dovrebbe modificare.

Ogni sistema software dovrebbe avere un% di accesso completo con% di utenti? Oppure, c'è qualche soluzione più appropriata che sto trascurando?

    
posta Chris Cirefice 20.07.2016 - 18:02
fonte

1 risposta

4

Nella maggior parte delle applicazioni è necessario l'accesso all'amministratore con il permesso di vedere e / o modificare tutto.

Nel tuo caso, stai parlando di modificare la struttura dell'applicazione tramite i dati, ad esempio campi di modifica o impostazioni di sistema, ma senza modificare i dati. Questo è perfettamente adatto per un utente amministratore e non dovresti nemmeno preoccuparti di questo livello di accesso.

Dove le cose diventano più grigie sono i dati dell'utente, cioè le cose che sono state inserite e potrebbero essere collegate a qualcuno e quindi biasimare assegnate in determinate circostanze. Esistono 3 modi per gestire questo livello di accesso di modifica quando non sei l'utente proprietario dei dati:

  • di 'chi se ne importa, è tutto mio e farò quello che mi piace'. Questo non va bene e dovrebbe sempre essere evitato o vietato attivamente.
  • Consenti la modifica di qualsiasi dato, ma crea una voce di controllo non cancellabile che dice cosa è cambiato e chi lo ha fatto.
  • Consenti solo al proprietario dei dati di modificarlo, ma consenti all'amministratore di diventare proprietario.

Questi ultimi 2 sono buoni perché permettono all'amministratore di cambiare le cose dove necessario, ma assicurati che tutti sappiano che è successo. Lo so, puoi spesso accedere direttamente al DB e aggiornare le voci in SQL, ma anche questo dovrebbe essere bloccato, quindi solo le persone di fiducia hanno accesso. (nota: si tratta di un diverso livello di accesso a un amministratore dell'app di front-end, ma se si voleva essere paranoici rispetto alla sicurezza dei dati, lo si crittografa e si garantisce l'accesso solo all'utente che possiede la chiave. inizia a diventare molto complesso allora).

Quindi TL / DR; sembra che tu abbia vari livelli di accesso utente, aggiungendo un ruolo di amministratore che ha accesso a tutti questi livelli è abbastanza normale.

    
risposta data 20.07.2016 - 18:21
fonte

Leggi altre domande sui tag