Autenticación en aplicaciones Web (PPT)

Generalidades
¿Qué es Autenticación?
Es el mecanismo que permite afirmar que la persona que esta ingresando al sistema es quien dice ser.
¿Cómo Funciona?
Se aceptan las credenciales ingresadas por el usuario (usuario – contraseña) y se validan contra una base de datos, el sistema operativo, un servicio web, u otro mecanismo definido según el tipo de autenticación.
Tipos de Autenticación
Basada en Windows
Basada en Windows e IIS
La solicitud de la página pasa por IIS
Si IIS valida exitosamente la credencial, entonces se devuelve la página solicitada
Basada en Formularios
Las solicitudes no autenticadas son redireccionadas a un formulario de login
Después de validar la credencial se envía al cliente una cookie de autenticación
Basada en Microsoft Passport
Servicio de autenticación centralizado
Passport es un Web Service
Configurando la autenticación
Autenticación por Formularios
La autenticación por formularios se utiliza para validar a los usuarios contra bases de datos relaciones, Servicios Web, etc.
¿Cómo funciona?
Si las credenciales son válidas, ASP.NET graba un ticket de autenticación en la cookie que contiene la identidad del usuario.
Si el usuario es anónimo, redirecciona las peticiones a una página predeterminada para validar las credenciales del usuario.
Cliente solicita una página
Autorizado
Autenticación basada en Formulario
NOAutenticado
Autenticado
Form de Login(Usuario ingresa sus credenciales)
Autenticado
Cookie de autenticación
Autorizado
NOAutenticado
Acceso Denegado
Página Segura solicitada
(Gp:) ?
(Gp:) ?
IIS
Usuario
Clave
Gabriel
***********
Aceptar
1
2
3
4
6
5
7
Autenticación por Formularios
Controles de Login (1/2)
Control Log In
Ejemplo del control
Controles de Login (2/2)
Control de Creación de Usuarios
(Gp:)
(Gp:) Ejemplo del control
Generalidades
Las páginas html de una aplicación web se transmiten por medio del protocolo HTTP, como se mencionó anteriormente. Este protocolo es un protocolo “sin estado”.
Así, una vez que el usuario ingreso datos en el navegador, si no se mantiene el estado mediante algún mecanismo, se pierden los datos ingresados.
Por este motivo, ASP.Net proporciona mecanismos para mantener el estado de sus variables a través de las distintas peticiones de páginas.
Entre estos mecanismos se encuentran:
Application State : mecanismo de almacenamiento global accesible desde todas las páginas de la aplicación Web
Session State : mecanismo de almacenamiento limitado a la sesión actual del navegador
View State :Mantiene valores entre múltiples solicitudes a la misma página
Administración de estados
Contraseña
Juan
Ingresar
*******
Login.aspx
Login.aspx
Hola Juan
Inicio.aspx
Ingrese sus datos de inicio de sesión
Juan
Ingresar
*******
Hola
Inicio.aspx
Nombre
Contraseña
Sin Adm. De Estados
Con Adm. De Estados
Olvide quien es Ud!
Ingrese sus datos de inicio de sesión
Nombre
Tipos de administración de estado
Application State es un mecanismo de almacenamiento global accesible desde todas las páginas de la aplicación Web
Seesion State está limitada a la sesión actual del browser
Las sesiones ASP.NET se identifican con una cadena de caracteres ASCII y se guarda como una Cookie en el cliente
SessionID
Variables de
Session y
Application
Administración de estados – Servidor
Cookies para mantener el estado:
Temporarias
Persistentes
Problema: el usuario puede borrarlas o deshabilitarlas
Problemas de seguridad
Espacio limitado a almacenar no más de 4KB
Cookie
Administración de estados – Cliente
Global.asax
Administra eventos a nivel de aplicación y sesión.
Los eventos referentes a la manutención del estado de aplicaciones web, son:
Application_Start
Application_End
Session_Start
Session_End
Estado de la aplicación(1/2)
Permite almacenar información a nivel de aplicación, común a todas las sesiones. Esta información se almacena en una colección llamada Application.
El acceso a esta información se realiza mediante el objeto intrínseco “Application”
Ejemplo en C#
protected void Application_Start() {
DataSet ds = new DataSet();
try {
FileStream fs = new
FileStream(Server.MapPath("schemadata.xml"), FileMode.Open,FileAccess.Read);
StreamReader reader = new StreamReader(fs);
ds.ReadXml(reader);
}
finally { fs.Close(); }
DataView view = new DataView(ds.Tables[0]);
Application["Sucursal"] = view;
}
Estado de la aplicación(2/2)
Ejemplo en Visual Basic
Sub Application_Start(ByVal sender As Object, ByVal e As _ EventArgs)
Dim ds As DataSet = New DataSet
Try
Dim fs As FileStream = New _
FileStream(Server.MapPath("schemadata.xml"), _ FileMode.Open, FileAccess.Read)
Dim reader As StreamReader = New StreamReader(fs)
ds.ReadXml(reader)
Finally
fs.Close
End Try
Dim view As DataView = New DataView(ds.Tables(0))
Application("Sucursal") = view
End Sub
Estado de la sesión (1/2)
Una sesión es una interacción entre un navegador y un servidor web (comprende varios Requests a lo largo del tiempo)
Es posible almacenar información únicamente relevante para una sesión.
El acceso a esta información se realiza mediante el objeto intrínseco “Session”
Ejemplo C#
Protected void Session_Start( object sender, EventArgs e ) {
//…
try
{
conn = new SqlConnection( ConfigurationManager.ConnectionStrings[
"ADVENTUREWORKSConnectionString"].ConnectionString);
command.Connection = conn;
conn.Open();
object result = command.ExecuteScalar();
Session["codigo"] = result;
}
finally {
conn.Close();
}
}
Página siguiente ![]() |