Seguridad en MVC 4 Parte I

Hay tres tipos de seguridad que podemos aplicar:

Autenticación Formularios
Autenticación Windows
Autenticación oAuth / OpenID

Autenticación Formularios

Crearemos un formulario típico de lógin y aplicaremos lo necesario para comprobar la identidad del usuario en nuestra base de datos. Este modo nos permite crear contraseñas fuertes y personalizables. Se gestiona internamente con cookies con lo cuál se guardan el login en el navegador y tampoco es necesario que tengan que logarse todo el rato. Lo costoso es que requiere SSL o acceso HTTPs para evitar el envío de contraseñas sin cifrar a través de la red.

 

oAuth OpenID

Implica que nuestro sistema no almacena la contraseña del usuario. Esto se hace confiando en sitios de terceros, como Twitter, Facebook, etc, que son quienes realizan el login y nos pasan la información necesaria. Se denominan 3rd Party Identity Providers y nos evitan la gestión de credenciales.

 

Autenticación Windows

También llamada integrada y Single Sign On. Usada en Intranets, ya que la validación es con el propio usuario de la sesión de Windows, dentro de un dominio tras el firewall y con un servidor de directorio activo.

Es cómodo  ya que el usuario no tiene que logarse en la aplicación y además permite acceso a recursos compartidos de red, impresoras, etc.

 

Ejemplo con autenticación Windows

Hay que crear un proyecto MVC, de tipo Intranet. Despues en las propiedades del proyecto F4,  permitir Autenticación de Windows.

propiedades

Si ejecutamos, el navegador nos solicitará nuestras credenciales de Windows. ¿Por qué pide credenciales si estamos en una intranet y debería coger automaticamente nuestro usuario de Windows? Esto sucede porque IE pide las credenciales si considera que no estás en la intranet. No reconoce localhost como parte de la intranet y debemos añadirla para que la validación sea automática.

Por tanto, hay que ir a IE, Herramientas, Opciones de Internet, Seguridad, Intranet Local  y luego en Sitios, Opciones Avanzadas y añadir LocalHost.

localhostTras esto, ya no nos pedirá login y podremos acceder a la información del usuario.

Se puede mostrar el nombre del usuario en una vista con : Soy: @User.Identity.Name
También podemos ver el tipo de Autenticación con @User.Identity.AuthenticationType o si está o no autenticado con: @User.Identity.IsAuthenticated

En este modo de autenticación, el WebConfig presentará una línea como esta:

 

 <authentication mode="Windows" /> 

 

Deja un comentario