Identity de ASP.NET Core

Completado

En esta unidad, se obtiene información sobre la arquitectura de Identity.

Arquitectura de Identity de ASP.NET Core

Identity de ASP.NET Core es un sistema de pertenencia que agrega capacidades de inicio de sesión y registro de usuarios a una interfaz de usuario web de ASP.NET Core. El sistema de pertenencia controla los problemas de autenticación y autorización. La autenticación se refiere a quién es el usuario. La autorización se refiere a lo que se le permite hacer. Por lo tanto, la autenticación es un requisito previo para la autorización.

Como alternativa a la creación de cuentas locales, Identity admite proveedores de inicio de sesión externos, como Facebook y Twitter. Las sesiones de usuario se conservan con autenticación basada en cookies. De forma predeterminada, se crea una cookie al iniciar sesión y se destruye al cerrarla.

Los datos de pertenencia se conservan con el uso de un almacén de datos y la tecnología de acceso a datos de su elección. La tecnología de acceso a datos predeterminada es un asignador relacional de objetos (O/RM) llamado Entity Framework (EF) Core. El almacén de datos predeterminado es SQL Server.

EF Core se encarga de abstraer los pormenores de la interacción con la base de datos subyacente. Por lo tanto, EF Core normalmente permite usar cualquiera de sus proveedores de bases de datos con Identity. Hay proveedores de bases de datos disponibles para SQL Server, SQLite y muchos otros almacenes de datos. Identity también proporciona la flexibilidad de usar una tecnología de acceso a datos de su elección. Dapper es una alternativa popular.

En el diagrama siguiente se muestra la arquitectura de Identity usada en este módulo:

Diagrama que describe la arquitectura de Identity.

En el diagrama anterior:

  • La aplicación Razor Pages de ASP.NET Core representa la interfaz de usuario web a la que se agrega compatibilidad con Identity en este módulo.
  • La capa de Identity Manager contiene clases que se usan desde el espacio de nombres Microsoft.AspNetCore.Identity. SignInManager<TUser> y UserManager<TUser> representan ejemplos de estas clases utilizadas explícitamente en este módulo.
  • La capa EF Core Identity Store contiene clases que se usan desde el espacio de nombres Microsoft.AspNetCore.Identity.EntityFrameworkCore. UserStore<TUser> representa un ejemplo de esta clase usada implícitamente en este módulo.
  • El Proveedor de bases de datos es una biblioteca específica de la base de datos que acepta SQL a partir del proveedor de EF Core (no aparece en la imagen) y lo ejecuta.

EF Core usa una característica denominada migraciones a fin de actualizar incrementalmente el esquema de la base de datos para mantenerlo sincronizado con el modelo de datos de la aplicación. Después de aplicar la migración inicial de EF Core, se crean las tablas auxiliares de base de datos. En el diagrama siguiente se muestran los esquemas de las tablas compatibles:

Diagrama del esquema de la base de datos de Identity.

Nota

La imagen anterior muestra las claves y las relaciones de la base de datos. La clave es un único valor, mientras que el infinito (lateral 8) corresponde a varios. Una base de datos puede tener tipos de relación de uno a uno, de uno a varios y de varios a varios. Las claves son únicas. El diagrama muestra cómo se crean estas combinaciones y las relaciones que existen.

Resumen

En esta unidad, ha obtenido información sobre la arquitectura Identity de ASP.NET Core. En la unidad siguiente, agregará la implementación predeterminada de Identity de ASP.NET Core a una aplicación existente.

Comprobar los conocimientos

1.

¿Cuál es el almacén de datos predeterminado para Identity?