Part 1 - Getting Started
- Introduction to ASP.NET Core Identity library
- Describe ASP.NET Core Identity basic archirecture
- Explain the role and relationship between
StoresandManagersand how they function under the hood - Explain what
Claims,ClaimsIdentityandClaimsPrincipalentities 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.StoresandUserStoreBasestore implementations - Plug and configure Entity Framework Core with ASP.NET Core Identity and minimum configuration
- Explain Entity Framework different store implementations such as
UserOnlyStoreorUserStore - 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-basedauthorization by example - Explain
Role-basedauthorization by example - Step by step guide for creating custom
Authorization Policy Provider - Explain how authorization works under the hood
- Explain
Imperative authorizationby example - Associated repository branch: authorization
- Explain how
OAuth 2.0works (terminology, grant types, tokens) - Explain how
OpenID Connectworks (terminology, tokens, flows) - Learn how to use
IdentityServerfor integratingOAuth 2.0andOpenID 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 ./AspNetCoreIdentitywhere the package.json file existnpm installdotnet restoredotnet builddotnet run
- Create the AspNetCoreIdentityDb database (skip if you want to run with In memory DB)
cd ./AspNetCoreIdentitywhere the AspNetCoreIdentity.csproj existAdd-Migration initial_migrationordotnet ef migrations add initial_migrationUpdate-Databaseordotnet 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
AspNetCoreIdentityproject, 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
IdentityServerproject 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.



