Opzioni di autenticazione per dispositivi mobili

In questa sezione relativa alla progettazione di applicazioni protette vengono descritte le ulteriori complessità dell'autenticazione di dispositivi mobili.

In questa sezione vengono inoltre trattati i seguenti argomenti:

  • 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, rende disponibili le funzionalità per la negoziazione con il client dell'autenticazione basata su Microsoft Windows. In un'applicazione non protetta, ad esempio un'applicazione che utilizza l'autenticazione anonima, l'identità specifica dell'utente richiedente non viene mai considerata. La richiesta viene invece eseguita utilizzando account predefiniti impostati durante l'installazione di IIS. Mediante Gestione servizi Internet è possibile scegliere i modelli di autenticazione di Windows disponibili, che includono l'autenticazione di base, classificata 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 il modello di autenticazione di base. L'autenticazione di base è il meccanismo di scambio di credenziali maggiormente supportato, ma da solo non è sufficiente per garantire la protezione, poiché non prevede alcuna forma di crittografia.

Attenzione   Mediante l'autenticazione di base i nomi e le password degli utenti vengono trasmessi in testo non crittografato. Se per la protezione dell'applicazione non viene utilizzato il protocollo Secure Sockets Layer (SSL), i dati potrebbero essere intercettati dall'esterno. In questi casi è consigliabile utilizzare il protocollo HTTP protetto (HTTPS).

Autenticazione Passport

ASP .NET non consente di utilizzare Passport sui dispositivi mobili. Per ulteriori informazioni sull'autenticazione Passport in ASP .NET, vedere Provider di autenticazione Passport.

Autenticazione basata su form

L'autenticazione basata su form è inclusa nell'architettura .NET Framework e consente di autenticare gli utenti senza utilizzare le primitive di autenticazione IIS. La sequenza generale degli eventi è indicata di seguito.

  1. Il client richiede una pagina.
  2. Il browser viene reindirizzato al form di accesso specificato nella configurazione se l'utente non è già autenticato.
  3. Il client fornisce le credenziali in un form che viene rinviato al server.
  4. Il server convalida le credenziali, invia il cookie al client e reindirizza il client alla pagina originale.
  5. Il cookie di autenticazione viene verificato e la pagina originale viene visualizzata.

Il passaggio 4 può rappresentare un problema per alcuni dispositivi che non supportano i cookie. La pagina MobileFormsAuthentication.RedirectFromLogin consente di scrivere le informazioni sull'autenticazione nella stringa della 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, consultare la descrizione 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. Pertanto, per questa e per altre informazioni sensibili è consigliabile utilizzare il protocollo http protetto (https), specificando inoltre nel file Web.config l'opzione <form requireSSL=true />. 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, per registrare l'autenticazione dell'utente vengono in genere utilizzati i cookie. Molti dispositivi mobili non supportano i cookie e pertanto non sono in grado di eseguire l'autenticazione mediante questo sistema.

Fornendo le primitive per 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 nella sezione <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 System.Web.Mobile.CookielessData nel file machine.config. Per ignorare 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 useFullyQualifiedRedirectUrl=true nella sezione System.Web del file Machine.config o del file Web.config (a livello di applicazione). Per ulteriori dettagli, vedere Reindirizzamento a un'applicazione Web mobile.

Ulteriori consigli relativi alla protezione sono disponibili nelle sezioni Protezione delle applicazioni e Protezione delle applicazioni Web ASP .NET della documentazione .NET Framework SDK.

Vedere anche

Progettazione di un'applicazione Web mobile protetta