Vysvětlení identity ASP.NET Core
V této lekci získáte přehled o architektuře identit.
Architektura ASP.NET Core Identity
ASP.NET Core Identity je systém členství, který přidává možnosti registrace a přihlašování uživatelů do webového uživatelského rozhraní ASP.NET Core. Systém členství se stará jak o ověřování, tak o autorizaci. Ověřování se zabývá tím, kdo jste. Autorizace se zabývá tím, co máte povoleno dělat. Ověřování je proto předpokladem pro autorizaci.
Identita jako alternativu k vytváření místního účtu podporuje externí zprostředkovatele přihlašování, jako je Facebook a Twitter. Relace uživatelů se zachovávají pomocí ověřování založeného na souborech cookie. Ve výchozím nastavení se soubor cookie vytvoří při přihlášení a při odhlášení se zničí.
Trvalost dat členství je zajištěna pomocí zvoleného úložiště dat a technologie přístupu k datům. Výchozí technologií přístupu k datům je O/RM (Object-Relational Mapper) s názvem Entity Framework (EF) Core. Výchozím úložištěm dat je SQL Server.
Podrobnosti interakcí s podkladovou databází jsou abstrahovány pomocí EF Core. EF Core tedy obecně umožňuje používat s Identity libovolné ze svých poskytovatelů databází. Poskytovatelé databází jsou k dispozici pro SQL Server, SQLite a několik dalších úložišť dat. Flexibilita Identity navíc umožňuje použít technologii přístupu k datům podle vašeho výběru. Jednou z oblíbených alternativ je Dapper.
Následující schéma znázorňuje architekturu Identity použitou v tomto modulu:
V předchozím diagramu:
- Aplikace ASP.NET Core Razor Pages představuje webové uživatelské rozhraní, do kterého je v tomto modulu přidána podpora identit.
- Vrstva Správce identit obsahuje třídy použité z oboru názvů
Microsoft.AspNetCore.Identity
. Příkladem takových tříd explicitně použitých v tomto modulu jsouSignInManager<TUser>
aUserManager<TUser>
. - Vrstva Úložiště identit EF Core obsahuje třídy z oboru názvů
Microsoft.AspNetCore.Identity.EntityFrameworkCore
. Příkladem takové třídy explicitně použité v tomto modulu jeUserStore<TUser>
. - Poskytovatel databáze je knihovna specifická pro databázi, která přijímá SQL od poskytovatele EF Core (není na obrázku) a provádí ho.
EF Core používá funkci nazvanou migrace k přírůstkové aktualizaci schématu databáze, aby bylo synchronizované s datovým modelem aplikace. Po použití prvotní migrace EF Core se vytvoří pomocné databázové tabulky. Následující obrázek znázorňuje schémata pomocných tabulek:
Poznámka
Výše uvedený obrázek znázorňuje klíče a relace v databázi. Klíč je jeden a nekonečno (bokem 8) je mnoho. Databáze může mít typy relací 1:1, 1:N a M:N. Klíče jsou jedinečné. Diagram znázorňuje, jak se tato spojení vytvářejí a jaké jsou relace.
Souhrn
V této lekci jste se dozvěděli o architektuře ASP.NET Core Identity. V další lekci přidáte do existující aplikace výchozí implementaci ASP.NET Core Identity.