14. Seguridad En Aplicaciones Web Asp.Net

22
Seguridad en aplicaciones Web con Microsoft ASP.NET

description

Seguridad En Aplicaciones Web Asp.Net

Transcript of 14. Seguridad En Aplicaciones Web Asp.Net

Page 1: 14.  Seguridad En Aplicaciones Web Asp.Net

Seguridad en aplicaciones Web con Microsoft ASP.NET

Page 2: 14.  Seguridad En Aplicaciones Web Asp.Net

Descripción

Descripción de la seguridad para aplicaciones Web

Trabajar con autenticación basada en Windows

Trabajar con autenticación basada en formularios

Descripción de la autenticación de Microsoft Passport

Page 3: 14.  Seguridad En Aplicaciones Web Asp.Net

Lección: descripción de la seguridad para aplicaciones Web

Autenticación frente a autorización

¿Cuáles son los métodos de autenticación de ASP.NET?

Multimedia: métodos de autenticación de ASP.NET

Comparación de los métodos de autenticación de ASP.NET

¿Cuáles son los mecanismos de autenticación de IIS?

Demostración: uso de los mecanismos de autenticación de IIS

¿Qué es Secure Sockets Layer?

Page 4: 14.  Seguridad En Aplicaciones Web Asp.Net

Autenticación frente a Autorización

Autenticación

Acepta credenciales de un usuario

Valida las credenciales

Autorización

En función de las credenciales de autenticación suministradas, determina el derecho de acceso a un recurso

Puede asignarse por nombre de usuario o por rol

Page 5: 14.  Seguridad En Aplicaciones Web Asp.Net

¿Cuáles son los métodos de autenticación de ASP.NET?

Autenticación basada en Windows

Depende del sistema operativo Windows y de IIS El usuario solicita una página Web segura y la solicitud pasa por IIS Una vez IIS verifica las credenciales, se devuelve la página Web segura

Autenticación basada en formularios

Las solicitudes no autenticadas son redirigidas a un formulario HTML El usuario proporciona credenciales y envía el formulario HTML Una vez verificadas las credenciales, se suministra una cookie de

autenticación Autenticación mediante Microsoft Passport

Servicio de autenticación centralizado que ofrece una única opción de inicio de sesión

Microsoft Passport es un Servicio Web XML

Page 6: 14.  Seguridad En Aplicaciones Web Asp.Net

Comparación de los métodos de autenticación de ASP.NET

MétodoMétodo VentajasVentajas InconvenientesInconvenientes

Autenticación basada en Windows

Utiliza infraestructura Windows existente

Controla el acceso a información confidencial

No apropiado para la mayoría de aplicaciones de Internet

Autenticación basada en formularios

Adecuada para aplicaciones de Internet

Soporta todo tipo de clientes Basada en cookies

Autenticación mediante Microsoft Passport

Inicio de sesión único para muchos sitios de Internet

No es necesario mantener una base de datos para almacenar información del usuario

Permite a los desarrolladores personalizar el aspecto de la página de inscripción

Basada en cookies Implica cuota

Page 7: 14.  Seguridad En Aplicaciones Web Asp.Net

¿Cuáles son los mecanismos de autenticación de IIS?

MecanismosMecanismos Nivel de Nivel de seguridadseguridad DescripciónDescripción

Acceso anónimo Ninguno No se produce autenticación

Autenticación básica

Bajo (Medio con SSL)

El cliente envía nombre de usuario y contraseña como texto claro

Puede encriptarse utilizando SSL Parte de la especificación HTTP y

soportado por la mayoría de exploradores

Autenticación implícita

Medio

Envía la información en un hash (o digest) codificado

Requiere Internet Explorer 5 o superior Requiere Active Directory

Seguridad integrada de Windows

Alto

Utiliza NTLM o Kerberos Generalmente adecuado para intranets,

no Internet No funciona a través de muchos

cortafuegos

