Come gestire la sicurezza di questi web apis auto-ospitati, per garantire che la richiesta di accesso ai dati venga autenticata?

2

Supponiamo di lavorare su un'applicazione aziendale. Supponiamo che io abbia 11 moduli nell'applicazione e che dovrei sviluppare Dashboard per ogni ruolo nell'organizzazione per il quale svilupperò l'applicazione.

Abbiamo deciso di utilizzare Asp.Net Web Api e restituire i dati JSON dalle nostre API.

Includeremo 11 progetti di apis web Self ospitati nella nostra applicazione (uno self hosted web api ) per ogni modulo.

Tutti e 11 i moduli sono collegati a un database Sql server 2012

Quindi, una volta che API è pronta, dovremmo creare Business Dashboard (in base ai ruoli in Organizzazione).

Quindi ora il mio web api client è Asp.Net Mvc application.Asp.Net mvc consumerà quelle web apis.

Questa è la parte per la quale viene eseguita tutta la spiegazione.

Come devo gestire la sicurezza di tutti gli 11 apis web ospitati?

Come devo ricevere solo la richiesta autenticata?

Se autentichi l'utente tramite login e password e poi reindirizza l'utente a Dashboard appropriato progettato per il ruolo che l'utente ha e carica i dati consumando web apis. Come dovrei assicurarmi che la richiesta in arrivo per l'accesso ai dati sia autenticata?

    
posta ProgrammingNinja 20.08.2014 - 15:51
fonte

1 risposta

2

Potresti utilizzare lo stesso principio di Single Sign On ( SSO ). La tua app di autenticazione centrale può creare un token (quando si autentica correttamente) che verrà passato all'applicazione appropriata dove verrà ricontrollato per la validità.

Potresti anche integrare una soluzione SSO che già fa tutta questa logica per te.

Modifica successiva: Supponiamo che l'app di autenticazione centrale sia chiamata Autenticazione centrale. Questa sarà l'app di atterraggio per tutti gli utenti. Questo mostrerà una schermata di login di base. La logica sarà la seguente:

  1. Qualcuno inserisce le sue credenziali nell'app Autenticazione centrale
  2. Il tuo back-end Controller controllerà il nome utente e la password contro gli utenti conosciuti (dipende da dove vengono memorizzati gli utenti: una tabella, Active Directory, chiamata al servizio web remoto, ecc.)
  3. Se l'autenticazione ha esito positivo, la tua applicazione genererà un token, chiamiamolo AUTH_TOKEN in base ad alcuni criteri. Un semplice esempio sarà: un semplice generatore UUID, hash (utente + pwd + timestamp + roba casuale), ecc.
  4. Dato che hai un DB comune per tutte le app, puoi salvare questo token nel DB
  5. Si reindirizza all'applicazione desiderata e si passa anche questo AUTH_TOKEN nell'URL
  6. Una volta che hai prestato all'applicazione prevista, per prima cosa controlla se il token è valido
  7. Se il token è valido, si consente all'utente di accedere all'app, altrimenti si stampa un bel messaggio.

Naturalmente, questo è solo un esempio di base. Puoi aggiungere ulteriori funzionalità come la scadenza del token, generazione di token più sicura, ecc.

    
risposta data 21.08.2014 - 07:57
fonte