Hosting
You add the Duende IdentityServer engine to any ASP.NET Core application by adding the relevant services to the dependency injection (DI) system and adding the middleware to the processing pipeline.
Dependency Injection System
Section titled “Dependency Injection System”You add the necessary services to the ASP.NET Core service provider by calling AddIdentityServer
at application startup:
var idsvrBuilder = builder.Services.AddIdentityServer(options =>{ // ...});
Many of the fundamental configuration settings can be set on the options. See the
IdentityServerOptions
reference for more details.
The builder object has a number of extension methods to add additional services to the ASP.NET Core service provider. You can see the full list in the reference section, but very commonly you start by adding the configuration stores for clients and resources, e.g.:
var idsvrBuilder = builder.Services.AddIdentityServer() .AddInMemoryClients(Config.Clients) .AddInMemoryIdentityResources(Config.IdentityResources) .AddInMemoryApiScopes(Config.ApiScopes)
The above is using the in-memory stores, but we also support EntityFramework-based implementations and custom stores. See here for more information.
Request Pipeline
Section titled “Request Pipeline”You need to add the Duende IdentityServer middleware to the pipeline by calling UseIdentityServer
.
Since ordering is important in the pipeline, you typically want to put the IdentityServer middleware after the static files, but before the UI framework like MVC.
This would be a very typical minimal pipeline:
app.UseStaticFiles();
app.UseRouting();app.UseIdentityServer();app.UseAuthorization();
app.MapDefaultControllerRoute();