Page 8: 14.  Seguridad En Aplicaciones Web Asp.Net

Demostración: uso de los mecanismos de autenticación de IIS

Hacer clic con el botón derecho en Mod16 y hacer clic en Propiedades

Hacer clic en la pestaña Seguridad de directorios

Hacer clic en Modificar

Mostrar los métodos de autenticación

Page 9: 14.  Seguridad En Aplicaciones Web Asp.Net

¿Qué es Secure Sockets Layer?

SSL es un protocolo que se utiliza para transmitir datos de forma segura a través de una red. SSL securiza los datos mediante: Encriptación de datos

- Asegura que los datos enviados son leídos únicamente por un servidor destinatario seguro

Autenticación de servidor- Asegura que los datos se envían al servidor correcto- Utiliza los certificados de servidor y de cliente

Integridad de los datos- Protege la integridad de los datos- Incluye un código de autenticación de mensajes que

detecta si un mensaje ha sido o no modificado

Utiliza HTTPS (Hypertext Transfer Protocol Secure) para recuperar una página Web ASP.NET

Page 10: 14.  Seguridad En Aplicaciones Web Asp.Net

Lección: trabajar con autenticación basada en Windows

Cómo habilitar la autenticación basada en Windows

Leer información del usuario

Demostración: uso de la autenticación basada en Windows

Page 11: 14.  Seguridad En Aplicaciones Web Asp.Net

Cómo habilitar la autenticación basada en Windows

Configurar IIS para utilizar uno o varios de los siguientes mecanismos de autenticación :

Básica

Implícita

Seguridad de Windows integrada

Establecer la autenticación basada en Windows en Web.config

1111

2222

<system.web> <Authentication mode="Windows" /></system.web>

<system.web> <Authentication mode="Windows" /></system.web>

Page 12: 14.  Seguridad En Aplicaciones Web Asp.Net

Cómo habilitar la autenticación basada en Windows (continuación)

Establecer la autorización en Web.config

Cuando los usuarios acceden al formulario Web Form, IIS solicitainformación de iniciode sesión

<location path="ShoppingCart.aspx"> <system.web>

<Authorization> <deny users="?"/></Authorization>

</system.web></location>

<location path="ShoppingCart.aspx"> <system.web>

<Authorization> <deny users="?"/></Authorization>

</system.web></location>

4444

3333

Page 13: 14.  Seguridad En Aplicaciones Web Asp.Net

Leer información del usuario

Tras la autenticación, el servidor Web puede leer la identidad del usuario

lblAuthUser.Text = User.Identity.NamelblAuthType.Text = User.Identity.AuthenticationTypelblIsAuth.Text = User.Identity.IsAuthenticated

lblAuthUser.Text = User.Identity.NamelblAuthType.Text = User.Identity.AuthenticationTypelblIsAuth.Text = User.Identity.IsAuthenticated

lblAuthUser.Text = User.Identity.Name;lblAuthType.Text = User.Identity.AuthenticationType;lblIsAuth.Text = User.Identity.IsAuthenticated;

lblAuthUser.Text = User.Identity.Name;lblAuthType.Text = User.Identity.AuthenticationType;lblIsAuth.Text = User.Identity.IsAuthenticated;

Page 14: 14.  Seguridad En Aplicaciones Web Asp.Net

Demostración: uso de la autenticación basada en Windows

Abrir IIS y configurarlo únicamente con autenticación anónima

Crear un nuevo usuario en el equipo local

Abrir Web.config y configurarlo para soportar autenticación y autorización

Ejecutar la aplicación Web ASP.NET segura

Los estudiantes pueden acceder a la aplicación Web ASP.NET segura en el equipo del instructor

Page 15: 14.  Seguridad En Aplicaciones Web Asp.Net

Lección: trabajar con autenticación basada en formularios

Descripción de la autenticación basada en formularios

Multimedia: autenticación basada en formularios

