Entender sobre Identidade no ASP.NET Core
Nesta unidade, você obterá uma compreensão da arquitetura do Identity.
Arquitetura da Identidade do ASP.NET Core
O ASP.NET Core Identity é um sistema de associação que adiciona funcionalidades de registro e entrada de usuário a uma IU da Web ASP.NET Core. O sistema de associação lida com questões de autenticação e autorização. A autenticação trata de sua identidade. A autorização gira em torno do que você tem permissão para fazer. A autenticação é, portanto, um pré-requisito da autorização.
Como alternativa à criação da conta local, o Identity dá suporte a provedores de entrada externos, como Facebook e X. As sessões de usuário são preservadas usando autenticação baseada em cookie. Por padrão, um cookie é criado após a entrada e destruído após o logoff.
Os dados de associação são persistidos usando um armazenamento de dados e uma tecnologia de acesso a dados de sua escolha. A tecnologia padrão de acesso a dados é um O/RM (Mapeador Relacional de Objetos) chamado EF (Entity Framework) Core. O armazenamento de dados padrão é o SQL Server.
O EF Core abstrai os meandros da interação com o banco de dados subjacente. Portanto, o EF Core geralmente possibilita o uso de qualquer um de seus provedores de banco de dados com o Identity. Os provedores de banco de dados estão disponíveis para SQL Server, SQLite e vários outros armazenamentos de dados. O Identity também proporciona a flexibilidade de usar uma tecnologia de acesso a dados de sua escolha. O Dapper é uma alternativa popular.
O seguinte diagrama ilustra a arquitetura do Identity usada neste módulo:
No diagrama anterior:
- O aplicativo Razor Pages ASP.NET Core representa a IU da Web à qual o suporte do Identity será adicionado neste módulo.
- A camada do Identity Manager contém classes usadas do namespace
Microsoft.AspNetCore.Identity
. Exemplos dessas classes usados explicitamente neste módulo sãoSignInManager<TUser>
eUserManager<TUser>
. - A camada do EF Core Identity Store contém classes do namespace
Microsoft.AspNetCore.Identity.EntityFrameworkCore
. Um exemplo dessa classe usado implicitamente neste módulo éUserStore<TUser>
. - O Provedor de Dados é uma biblioteca específica de banco de dados que aceita o SQL do Provedor do EF Core (não ilustrado) e o executa.
O EF Core usa um recurso chamado migrações para atualizar incrementalmente o esquema de banco de dados a fim de mantê-lo em sincronia com o modelo de dados do aplicativo. As tabelas de banco de dados de apoio são criadas após a aplicação da migração inicial do EF Core. O seguinte diagrama ilustra os esquemas das tabelas de suporte:
Observação
A imagem anterior mostra as chaves e as relações no banco de dados. A chave é um e o infinito (8 lateral) é muitos. Um banco de dados pode ter relacionamentos dos tipos um para um, um para muitos e muitos para muitos. As chaves são exclusivas. O diagrama mostra como essas junções são criadas e as relações.
Resumo
Nesta unidade, você aprendeu sobre a arquitetura de identidade do ASP.NET Core. Na próxima unidade, você adicionará a implementação padrão de identidade do ASP.NET Core a um aplicativo.