6

In un'applicazione Web ASP.NET, utilizzando l'autenticazione integrata di Windows, la sessione è legata all'identità di Windows?
In altre parole, se effettuo l'accesso (utilizzando IWA) all'app e l'app memorizza alcune "cose" nella mia sessione, questa è accessibile solo dall'ID di sessione? Ad esempio, se un utente malintenzionato è riuscito a rubare il mio ID di sessione, ma NON le mie credenziali, può accedere alla mia sessione? Oppure questa sessione è accessibile solo alla stessa identità, richiedendo sia l'ID di sessione E l'identità di Windows per accedervi?Gestione sessione con autenticazione di Windows

risposta

4

Ottima domanda. Ho appena eseguito un test per confermare prima di scrivere questa risposta.

Se io sono 'persona A', e tu sei 'persona B', allora questo è ciò che deve accadere:

  • persona A accede al sito web utilizzando IWA, viene assegnato un ID di sessione (per esempio, l'URL)
  • persona B registra anche per il sito web come se stessi (quindi devono essere autenticate)
  • persona a invia persona B un link URL che contiene un identificatore di sessione
  • click persona B su quel link, vengono portati direttamente nel sito web, usando i dettagli della sessione di Persona A

Si noti che la Persona B è ancora riconosciuta come "Persona B" dal sito Web, anche se stanno utilizzando i dettagli della sessione di Persona A. Quindi se hai un codice che controlla le autorizzazioni degli utenti ecc., Allora questi controlli sono ancora fatti nel contesto della Persona B.

Questo potrebbe sembrare un grosso problema, ma non è così lungo come i programmatori non sono trascurati . Ad esempio, l'unico effetto che Person B ha avuto nel mio test sopra è che hanno ereditato lo schermo e il layout della griglia che la Persona A aveva impostato, perché eseguiamo i nostri controlli delle autorizzazioni in tempo reale (cioè non sono memorizzati nella cache). Se memorizzi dati sensibili nella sessione, potrebbe essere un problema, ma è solo un problema se i campi che lo mostrano non sono controllati dall'autorizzazione ogni volta che vengono mostrati. È anche solo un problema se la sessione per Persona A non è scaduta.

+0

Bel esempio di uno scenario più "innocente" :). Quindi stai dicendo che la sessione e l'autenticazione non hanno nulla a che fare l'uno con l'altro? È strano ... Ed è piuttosto comune archiviare ruoli, o qualche altro token di autorizzazione, nella sessione, che renderebbe questo problema critico in questo scenario. Grazie. – AviD