Sample project based on the blog post demonstrating how to build out an Implicit Grant OAuth flow utilizing OAuth2/OpenID Connect protocols implementing IdentityServer4 as our OpenID Connect Provider and then using it to authenticate an Angular SPA client to authorize access to an independent ASP.NET Core Web API.
- Visual Studio 2019 Community
- Visual Studio Code 1.32.3
- .NET Core SDK 2.2.104
- Angular 7.2.9
- IdentityServer4 2.4.0
- SQL Server Express 2016 LocalDB
To run the demo:
-
Clone/Fork/Download this repository.
-
Create the database on your SQL Server Express LocalDB by using the dotnet cli to run the migrations from within the AuthServer.Infrastrucuture project folder.
AuthServer.Infrastructure> dotnet ef database update --context AppIdentityDbContext
AuthServer.Infrastructure> dotnet ef database update --context PersistedGrantDbContext
-
Install Angular CLI if necessary.
npm install -g @angular/cli
-
Install Angular SPA dependencies.
Spa\oauth-client> npm install
- Run the Angular CLI dev server to build and run the Angular app.
Spa\oauth-client> ng serve
- Important: This must be running on the default http://localhost:4200
- Build/Run the
AuthServer.sln
solution using your preferred method: Visual Studio, VSCode, dotnet CLI.
- Important: This must be running on http://localhost:5000
- Build/Run the
Resource.Api.sln
solution using your preferred method: Visual Studio, VSCode, dotnet CLI.
- Important: This must be running on http://localhost:5050
-
Point a browser to
http://localhost:4200
to access the Angular client. -
Use the Signup and Login functions to perform the authentication flow, then try and access the Top Secret Area to hit the protected ASP.NET Core Web API.