Condividi tramite


Opzioni di autenticazione per dispositivi mobili

Aggiornamento: novembre 2007

In questo argomento vengono descritte le opzioni di autenticazione per i controlli e le pagine ASP.NET per dispositivi mobili. Vengono illustrate alcune complessità dell'autenticazione nei dispositivi mobili e vengono descritti i seguenti metodi di autenticazione:

  • Autenticazione di Windows

  • Autenticazione Passport

  • Autenticazione basata su form

  • Autenticazione in dispositivi che non supportano i cookie

Autenticazione di Windows

Internet Information Services (IIS), insieme ad ASP.NET, è in grado di negoziare con il client l'autenticazione basata su Microsoft Windows. In un'applicazione non sicura, ad esempio un'applicazione in cui viene utilizzata l'autenticazione anonima, l'identità dell'utente richiedente non viene mai considerata. La richiesta viene invece eseguita utilizzando un account predefinito impostato durante l'installazione di IIS.

Mediante Gestione servizi Internet è possibile scegliere tra i modelli di autenticazione di Windows di base, digest e integrata. È possibile configurare questi modelli utilizzando lo snap-in Gestione servizi Internet per Microsoft Management Console. IIS consente di negoziare le credenziali in base al metodo di autenticazione supportato dal browser e ai metodi di autenticazione abilitati per l'applicazione.

Autenticazione di base

Molti dispositivi mobili presenti oggi sul mercato supportano soltanto l'autenticazione di base. L'autenticazione di base è il meccanismo di scambio di credenziali maggiormente supportato, ma da solo non è sufficiente per garantire la sicurezza, poiché non prevede alcuna forma di crittografia.

Attenzione:

Per impostazione predefinita, con l'autenticazione di base il nome utente e le password vengono trasmessi in testo non crittografato. Per queste informazioni e per altre informazioni riservate è consigliabile pertanto utilizzare il protocollo HTTPS.

Autenticazione Passport

ASP.NET non consente di utilizzare l'autenticazione Passport nei dispositivi mobili.

Autenticazione basata su form

L'autenticazione basata su form è inclusa nell'architettura .NET Framework e consente di autenticare gli utenti senza l'autenticazione IIS. Di seguito viene riportata la sequenza generale degli eventi.

  1. Il client richiede una pagina.

  2. Se l'utente non è stato ancora autenticato, il browser viene reindirizzato a un form di accesso.

  3. Il client fornisce le credenziali in un form di cui viene eseguito il postback al server.

  4. L'applicazione convalida le credenziali. Se l'utente viene convalidato, l'applicazione scrive un ticket di autenticazione basata su form (cookie) sul client e reindirizza l'utente alla pagina richiesta in origine.

  5. Nelle richieste successive viene controllato il cookie di autenticazione e se è valido viene visualizzata direttamente la pagina richiesta.

Il passaggio 4 può determinare problemi per alcuni dispositivi che non supportano i cookie. Il metodo RedirectFromLoginPage scrive le informazioni di autenticazione nella stringa di query. Affinché l'utente non venga reindirizzato alla pagina di accesso ogni volta che esegue una richiesta, le informazioni relative all'autenticazione possono essere incluse in ogni richiesta come parte della stringa della query. ASP.NET rende disponibile un metodo con il quale includere dati di questo tipo nella stringa della query per URL relativi.

Per un esempio di autenticazione basata su form, fare riferimento alla panoramica della classe MobileFormsAuthentication.

Attenzione:

Per impostazione predefinita, mediante l'autenticazione basata su form il nome utente e la password vengono trasmessi in testo non crittografato. Per questa e per altre informazioni riservate è consigliabile pertanto utilizzare il protocollo HTTPS e impostare nel file Web.config l'attributo requiresSSL dell'elemento <forms>. Viene generato un messaggio di errore in seguito al tentativo di accedere a una pagina che richiede il protocollo SSL da parte di un dispositivo che non supporta il protocollo SSL né direttamente né mediante gateway.

Nei modelli di autenticazione mediante browser vengono utilizzati in genere i cookie per registrare l'autenticazione dell'utente. Molti dispositivi mobili non supportano i cookie e pertanto non sono in grado di eseguire l'autenticazione mediante questo sistema.

Fornendo l'autenticazione di base per la più vasta gamma di dispositivi possibile, lo sviluppatore di applicazioni per dispositivi mobili è in grado di aggiungere ulteriore valore ai propri prodotti.

Per l'autenticazione senza cookie è necessario l'accesso a un ticket di autenticazione situato in un percorso differente. Nell'autenticazione basata su form, se il cookie non è presente, il modulo di autenticazione di ASP.NET ne verifica la presenza nella stringa della query. Per implementare il cookie, occorre includere l'ID della sessione nella stringa della query. A tal fine, è necessario riscrivere tutti i collegamenti in una pagina per l'inclusione del ticket di autenticazione, che avviene se sono rispettate le condizioni indicate di seguito.

  • L'applicazione è stata configurata per conservare i dati senza cookie. La condizione è determinata dall'impostazione della proprietà CookielessDataDictionary dell'interfaccia IPageAdapter.

  • Il dispositivo richiede l'autenticazione senza cookie.

    Nota:

    Non è possibile configurare un singolo dispositivo per l'autenticazione senza cookie.

È necessario impostare l'attributo CookielessDataDictionaryType nell'elemento <mobileControls> affinché l'autenticazione funzioni correttamente sui dispositivi senza cookie, nonché su quelli in cui l'attributo SupportsCookieWithRedirect è impostato su false. Per impostazione predefinita, l'attributo CookielessDataDictionaryType è impostato su CookielessData nel file Machine.config. Per eseguire l'override di questo comportamento per una singola applicazione, è necessario impostare l'attributo CookielessDataDictionaryType su una stringa vuota ("").

Tenere presente che alcuni dispositivi e alcuni browser richiedono attualmente URL completi in risposta a un rendirizzamento HTTP. Impostare l'attributo UseFullyQualifiedRedirectUrl su true nell'elemento <system.web> del file Machine.config o Web.config (a livello di applicazione). Per informazioni dettagliate, vedere Reindirizzamento a una pagina Web ASP.NET per dispositivi mobili.

Per ulteriori consigli per la sicurezza, vedere Protezione delle applicazioni e Protezione delle applicazioni Web ASP.NET.

Vedere anche

Concetti

Progettazione di pagine Web Form protette per dispositivi mobili

Protezione delle applicazioni

Riferimenti

CookielessDataDictionaryType

Altre risorse

Protezione delle applicazioni Web ASP.NET