Condividi tramite


Autenticazione basata su form in API Web 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 ASP.NET provider di appartenenze, che semplifica la gestione degli account utente.
  • Non un meccanismo di autenticazione HTTP standard; utilizza cookie HTTP anziché l'intestazione di autorizzazione standard; alcuni utenti disabilitano i cookie.
  • Difficile da usare da client nonbrowser. L'account di accesso richiede un browser.
  • Le credenziali utente vengono inviate come testo non crittografato nella richiesta.
  • Vulnerabile alla richiesta intersito falsa (CSRF); richiede 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 form 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 form, 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 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 richiesta intersito falsa (CSRF), vedere Prevenzione degli attacchi di richiesta intersito falsifiche (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.