Compartir a través de


Opciones de autenticación para dispositivos móviles

Actualización: noviembre 2007

En este tema se describen las opciones de autenticación para controles y páginas ASP.NET Mobile. El tema se ocupa de algunas de las complejidades relacionadas con la autenticación en dispositivos móviles y describe estos métodos de autenticación:

  • Autenticación de Windows

  • Autenticación Passport

  • Autenticación mediante formularios

  • Autenticación en dispositivos que no admiten cookies

Autenticación de Windows

Internet Information Services (IIS), junto con ASP.NET, puede negociar la autenticación basada en Microsoft Windows con el cliente. En una aplicación no protegida (donde la autenticación está definida como anónima) nunca se tiene en cuenta la identidad del usuario que realiza la solicitud. En su lugar, la solicitud se ejecuta mediante una cuenta predeterminada configurada durante la instalación de IIS.

Con el Administrador de servicios Internet se puede elegir entre los modelos de autenticación de Windows siguientes: básica, implícita e integrada de Windows. Estas opciones se pueden configurar mediante el complemento Administrador de servicios Internet para Microsoft Management Console (MMC). IIS negocia las credenciales basándose en los métodos de autenticación que admita el explorador, y cuáles de dichos métodos se han habilitado para la aplicación.

Autenticación básica

Muchos dispositivos móviles del mercado sólo admiten la autenticación básica. La autenticación básica es el mecanismo de intercambio de credenciales con mayor grado de compatibilidad, pero no es seguro en sí mismo, ya que no se produce el cifrado de la información.

Precaución:

De forma predeterminada, la autenticación básica transmite el nombre de usuario y las contraseñas en texto no cifrado. Por tanto, se recomienda utilizar HTTPS para estos datos y otra información confidencial.

Autenticación mediante Passport

ASP.NET no permite utilizar la autenticación de Passport con dispositivos móviles.

Autenticación mediante formularios

La autenticación de formularios es una parte de la arquitectura de .NET Framework que permite la autenticación de los usuarios sin IIS. Por lo general, se sigue este orden:

  1. El cliente solicita una página.

  2. Si el usuario aún no está autenticado, el explorador se redirige a un formulario de inicio de sesión.

  3. El cliente proporciona las credenciales en un formulario que se devuelve al servidor.

  4. La aplicación valida las credenciales. Si se valida el usuario, la aplicación escribe un vale de autenticación de formularios (cookie) en el cliente y lo redirige a la página que solicitó originalmente.

  5. En solicitudes posteriores, se comprueba la cookie de autenticación y, si es válida, directamente se proporciona la página solicitada.

El paso 4 crea un problema para algunos dispositivos que no admiten cookies. El método RedirectFromLoginPage escribe la información de autenticación en la cadena de consulta. Para evitar que se redirija al usuario a la página de inicio de sesión en cada solicitud, la información de autenticación se puede presentar en cada solicitud como parte de la cadena de consulta. ASP.NET proporciona un método para transportar datos como estos en la cadena de consulta para las direcciones URL relativas.

Si desea un ejemplo de cómo se realiza la autenticación de formularios, vea la información general de la clase MobileFormsAuthentication.

Precaución:

De manera predeterminada, la autenticación de formularios envía los nombres de usuario y las contraseñas en texto no cifrado. Por lo tanto, se recomienda usar HTTPS para ésta y otra información confidencial, y establecer el atributo requiresSSL del elemento <forms> en el archivo Web.config. Si un dispositivo no admite SSL directamente o a través de la puerta de enlace e intenta obtener acceso a una página que requiera SSL, se mostrará un mensaje de error al usuario.

Autenticación en dispositivos que no admiten cookies

Los modelos de autenticación de los exploradores suelen utilizar cookies para realizar el seguimiento de la autenticación del usuario. Muchos dispositivos móviles no admiten cookies y, por lo tanto, no pueden autenticar con este medio.

El suministro de autenticación básica para el mayor número de dispositivos posible ayuda a los desarrolladores cuyo objetivo son los dispositivos móviles.

La autenticación sin cookies requiere que se pueda tener acceso a un vale de autenticación en otra ubicación. En la autenticación mediante formularios, si la cookie no está presente, el módulo de autenticación de ASP.NET la buscará en la cadena de consulta. Esto se implementa incluyendo el Id. de la sesión en la cadena de consulta. Para ello, es necesario volver a escribir todos los vínculos en una página para incluir el vale de autenticación basándose condicionalmente en estos factores:

  • Si la aplicación está configurada para almacenar datos sin cookies. Esto se determina estableciendo la propiedad CookielessDataDictionary de la interfaz IPageAdapter.

  • Si el dispositivo requiere autenticación sin cookies.

    Nota:

    No se puede configurar un dispositivo individual para la autenticación sin cookies.

El atributo CookielessDataDictionaryType del elemento <mobileControls> debe estar establecido para que la autenticación funcione correctamente en los dispositivos que no admiten cookies, así como en los dispositivos que tengan establecido el atributo SupportsCookieWithRedirect en false. De forma predeterminada, el atributo CookielessDataDictionaryType se encuentra establecido en CookielessData en el archivo Machine.config. Para reemplazar este comportamiento para una sola aplicación, se debe establecer el atributo CookielessDataDictionaryType en una cadena vacía ("").

Es preciso tener en cuenta que algunos dispositivos y exploradores requieren actualmente direcciones URL completas en respuesta a una redirección para HTTP. Se ha de establecer el atributo UseFullyQualifiedRedirectUrl en true en el elemento <system.web> del archivo Machine.config o del archivo Web.config (en el nivel de aplicación). Para obtener información más detallada, vea Redirigir a una página Web de ASP.NET Mobile.

Para obtener más recomendaciones de seguridad, vea Proteger aplicaciones y Seguridad de aplicaciones Web ASP.NET.

Vea también

Conceptos

Diseñar páginas seguras de formularios Mobile Web Forms

Proteger aplicaciones

Referencia

CookielessDataDictionaryType

Otros recursos

Seguridad de aplicaciones Web ASP.NET