Entender sobre Identidade no ASP.NET Core

Concluído

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 trata 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 Twitter. As sessões de usuário são preservadas com a 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.

As complexidades da interação com o banco de dados subjacente são abstraídas pelo EF Core. 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:

Diagrama que ilustra a arquitetura do Identity.

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ão SignInManager<TUser> e UserManager<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. Depois de aplicar a migração do EF Core inicial, as tabelas de banco de dados de suporte são criadas. O seguinte diagrama ilustra os esquemas das tabelas de suporte:

Diagrama do esquema de banco de dados do Identity.

Observação

A imagem acima 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, bem como 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.

Verificar seu conhecimento

1.

Qual é o armazenamento de dados padrão para Identidade?