• No se han encontrado resultados

Marcos de Desarrollo. Diseño e implementación de aplicaciones Web con.net

N/A
N/A
Protected

Academic year: 2021

Share "Marcos de Desarrollo. Diseño e implementación de aplicaciones Web con.net"

Copied!
26
0
0

Texto completo

(1)

Marcos de Desarrollo

(2)

Objetivos

Saber implementar autenticación basada en

formularios en aplicaciones Web ASP.NET

Saber restringir el acceso a recursos de la aplicación

Web a usuarios no autenticados

(3)

Definiciones

Autenticación: proceso mediante el cual se comprueba

que el usuario final es quien dice ser

El usuario debe especificar ciertas credenciales (normalmente

un nombre de usuario y una contraseña) cuya validez se

puede comprobar consultando una lista de datos conocidos. Si las credenciales son correctas, se autentica al usuario; de lo contrario, no se le autentica

Autorización: proceso que consiste en determinar lo que

el usuario puede y no puede hacer en la aplicación

Se realiza una vez que se ha autenticado al usuarioTambién se conoce como "control de acceso"

(4)

Autenticación

(5)

Autenticación

Niveles:

Internet Information Server (IIS) ASP.NET

 Configurable desde web.config

(6)

Autenticación Internet Information Server (IIS)

 En IIS, se pueden seleccionar los distintos modos de autenticación:

Anónimo

 El servidor no realiza autenticación (es la opción que usaremos)  Control de autenticación se delega en ASP.NET

Básica

 Usuario y contraseña en claro

Digest

 Envía un hash de la contraseña

Certificados Digitales

 El cliente necesita un certificado digital

Integrada

 Se usan las credenciales de la cuenta de Windows (en donde reside el

(7)

Autenticación ASP.NET

 Modos de autenticación

None

 No se realiza autenticación

 Acceso anónimo permitido a toda la aplicación Web

Windows

 Delega autenticación en IIS (y se utilizaría el mecanismo

seleccionado en IIS)

 Es el valor predeterminado

Forms

 Autenticación basada en formularios (la que utilizaremos)

Passport

(8)

Autenticación basada en formularios (forms)

 Solución flexible: se integra fácilmente con la aplicación Web

 Es necesario indicarle a ASP.NET a dónde debe redirigir al usuario en caso de que éste solicite acceso a un recurso

protegido. Normalmente se redirige a la página que contiene el formulario para introducir las credenciales de usuario

 Una vez el usuario proporciona sus credenciales, es necesario realizar el proceso de validación

 ASP.NET proporciona mecanismos de validación, pero también se pueden programar mecanismos propios (e.g. MiniPortal)

 Si la validación es correcta, se genera un ticket de autenticación

(9)

Autenticación basada en formularios (forms)

IIS ASP.NET No existe cookie Usuario Password Submit Cookie Página protegida Existe cookie loginForm.aspx

(10)
(11)

Autenticación basada en formularios (forms)

Configuración

En IIS: Establecer método de autenticación como

"acceso anónimo"  En Web.config <configuration> <system.web> <authentication mode="Forms"> <forms name=".ASPXAUTH" loginUrl="/Authentication.aspx" timeout="30" path="/" defaultUrl="/MainPage.aspx" cookieless="AutoDetect" /> </authentication> </system.web> </configuration>

nombre de la cookie de autenticación URL a la que debe redirigirse la solicitud de inicio de sesión, si no se encuentra ninguna cookie de

autenticación válida

(12)

Autenticación basada en formularios (forms)

Configuración

Establecer autenticación IIS como anónimaEn Web.config <configuration> <system.web> <authentication mode="Forms"> <forms name=".ASPXAUTH" loginUrl="/Authentication.aspx" timeout="30" path="/" defaultUrl="/MainPage.aspx" cookieless="AutoDetect" /> </authentication> </system.web> </configuration>

URL a la que se redirige tras la autenticación, si se había solicitado loginUrl.

Si se había solicitado un recurso protegido, se redirige

automáticamente a él.

ruta de acceso de las cookies emitidas por la aplicación (se recomienda "/")

(13)

Autenticación basada en formularios (forms)

 El proceso de validar la identidad de un usuario (autenticación) puede realizarse:

a) Utilizando el método Authenticate de la clase

System.Web.Security.FormsAuthentication

b) Utilizando un método propio

c) Utilizando las clases del API Membership

 Incluye funcionalidades implementadas para registro de usuarios, cambio de

contraseña, recuperación de contraseña, etc.

Por sencillez, y para comprender mejor el proceso, aquí utilizaremos la opción b) En una aplicación "real" se recomienda la opción c)

(14)

Autenticación basada en formularios (forms)

a) Utilizando el método de la clase

System.Web.Security.FormsAuthentication:

 Valida contra el archivo Web.config

