ASP.NET Core Identity Series
The most complete guide for ASP.NET Core Identity
Getting Started
Part 1 -- Introduction to ASP.NET Core Identity library
- Describe ASP.NET Core Identity basic archirecture
- Explain the role and relationship between
Stores
andManagers
and how they function under the hood - Explain what
Claims
,ClaimsIdentity
andClaimsPrincipal
entities are and how they are related - Step by step guide on how to install and start using the core packages
- Associated repository branch: getting-started
Integrate Entity Framework
Part 2 -- Introduce
Microsoft.Extensions.Identity.Stores
andUserStoreBase
store implementations - Plug and configure Entity Framework Core with ASP.NET Core Identity and minimum configuration
- Explain Entity Framework different store implementations such as
UserOnlyStore
orUserStore
- Step by step guide for applying migrations and creating Identity's SQL Schema
- Discuss whether you should use ASP.NET Core Identity with Entity Framework
- Associated repository branch: entity-framework-integration
Deep Dive in authorization
Part 3 -- Explain
Claims-based
authorization by example - Explain
Role-based
authorization by example - Step by step guide for creating custom
Authorization Policy Provider
- Explain how authorization works under the hood
- Explain
Imperative authorization
by example - Associated repository branch: authorization
OAuth 2.0, OpenID Connect & IdentityServer
Part 4 -- Explain how
OAuth 2.0
works (terminology, grant types, tokens) - Explain how
OpenID Connect
works (terminology, tokens, flows) - Learn how to use
IdentityServer
for integratingOAuth 2.0
andOpenID Connect
- Associated repository branch: identity-server
External provider authentication & registration strategy
Part 5 -- Step by step guides for enabling external provider authentication
- Implement an external provider registration strategy
- Associated repository branch: external-authentication
Two-Factor Authentication
Part 6 -- Implement all Two Factor Authentication related tasks:
- Enable/Disable 2FA
- Configure authenticator app (QR Code included)
- Generate/Reset recovery tokens
- Reset authenticator app
- Explore the 2FA code and database schema
- Enhance the security level of 2FA by overriding the default implementation
- Encrypt authenticator key
- Encrypt recovery tokens
- Associated repository branch: two-factor-authentication
To be continued..
Installation instructions
The project is built with ASP.NET Core with Angular on the client side.
- Basic project setup:
cd ./AspNetCoreIdentity
where the package.json file existnpm install
dotnet restore
dotnet build
dotnet run
- Create the AspNetCoreIdentityDb database (skip if you want to run with In memory DB)
cd ./AspNetCoreIdentity
where the AspNetCoreIdentity.csproj existAdd-Migration initial_migration
ordotnet ef migrations add initial_migration
Update-Database
ordotnet ef database update
- Create the IdentityServerDb database (skip if you want to run with In memory DB)
- Follow the instructions
In case you don't want to use a real SQL Server Database when running the
AspNetCoreIdentity
project, simply set InMemoryProvider: true in the appsettings.json. This option will use in memory database
In case you don't want to use a real SQL Server Database when running the
IdentityServer
project simply set UseInMemoryStores: true in the relative appsettings.json This option will use in memory database
Follow chsakell's Blog
Microsoft Web Application Development | |||
β€οΈ π
Show me your support!
License
Code released under the MIT license.