Condividi tramite


Flusso dei dati di protezione di ASP.NET

Aggiornamento: novembre 2007

La protezione delle applicazioni ASP.NET può essere progettata in diversi modi. In questo argomento viene descritto il flusso dei dati di protezione relativo a due scenari comuni: rappresentazione e autenticazione basata su form tramite cookie.

Scenario 1: rappresentazione

Lo scenario della rappresentazione si basa sull'autenticazione di Microsoft Internet Information Services (IIS) e sulla protezione dell'accesso ai file di Microsoft Windows per ridurre al minimo la programmazione della protezione nell'applicazione ASP.NET. Il flusso dei dati è mostrato nell'illustrazione seguente.

Rappresentazione

Nell'illustrazione viene mostrata la seguente sequenza di eventi:

  1. Una richiesta viene indirizzata a IIS da un client di rete.

  2. In IIS l'autenticazione del client può essere di base, digest o la protezione integrata di Windows (NTLM o Kerberos).

  3. Se il client viene autenticato, IIS passa la richiesta autenticata ad ASP.NET.

  4. L'applicazione ASP.NET rappresenta il client richiedente mediante il token di accesso passato da IIS e si basa sulle autorizzazioni dei file NTFS per concedere l'accesso alle risorse. L'unica verifica da fare è che la rappresentazione sia impostata su true nel file di configurazione ASP.NET. Non è richiesto alcun codice di protezione ASP.NET.

    Se la rappresentazione non è attivata, l'applicazione viene eseguita con l'identità di processo ASP.NET. In Microsoft Windows 2000 Server e Windows XP Professional l'identità predefinita è un account locale denominato ASPNET, creato automaticamente al momento dell'installazione di ASP.NET. In Microsoft Windows Server 2003 l'identità predefinita è l'identità del pool di applicazioni per l'applicazione IIS (per impostazione predefinita l'account NETWORK SERVICE).

    Nota:

    Se la rappresentazione non è attivata e si desidera limitare l'accesso per un determinato utente o insieme di utenti, ad esempio quelli autenticati tramite l'autenticazione basata su form, è necessario utilizzare qualche altro mezzo di autorizzazione, ad esempio l'autorizzazione URL. Per ulteriori informazioni sull'autorizzazione URL, vedere Autorizzazione ASP.NET.

    Per informazioni dettagliate sull'utilizzo della rappresentazione nelle applicazioni ASP.NET, vedere Rappresentazione ASP.NET e Utilizzo dell'autenticazione IIS con la rappresentazione ASP.NET.

  5. Se l'accesso viene concesso, l'applicazione ASP.NET restituirà la risorsa richiesta tramite IIS.

Scenario 2: autenticazione basata su form

Nello scenario dell'autenticazione basata su form, un'applicazione raccoglie credenziali quali il nome e la password direttamente dall'utente e ne determina l'autenticità in base ai propri criteri. Sebbene l'autenticazione IIS non venga utilizzata dall'applicazione, le impostazioni possono influire sull'autenticazione basata su form. Di norma, quando si utilizza l'autenticazione basata su form, viene attivato l'accesso anonimo in IIS. In caso contrario, se gli utenti non superano l'autenticazione IIS, non raggiungono l'applicazione sviluppata per fornire un nome utente e una password all'autenticazione basata su form.

Il flusso dei dati in questo scenario è mostrato nell'illustrazione seguente.

Autenticazione basata su form

Nell'illustrazione viene mostrata la seguente sequenza di eventi:

  1. Un utente genera una richiesta di una risorsa protetta.

  2. IIS riceve la richiesta e poiché l'accesso anonimo IIS è attivato, non viene eseguita alcuna autenticazione dell'utente e la richiesta viene passata all'applicazione ASP.NET.

  3. Poiché la modalità di autenticazione ASP.NET è impostata sui form, l'applicazione ASP.NET esamina la richiesta di un ticket di autenticazione basata su form (un cookie specifico). Se alla richiesta non è allegato alcun ticket di questo tipo, tale richiesta verrà reindirizzata a una pagina di accesso specificata nel file di configurazione dell'applicazione.

  4. Le credenziali richieste, in genere un nome e una password, vengono immesse dall'utente nella pagina di accesso. Il codice dell'applicazione controlla le credenziali per confermarne l'autenticità. Se le credenziali vengono autenticate, un ticket di autenticazione viene collegato alla risposta che rappresenta le credenziali dell'utente. La password non è inclusa. Se l'autenticazione non riesce, la richiesta verrà generalmente restituita con un messaggio di accesso negato o verrà ripresentato il form di accesso.

    Il ticket di autenticazione emesso viene incluso nelle richieste successive all'applicazione ASP.NET. La validità del ticket viene verificata in ASP.NET tramite MAC (Message Authentication Check).

  5. Se l'utente è autenticato, una volta controllata l'autenticazione, ASP.NET può consentire l'accesso alla risorsa richiesta originariamente, reindirizzare la richiesta a qualche altra pagina o a un modulo di autorizzazione personalizzato in cui viene verificata l'autorizzazione delle credenziali per accedere alla risorsa protetta. Se l'autorizzazione non viene fornita, l'utente verrà reindirizzato alla pagina di accesso.

    Se l'utente è autorizzato, verrà concesso l'accesso alla risorsa protetta; in caso contrario l'applicazione può richiedere una verifica ulteriore delle credenziali prima di autorizzare l'accesso alla risorsa protetta, a seconda della struttura dell'applicazione.

    Nota:

    L'autenticazione basata su form e il controllo dell'autorizzazione si applicano solo a risorse protette dagli elementi di configurazione authentication e authorization. L'accesso alle risorse Windows protette mediante gli elenchi di controllo di accesso (ACL, Access Control List) viene controllato in base all'identità Windows corrente dell'applicazione ASP.NET. Per ulteriori informazioni, vedere Rappresentazione ASP.NET.

Vedere anche

Attività

Procedura: implementare l'autenticazione basata su form semplice

Concetti

Rappresentazione ASP.NET

Utilizzo dell'autenticazione IIS con la rappresentazione ASP.NET

Altre risorse

Gestione di utenti tramite l'appartenenza

Gestione delle autorizzazioni tramite ruoli

Protezione delle applicazioni Web ASP.NET

Provider di autenticazione basata su form