ASP.NET Identity es un sistema de identidad que permite llevar el control de usuarios, roles y contraseñas.
Contiene una interfaz gráfica predeterminada basada en una Razor Class Library entre muchas características más. ASP.NET Identity está compuesto por varios paquetes de NuGet, algunos pertenecientes al framework compartido y otros adicionales.
ASP.NET Identity es un sistema de identidad incluido en ASP.NET. Es un conjunto de paquetes de NuGet predeterminados para instalar.
ASP.NET Identity es el responsable de almacenar las cuentas de usuario, contraseñas, roles…
Historia de ASP.NET Identity
En el año 2005 se dio origen al ASP.NET 2.0 introduciendo así el sistema de autenticación y autorización ASP.NET membership.
ASP.NET Identity es el nuevo sistema de autenticación y autorización para los proyectos del tipo ASP.NET MVC, Web Forms, Web API, SPA y para construir modernas aplicaciones para la web, teléfonos o tablets.
- ASP.NET Membership: Fue el primer sistema de autorización/autenticación diseñado en ASP.NET. Se basaba en la autenticación de formularios y el uso de bases de datos SQL Server para almacenar nombres de usuarios, contraseñas y datos de perfil.
- ASP.NET Simple Membership: Fue desarrollado como un sistema de membresía para ASP.NET Web Pages. Fue lanzado con WebMatrix y el SP1 de Visual Studio 2010. Su objetivo, era poder agregar funcionalidad de membresía a una aplicación de Web Pages.
- ASP.NET Universal Providers: Fueron desarrollados para guardar información de membresía en SQL Azure, y trabajar con SQL Server Compact. Los ASP.NET Universal Providers se introdujeron utilizando Entity Framework Code First, lo que significa que pueden usarse para guardar datos en cualquier almacén de datos que soporte EF.
Autenticación y Autorización
La autenticación tiene el objetivo de verificar si un usuario está conectado. Y la autorización hace un seguimiento a lo que se hace después de iniciar sesión.
La autenticación y la autorización se llevan a cabo con el middleware agregado a la solicitud de autenticación, en el orden adecuado en la canalización del middleware.
Autorización
El proceso de autorización es el que determina lo que un usuario puede hacer en la aplicación. La autorización es independiente de la autenticación, se permite enfoque de autorización apoyado en roles, notificaciones y directivas.
Seguridad e Identidad
Las principales tareas en cuanto a la seguridad, ya sea, una aplicación web o una API, son las siguientes:
- Evitar ataques de inyección de SQL en la entrada de datos.
- Prevenir ataques (CSRF) falsificación de formularios en sitios cruzados.
- Diseñar opciones para restablecer contraseñas y recuperar cuentas.
- Proveer a los usuarios de formas seguras de iniciar sesión.
Aspectos más importantes de ASP.NET Identity:
- Role provider: A través de esta función se pueden ejecutar una serie de roles para usuarios, ejemplo: roles para supervisor, administrador, guest y denegar el acceso a rutas, controladores y acciones.
- Claims Based: Se puede adicionar información a un usuario autenticado.
- Social Login Providers: Es posible autenticarse usando cuentas externas como Facebook, Twitter, Gmail.
- Owin: Owin es una especificación para crear componentes (middlewares) con el objetivo de trabajar bajo un mismo standard de compatibilidad.
- NuGet Package: Es distribuido por NuGet para poder actualizar el ASP.NET Identity cuando salga una nueva versión.
Objetivos de ASP.NET Identity
- Diseñado para ser usado con todos los frameworks de ASP.NET como ASP.NET MVC, Web Forms, Web Pages, Web Api, SPA y SignalR.
- Control sobre el perfil y la información de usuario.
- Control de persistencia: ASP.NET Identity utiliza Entity Framework Code First para implementar un mecanismo total de persistencia.
- Las aplicaciones web se pueden testear más fácilmente con Identity.
- La identidad de usuario se representa como un conjunto de autenticaciones mediante roles (claims-based authentication).
Si deseas aprender a crear sistemas completos de Autenticación y Autorización usando Identity te dejo mi curso profesional: