Identity & access control for modern web applications & API using ASP.NET Core 2

Modern application design has changed quite a bit in recent years. “Mobile-first” and “cloud-ready” are the types of applications you are expected to develop. Also, to keep pace with these demands, Microsoft has revamped their complete web stack with ASP.NET Core to meet these architectural demands.

Needless to say, you also have to secure these apps.

Multi-platform, multi-client, and highly-mobile users bring a new set of challenges, so the approaches of the past are no longer appropriate for modern applications. This three-day workshop is your chance to dive into all things security related to these new technologies. Learn how to securely connect native and browser-based applications to your back-ends and integrate them with enterprise identity management systems as well as social identity providers and services.

This workshop covers everything you need to know to build modern and secure web, native & mobile applications. The foundation will be Microsoft’s latest technology stack, but will also include IdentityServer4, which is the officially recommended framework for building token services.

The class covers the following content and six hands-on labs.

Foundation & Authentication

  • Identity & Access Control in .NET Core
  • ASP.NET Core Security Framework
  • Claims-based Identity
  • Cookie-based Authentication
  • Social Logins (e.g. Google, Facebook, Twitter, etc.)
  • OpenID Connect
  • Data Protection
  • Authorization
  • Web Application Patterns
  • Single Sign On/Single Sign Off
  • Claims Transformation
  • Federation Gateway
  • Account & Identity Linking
  • Home Realm Discovery

Web APIs & Access Control

  • Securing APIs
  • Architecture & Scenarios
  • Token-based Authentication
  • OAuth 2.0
  • Clients
  • Scopes
  • Flows
  • Token lifetime management
  • Refresh tokens
  • OpenID Connect & OAuth 2.0 combined
  • Server to Server communication
  • Native & mobile Applications
  • SPAs
  • Custom credentials & token requests

IdentityServer Architecture & Scenarios

  • Setup
  • Configuration
  • Dependency Injection
  • Services
  • Customizations
  • Claims & tokens
  • User interface
  • Storage system
  • UI Workflows
  • Logging & eventing
  • Hosting & deployment

Hands-on Labs

The hands-on labs each take one to two hours and include step-by-step instructions and reference solutions.

ASP.NET Core Authentication and Authorization
In this lab you will add cookie-based authentication to the movie review website using the cookie authentication middleware and claims-based identity. Once users are authenticated, you will then also implement policy-based and resource-based authorization using the ASP.NET Core authorization framework.

External Authentication
In this lab you will remove the local authentication in the movie review application and change it to use external authentication. For the first part, you will use the OIDC protocol and use IdentityServer as the provider. For the second part, you will use social media accounts as the provider.

Federation Gateway
In this lab you will consolidate all external authentication into a single authentication gateway. IdentityServer will act as this gateway. You will also implement single sign-out which allows the user to sign-out of both the movie web app, and IdentityServer.

Web APIs
In this lab the movie review logic has been split into two projects: one for the back-end movie review logic as a web API, and one for the front-end movie review UI as a web application. The web API will require access tokens to use its functionality, and the movie review web app will obtain access tokens and pass them to the web API. IdentityServer will be used to issue this access token to the movie review web application.

Mobile and Native client applications
In this lab the client application is a native, cross-platform console application. The pertinent steps in this lab will be the same if you’re building a Windows or macOS desktop application, and are no different than if you were to use a platform-specific UI framework to build your application (WinForms, WPF, MacApp, Cocoa, GTK#, etc).

JavaScript client applications
In this lab the movie review application has been rewritten as a pure JavaScript-based application. It won’t have as much functionality as the previous labs, but it will suffice to show how to obtain an access token and call a web API.

Dominick Baier

Dominick Baier

Dominick is an independent consultant specializing in identity and access control. He helps companies around the world design and implement authentication and authorization for their distributed web and native applications. He’s co-author of the popular OpenID Connect & OAuth 2.0 framework called IdentityServer, and he has written a couple of books including A Guide to Claims-Based Identity and Access Control. He’s also an experienced trainer, and a regular speaker at technical conferences around the world.

Follow Dominick on Twitter