Entenda ASP.NET identidade principal

Concluído

Nesta unidade, você obtém uma compreensão da arquitetura de identidade.

ASP.NET Arquitetura de identidade principal

ASP.NET Core Identity é um sistema de associação que adiciona recursos de registro e entrada de usuário a uma interface do usuário da Web ASP.NET Core. O sistema de associação processa questões de autenticação e autorização. A autenticação tem a ver com quem é. A autorização diz respeito ao que você tem permissão para fazer. Por conseguinte, a autenticação é um pré-requisito da autorização.

Como alternativa à criação de conta local, o Identity suporta provedores de login externos, como Facebook e X. As sessões de usuário são preservadas usando autenticação baseada em cookies. Por padrão, um cookie é criado ao entrar e destruído ao sair.

Os dados de associação são persistidos através de um arquivo de dados e da tecnologia de acesso a dados que prefere. A tecnologia de acesso a dados predefinida é um Mapeador Relacional de Objeto (O/RM) chamado Entity Framework (EF) Core. O arquivo de dados predefinido é o SQL Server.

O EF Core abstrai as complexidades da interação com o banco de dados subjacente. Assim, o EF Core possibilita, de forma geral, a utilização de qualquer um dos seus fornecedores de bases de dados com Identidade. Os provedores de banco de dados estão disponíveis para SQL Server, SQLite e vários outros armazenamentos de dados. A Identidade também fornece a flexibilidade para utilizar uma tecnologia de acesso a dados, conforme preferir. O Dapper é uma alternativa popular.

O diagrama seguinte ilustra a arquitetura de Identidade utilizada neste módulo:

Diagrama que representa a arquitetura Identity.

No diagrama anterior:

  • O aplicativo ASP.NET Core Razor Pages representa a interface do usuário da Web à qual o suporte a Identidade é adicionado neste módulo.
  • A camada do Identity Manager contém classes utilizadas do espaço de nomes Microsoft.AspNetCore.Identity. Exemplos dessas classes utilizadas explicitamente neste módulo são SignInManager<TUser> e UserManager<TUser>.
  • A camada EF Core Identity Store contém classes do espaço de nomes Microsoft.AspNetCore.Identity.EntityFrameworkCore. Um exemplo dessa classe utilizado implicitamente neste módulo é UserStore<TUser>.
  • O Fornecedor de Base de dados é uma biblioteca específica de base de dados que aceita SQL do Fornecedor EF Core (não ilustrado) e executa o mesmo.

O EF Core usa um recurso chamado migrações para atualizar incrementalmente o esquema de banco de dados para mantê-lo sincronizado com o modelo de dados do aplicativo. As tabelas de banco de dados de suporte são criadas após a aplicação da migração inicial do EF Core. O diagrama seguinte ilustra os esquemas das tabelas de suporte:

Diagrama do esquema do banco de dados Identity.

Nota

A imagem anterior mostra a(s) chave(s) e as relações no banco de dados. A chave é uma, e o infinito (lado 8) é muito. Um banco de dados pode ter tipos de relacionamento um-para-um, um-para-muitos e muitos-para-muitos. As chaves são únicas. O diagrama mostra como essas junções são criadas e as relações.

Resumo

Nesta unidade, você aprendeu sobre ASP.NET arquitetura Core Identity. Na próxima unidade, você adicionará a implementação padrão do ASP.NET Core Identity a um aplicativo existente.

Verifique o seu conhecimento

1.

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