C'è un ulteriore vantaggio per l'autenticazione all'interno di una parte di un'applicazione, dopo essere stato autenticato nell'applicazione principale?

1

Essenzialmente ho un'applicazione che è in 2 parti.

  1. Una parte si trova sul computer dell'utente, che carica i file sul mio server, e

  2. l'altra parte è un'applicazione web che funziona con quei file.

Entrambe le applicazioni implementano protocolli di sicurezza per autenticazione / autorizzazione da soli utilizzando lo stesso framework di sicurezza, ma non sono sicuro che condividano effettivamente i dati di sessione (non sono sicuro di come lo troverei).

La mia domanda è .... se aggiungo una porzione di WebView all'applicazione principale, sarebbe saggio farli di nuovo accedere, poiché questa è la funzionalità predefinita quando si accede al sito?

Oppure, dal momento che hanno già effettuato l'accesso all'applicazione principale, non c'è motivo di farli "accedere di nuovo?"

Per aggiungere ulteriori elementi alla discussione, l'Applicazione principale è più un'area di controllo amministratore, dove puoi creare gli utenti, in modo che altri possano accedere a quegli utenti sul Web.

SE dovessi avere 1 accesso per entrambi, sarebbe strano entrare nell'amministratore (principale) e poi voler vedere un utente dovrebbe accedere da solo attraverso l'applicazione principale e forzare un accesso?

Ho pensato di pubblicare entrambi gli scenari, nel caso uno fosse diverso.

Suppongo che una volta entrato, non importa cosa succede. Gli account utente non possono essere modificati dal web, solo l'applicazione principale, quindi, in realtà, una volta effettuato l'accesso al sistema principale, non c'è molto che si possa fare mediante l'accesso automatico alla web part.

Sono anche curioso di implementare un recupero della password per gli utenti, se avrebbe senso consentire modifiche alle password nell'applicazione (senza ricordare la password dell'utente), o fare un processo di ripristino come se fossero l'amministratore . Come ho detto sopra, una volta effettuato l'accesso all'amministratore, tutti gli utenti sono vulnerabili a qualsiasi cosa.

Grazie per qualsiasi consiglio!

    
posta XaolingBao 28.04.2016 - 23:07
fonte

3 risposte

3

Proporrò una regola empirica che potrebbe aiutarti con la tua decisione:

When switching from a lower privilege level to higher, make them login again.
When switching from higher to lower, do not require another login.

Ecco un esempio di come gli ATM bancari implementano questa regola. Considera questi 2 scenari:

  1. Inserisci la tua carta bancomat, inserisci il tuo PIN, seleziona "Prelievo", scegli l'importo, ricevi i soldi, visualizza il saldo di un account.
  2. Inserisci la tua carta bancomat, inserisci il tuo PIN, visualizza il saldo di un account, seleziona "Ritiro", scegli il tuo importo, inserisci nuovamente il tuo spillo e ricevi i tuoi soldi.

L'unica differenza tra questi scenari è se il ritiro avviene prima o dopo l'inchiesta del saldo. Se inizi la tua sessione con un prelievo, ti vengono assegnate le autorizzazioni più alte e, in seguito, puoi fare un permesso al locatore. Se inizi la tua sessione con una richiesta di saldo, ti vengono assegnate autorizzazioni inferiori e quindi per eseguire un prelievo (che richiede le autorizzazioni più elevate) devi inserire nuovamente il tuo PIN.

Forse puoi utilizzare un ragionamento simile per determinare se il tuo utente deve accedere di nuovo.

    
risposta data 29.04.2016 - 00:07
fonte
0

A quel punto ti stai aprendo al cattivo comportamento degli utenti. Davvero vuoi tenerli al sicuro assicurandoti di proteggere dal cattivo comportamento degli utenti il più possibile.

Se un amministratore apre la visualizzazione web, è più facile per loro dimenticare di essere nell'area di amministrazione e di andarsene senza uscire dall'area di amministrazione, lasciandolo aperto a chi sta seduto e ottenendo il controllo completo.

Ovviamente questo è uno scenario per utenti malintenzionati e simile all'amministratore che si allontana con l'app di amministrazione aperta e in che modo proteggi realmente contro questo? L'unica cosa che guadagna dall'essere costretti ad accedere di nuovo è che puoi almeno disconnetterli dall'app di amministrazione e cercare di tenerli al sicuro, ma puoi farlo comunque con i timeout.

Quindi l'Admin per la visualizzazione web va bene dato che stai passando da Elevated a User, ma in ogni caso dovresti eseguirne il logout.

    
risposta data 28.04.2016 - 23:31
fonte
0

Ho visto diverse applicazioni web che implementano una "modalità sudo". Nel tuo esempio, potrebbe essere qualcosa del genere:

Io, un amministratore, ho effettuato l'accesso all'applicazione e ho effettuato l'accesso per lunghi periodi di tempo (forse la sessione scade dopo 30 giorni). Proteggo questo account con una ragionevole quantità di sicurezza, ma non sono super paranoico al riguardo.

Quando voglio fare qualcosa da admin-y, ottengo di nuovo una pagina che mi suggerisce di inserire nuovamente la mia password. Lo inserisco e poi proseguo per la mia strada. Dopo 15 minuti di inattività (ovvero nessuna richiesta con la mia sessione), la modalità sudo scade e le azioni di amministrazione richiedono nuovamente una richiesta di password.

Questa configurazione è leggermente fastidiosa per l'utente, ma non è male, poiché puoi raggruppare una serie di operazioni di amministrazione insieme senza dover reinserire una password ogni volta. E fornire una separazione come questa è utile ogni volta che un account utente viene usato principalmente per cose banali, ma può essere usato per azioni importanti / sensibili.

    
risposta data 29.04.2016 - 01:27
fonte