Comprendre ASP.NET Core Identity

Effectué

Dans cette unité, vous découvrez l’architecture d’Identity.

Architecture ASP.NET Core Identity

ASP.NET Core Identity est un système d’appartenance qui ajoute des fonctionnalités d’inscription et de connexion utilisateur à une interface utilisateur web ASP.NET Core. Le système d’appartenance gère à la fois les problèmes d’authentification et d’autorisation. L’authentification s’intéresse à qui vous êtes. L’autorisation s’intéresse à ce que vous êtes autorisé à faire. L’authentification est donc un prérequis de l’autorisation.

En guise d’alternative à la création d’un compte local, Identity prend en charge les fournisseurs de connexion externes tels que Facebook et Twitter. Les sessions utilisateur sont conservées avec une authentification basée sur les cookies. Par défaut, un cookie est créé lors de la connexion et détruit lors de la déconnexion.

Les données d’appartenance sont conservées à l’aide de la technologie de stockage de données et d’accès aux données de votre choix. La technologie d’accès aux données par défaut est un mappeur objet-relationnel (O/RM) appelé Entity Framework (EF) Core. Le magasin de données par défaut est SQL Server.

Les complexités de l’interaction avec la base de données sous-jacente sont éliminées par EF Core. Par conséquent, EF Core permet généralement d’utiliser l’un de ses fournisseurs de bases de données avec Identity. Les fournisseurs de base de données sont disponibles pour SQL Server, SQLite et plusieurs autres magasins de données. Identity offre aussi la souplesse d’utiliser une technologie d’accès aux données de votre choix. Dapper est une alternative répandue.

Le diagramme suivant montre l’architecture d’Identity utilisée dans ce module :

Diagramme illustrant l’architecture d’Identity.

Dans le diagramme ci-dessus :

  • L’application ASP.NET Core Razor Pages représente l’interface utilisateur web à laquelle la prise en charge d’Identity est ajoutée dans ce module.
  • La couche Identity Manager contient les classes utilisées de l’espace de noms Microsoft.AspNetCore.Identity. Les exemples de ces classes utilisées explicitement dans ce module sont SignInManager<TUser> et UserManager<TUser>.
  • La couche EF Core Identity Store contient les classes de l’espace de noms Microsoft.AspNetCore.Identity.EntityFrameworkCore. Un exemple d’une classe utilisée implicitement dans ce module est UserStore<TUser>.
  • Le fournisseur de base de données est une bibliothèque propre à la base de données qui accepte SQL du fournisseur EF Core (non illustré) et l’exécute.

EF Core utilise une fonctionnalité appelée migrations qui met à jour de façon incrémentielle le schéma de base de données afin de le garder synchronisé avec le modèle de données de l’application. Après l’application de la première migration EF Core, les tables de la base de données de prise en charge sont créées. Le diagramme suivant illustre les schémas des tables de prise en charge :

Diagramme du schéma de base de données d’Identity.

Notes

L’image ci-dessus montre la ou les clés et les relations dans la base de données. La clé est une relation à un et l’infini (un huit couché) est une relation à plusieurs. Une base de données peut avoir des relations un-à-un, un-à-plusieurs et plusieurs-à-plusieurs. Les clés sont uniques. Le diagramme montre comment ces jointures sont créées, ainsi que leurs relations.

Résumé

Dans cette unité, vous avez découvert l’architecture ASP.NET Core Identity. Dans l’unité suivante, vous allez ajouter l’implémentation par défaut d’ASP.NET Core Identity à une application existante.

Vérifiez vos connaissances

1.

Qu’est-ce que le magasin de données par défaut pour Identity ?