<authentication mode="Forms"> <forms

loginUrl="~/SignIn.aspx" name=".ASPXAUTH" path="/" defaultUrl="~/Default.aspx">

<credentials passwordFormat="Clear">

<user name="testUser1" password="testPass1"/> <user name="testUser2" password="testPass2"/> </credentials>

</forms>

</authentication>

(15)

Autenticación basada en formularios (forms)

b) Utilizando un método propio:

Por ejemplo, Login(String loginName, String

clearPassword), que comprueba las credenciales contra una base de datos

(16)

Autenticación basada en formularios (forms)

Tanto si utilizamos el método a) como si utilizamos el

b), una vez hemos determinado que el usuario está

autenticado, debemos indicarlo a la aplicación

ASP.NET

Es necesario generar un ticket de autenticación

 Se hace con métodos de la clase FormsAuthentication

(17)

Métodos de FormsAuthentication (1)

No realiza el proceso de validación. Supone que las

credenciales de userName han sido comprobadas y son válidas

Marca al usuario userName como "autenticado"

Genera un ticket de autenticación en forma de cookie

 Si createPersistentCookiees false, se crea una cookie

temporal (sólo se almacena en la memoria del navegador)

 Si es true, se crea una cookie persistente, que se almacena en el

ordenador del cliente

public static void RedirectFromLoginPage(string userName,

(18)

Métodos de FormsAuthentication (2)

Redirige automáticamente a la página solicitada (si se

había solicitado una página protegida) o a defaultURL

(si se había accedido al formulario de login -loginURL)

(19)

Métodos de FormsAuthentication (3)

No realiza el proceso de validación. Supone que las

credenciales de userName han sido comprobadas y son válidas

Crea una cookie de autenticación para userName y la

añade a la response

No redirige a ninguna página

public static void SetAuthCookie(string userName,

(20)

Métodos de FormsAuthentication (4)

No realiza el proceso de validación. Supone que las

credenciales de userName han sido comprobadas y son válidas

Crea una cookie de autenticación para userName, pero

no la añade a la response

No redirige a ninguna página

public static HttpCookie GetAuthCookie(string userName,

(21)

Métodos de FormsAuthentication (y 5)

Borra el ticket de autenticación public static void SignOut();

(22)

Autorización

(23)

Autorización

Es posible controlar de forma

declarativa

a qué

recursos del sitio Web tienen acceso los usuarios

Se configura en el Web.config

e.g. Se deniega el acceso a los usuario anónimos (sólo se

permite acceso al sitio Web a los usuarios autenticados)

Comodines

 * : todos los usuarios  ? : Usuarios anónimos

<authorization>

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

(24)

Autorización

Es posible definir control de acceso para recursos

específicos, mediante una secci

ó

n <location>

e.g. se concede permiso de acceso a la página

Register.aspx a todos los usuarios

<location path="Register.aspx"> <system.web> <authorization> <allow users ="*" /> </authorization> </system.web> </location>

(25)

Autorización

 Política restrictiva:

"Todo lo que no está expresamente permitido, está prohibido"Primero se deniega el acceso a todos los usuarios anónimos

 <deny users ="?" />

Luego se da acceso a los recursos que no necesitan

autenticación

 Política permisiva:

"Todo lo que no está expresamente prohibido, está permitido"Primero se permite el acceso a todos los recursos

 <allow users ="*" />

Luego se indican aquellos recursos que necesitan

(26)

Bibliografía

Recomendada:

M. MacDonald, A. Freeman, M. Szpuszta. Pro ASP.Net

Referencias

Documento similar

As results of the analysis showed that the cookie with flour obtained from the yellow pitahaya shell and the combinations of aromatic herbs, such as basil and rosemary

El fenómeno del cuidado, emerge como necesidad la simbiosis entre el proceso de enfermería y su transcendencia en la investigación científica a través de la enfermería basada

Mediante esta aplicación los usuarios con perfil de administrador podrán acceder a toda la información para la gestión tanto de sus empleados como las tareas que tiene

La colección HttpContext.Items se puede utilizar para vehicular informaciones globales durante el procesamiento de una petición http como, por ejemplo, para permitir el acceso a

Otro problema es que en la intranet no se controla cuando se visita una página, no se marca la página como ya visitada, y esto trae consigo la pérdida del usuario a

Esta estructura (basada en clases de análisis y paquetes) es independiente de la estructura que se dio a los requisitos (basada en casos de uso). Sin embargo existe

El presente trabajo desarrollado esta soportado por una base de datos cuyo modelado cumple con las normas del Dublin Core, este estándar fue elegido ya que proporciona un simple

La aplicación web Registro de Visitantes está basada en un patrón clásico del diseño web conocido como arquitectura Modelo-Vista-Controlador (MVC), se basa en