Cómo habilitar la autenticación basada en formularios

Crear una página de inicio de sesión

Demostración: uso de la autenticación basada en formularios

Page 16: 14.  Seguridad En Aplicaciones Web Asp.Net

Descripción de autenticación basada en formularios

El cliente solicita página

Autorizado

Autenticación ASP.NET Forms

No autenticado

Autenticado

Página de inicio(los usuarios introducen sus credenciales)

Autenticado

Cookie de autenticación

Autorizado

No autenticado

Acceso denegado

Página segurasolicitada

IIS

Nombre usuario

ContraseñaAlguien

***********

EnviarEnviar

1111 2222

3333

44446666

55557777

Page 17: 14.  Seguridad En Aplicaciones Web Asp.Net

Cómo habilitar la autenticación basada en formularios

Configurar IIS para utilizar autenticación anónima

Establecer la autenticación basada en formularios en Web.config

Establecer la autorización

Generar un formulario Web Form de inicio de sesión

1111

2222

3333

4444

<Authentication mode="Forms" ><forms name=".namesuffix" loginUrl="login.aspx" />

</Authentication>

<Authentication mode="Forms" ><forms name=".namesuffix" loginUrl="login.aspx" />

</Authentication>

Page 18: 14.  Seguridad En Aplicaciones Web Asp.Net

Añadir una referencia a System.Web.Security

La página de inicio de sesión verifica y examina las credenciales de un usuario

Leer las credenciales del usuario desde una cookie

User.Identity.Name devuelve el valor guardado por FormsAuthentication.RedirectFromLoginPage

Crear una página de inicio de sesión

Sub cmdLogin_Click(s As Object, e As eventArgs) If (login(txtEmail.Text, txtPassword.Text)) FormsAuthentication.RedirectFromLoginPage(txtEmail.Text, False) End IfEnd Sub

Sub cmdLogin_Click(s As Object, e As eventArgs) If (login(txtEmail.Text, txtPassword.Text)) FormsAuthentication.RedirectFromLoginPage(txtEmail.Text, False) End IfEnd Sub

private void cmdLogin_Click(object sender, EventArgs e){ if (login(txtEmail.Text, txtPassword.Text)) FormsAuthentication.RedirectFromLoginPage(txtEmail.Text, false);}

private void cmdLogin_Click(object sender, EventArgs e){ if (login(txtEmail.Text, txtPassword.Text)) FormsAuthentication.RedirectFromLoginPage(txtEmail.Text, false);}

Page 19: 14.  Seguridad En Aplicaciones Web Asp.Net

Demostración: uso de la autenticación basada en formularios

Abrir IIS y configurar para autenticación anónima

Abrir Web.config y configurarlo para autenticación y autorización

Abrir la página de inicio de sesión y mostrar el código

Ejecutar la aplicación Web ASP.NET

Los estudiantes pueden acceder a la aplicación Web ASP.NET segura en el equipo del instructor

Page 20: 14.  Seguridad En Aplicaciones Web Asp.Net

Lección: Descripción de la autenticación mediante Microsoft Passport

Cómo funciona Microsoft Passport

Otros recursos de Microsoft Passport

Page 21: 14.  Seguridad En Aplicaciones Web Asp.Net

Cómo funciona Microsoft Passport

sitioweb.msftsitioweb.msft

ClienteCliente

Passport.comPassport.com

El cliente solicita una página al host1111

2222

3333

4444

5555

El sitio redirige al cliente a Passport.com

El cliente es redirigido e inicia sesión en Passport.com

Passport devuelve una cookie con la información del ticket

6666

El cliente accede al host, esta vez con la información del ticket

El host devuelve un formulario Web Form y posiblemente una nueva cookie que puede leer y escribir

Page 22: 14.  Seguridad En Aplicaciones Web Asp.Net

Otros recursos sobre Microsoft Passport

Sitios Web

http://www.passport.com

http://msdn.microsoft.com