Condividi tramite


Autenticazione basata su form nell'API Web di ASP.NET

di Mike Wasson

L'autenticazione basata su form usa un modulo HTML per inviare le credenziali dell'utente al server. Non è uno standard Internet. L'autenticazione basata su form è appropriata solo per le API Web chiamate da un'applicazione Web, in modo che l'utente possa interagire con il modulo HTML.

Vantaggi Svantaggi
  • Facile da implementare: integrato in ASP.NET.
  • Usa il provider di membership ASP.NET, che semplifica la gestione degli account utente.
  • Non un meccanismo di autenticazione HTTP standard; usa i cookie HTTP anziché l'intestazione di autorizzazione standard; alcuni utenti disabilitano i cookie.
  • Difficile da usare dai client al di fuori del browser. L'accesso richiede un browser.
  • Le credenziali utente vengono inviate come testo non crittografato nella richiesta.
  • Vulnerabile alla falsificazione di richiesta intersito (CSRF); richiede l'adozione di misure anti-CSRF.

Brevemente, l'autenticazione basata su form in ASP.NET funziona come segue:

  1. Il client richiede una risorsa che richiede l'autenticazione.
  2. Se l'utente non è autenticato, il server restituisce HTTP 302 (trovato) e reindirizza a una pagina di accesso.
  3. L'utente immette le credenziali e invia il modulo.
  4. Il server restituisce un altro HTTP 302 che reindirizza all'URI originale. Questa risposta include un cookie di autenticazione.
  5. Il client richiede nuovamente la risorsa. La richiesta include il cookie di autenticazione, quindi il server concede la richiesta.

Illustrazione del funzionamento dell'autenticazione basata su moduli in A S P dot Net

Per altre informazioni, vedere Panoramica dell'autenticazione basata su form.

Uso dell'autenticazione basata su form con l'API Web

Per creare un'applicazione che usa l'autenticazione basata su moduli, selezionare il modello "Applicazione Internet" nella procedura guidata del progetto MVC 4. Questo modello crea controller MVC per la gestione degli account. È anche possibile usare il modello "Applicazione a pagina singola", disponibile nell'aggiornamento ASP.NET autunno 2012.

Nei controller dell'API Web è possibile limitare l'accesso usando l'attributo [Authorize] , come descritto in Uso dell'attributo [Authorize].

L'autenticazione basata su form usa un cookie di sessione per autenticare le richieste. I browser inviano automaticamente tutti i cookie pertinenti al sito Web di destinazione. Questa funzionalità rende l'autenticazione basata su form potenzialmente vulnerabile agli attacchi di falsificazione di richiesta intersito (CSRF). Vedi la sezione Prevenzione degli attacchi di falsificazione di richiesta intersito (CSRF).

L'autenticazione basata su form non crittografa le credenziali dell'utente. Pertanto, l'autenticazione basata su form non è sicura a meno che non venga usata con SSL. Vedere Uso di SSL nell'API Web.