Part 1 - Getting Started
- 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
Part 2 - Integrate Entity Framework
- 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
Part 3 - Deep Dive in authorization
- 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
- 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
- Step by step guides for enabling external provider authentication
- Implement an external provider registration strategy
- Associated repository branch: external-authentication
Part 6 - Two-Factor Authentication
- 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..
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
Microsoft Web Application Development | |||
Code released under the MIT license.