Duende IdentityServer v7.0 to v7.1

What’s New

IdentityServer v7.1 includes support for .NET 9 and many other smaller fixes and enhancements. Please see our release notes for complete details.

There are no schema changes needed for IdentityServer 7.1. There are two changes that may require small code changes for a minority of users:

  • IdentityModel renamed Duende.IdentityModel
  • ClientConfigurationStore now uses IConfigurationDbContext

Step 1 (Optional):

IdentityServer 7.1 supports both .NET 8 and 9. If you wish, you can update your .NET version as part of this upgrade.

For example in your project file:

<TargetFramework>net8.0</TargetFramework>

would change to:

<TargetFramework>net9.0</TargetFramework>

Any NuGet packages that you are using that target an older version of .NET should also be updated. For example, the version of Microsoft.EntityFrameworkCore.SqlServer or Microsoft.AspNetCore.Authentication.Google should be updated. Depending on what your IdentityServer host project is using, there may or may not be code changes based on those updated dependencies.

Step 2:

In your IdentityServer host project, update the version of the Duende.IdentityServer package. For example in your project file:

<PackageReference Include="Duende.IdentityServer" Version="7.0.8" />

would change to:

<PackageReference Include="Duende.IdentityServer" Version="7.1.0" />

Step 3: Breaking Changes

IdentityModel renamed Duende.IdentityModel

Our open source IdentityModel library has been renamed Duende.IdentityModel, and we now depend on Duende.IdentityModel instead of IdentityModel. Duende.IdentityModel is a drop-in replacement for IdentityModel with updated namespaces that include the Duende prefix. If you are using IdentityModel’s types in your IdentityServer implementation, you will need to update references from IdentityModel to Duende.IdentityModel (replace “using IdentityModel” with “using Duende.IdentityModel”)._

ClientConfigurationStore now uses IConfigurationDbContext

The ClientConfigurationStore in the Duende.Configuration.EntityFramework package now depends on IConfigurationDbContext instead of ConfigurationDbContext to allow for customization. If you have a customized store that derives from the default store, you may need to update your constructors. Note that this only affects the Entity Framework based implementation of the configuration store used by the dynamic client registration configuration API.

Step 4: Done!

That’s it. Of course, at this point you can and should test that your IdentityServer is updated and working properly.