Gestore di password all'interno dell'applicazione

0

In primo luogo non si tratta di come memorizzare la password per accedere all'applicazione stessa. Questo viene gestito usando .Net Identity. L'autenticazione viene gestita tramite JWT. Quindi è un'applicazione web.

Il problema è essere in grado di memorizzare e recuperare password nel modo più sicuro possibile per gli utenti del sistema.

Un utente (una società con più dipendenti) può avere un numero di clienti per cui ha accesso al report, ad esempio tasse o IVA utilizzando servizi diversi. Ciò richiede credenziali per questi servizi. E richiede che quelle credenziali vengano archiviate nel modo più sicuro possibile.

Gli utenti potrebbero farlo da soli nei gestori di password, ma c'è un grosso rischio che si rovinino non sincronizzando le modifiche tra i dipendenti o dimenticando di eliminare le credenziali quando un client non è più con loro.

Inoltre ci possono essere livelli di accesso che di solito significano diversi file di archiviazione di gestione password. Che aumenterà il disordine in cui i dipendenti dell'utente possono inserirsi.

Posso pensare ai seguenti requisiti

  • Le password sono crittografate con una coppia di chiavi pubblica / privata
  • Le password vengono archiviate nel database come crittografate
  • Le password non vengono mai mostrate in chiaro, copiate solo negli appunti e scadono in breve tempo
  • Solo i dipendenti che hanno accesso alla chiave privata corretta possono decrittografare
  • Quando il client viene eliminato, tutte le password per quel client vengono cancellate
  • coppia di chiavi pubblica / privata non è memorizzata nel database, la sicurezza gestita dall'accesso alle macchine client

C'è qualcosa che ho trascurato o qualcosa che potrebbe essere fatto in un modo migliore?

    
posta Bent 17.07.2018 - 21:48
fonte

1 risposta

1

Come ho capito, hai un'app web multi Tenant.

Tuttavia questi inquilini hanno agenti che accedono al loro nome.

Gli agenti possono rappresentare molti inquilini e quindi hanno bisogno di diversi set di username / password per accedere al sistema con vari livelli di accesso, anche se è la stessa persona

Se la tua applicazione ha un gestore di password integrato, hai bisogno di una password per accedere a quelle password.

Quindi l'effetto generale sarà che un singolo nome utente e una password consentano a un utente di accedere a molti inquilini.

Piuttosto che ottenere ciò memorizzando tutte le password con i rischi di sicurezza allegati. Ti suggerirei di espandere semplicemente il tuo modello di sicurezza delle applicazioni per includere il caso d'uso degli agenti.

es. lascia che qualcuno acceda con una sola password e poi seleziona il tenant che desidera visualizzare.

Ciò richiede che un utente abbia ruoli per tenant piuttosto che un set di ruoli

    
risposta data 17.07.2018 - 23:05
fonte

Leggi altre domande sui tag