Skip to content

Releases: DuendeSoftware/foss

Duende.AspNetCore.Authentication.OAuth2Introspection 7.0.0

02 Dec 13:10
bfe1851

Choose a tag to compare

This is a major release which brings a variety of changes including support for .NET 10.

There are no changes from the Release Candidate.

Breaking Changes

Move to HybridCache in OAuth2Introspection

The use of IDistributedCache in this library has been replaced with the use of HybridCache. Part of this change was the removal of the EnableCaching option. Users who wish to not have introspection results cached should set the new SetCacheEntryFlags options to the value HybridCacheEntryFlags.DisableLocalCacheWrite | HybridCacheEntryFlags.DisableDistributedCacheWrite.

The primary motivation for this change was to disable an additional breaking change in the future. HybridCache does not currently support a mechanism for controlling the cache expiration in a factory method to fetch/create the cached data. This is problematic with introspection as RFC 7662 states: If the response contains the "exp" parameter (expiration), the response MUST NOT be cached beyond the time indicated therein. The requirement of the RFC prevents this library from benefitting from features of HybridCache such as stampede protection as the result of introspection needs to be known prior to interacting with the cache. This will be revisited in the future if and when HybridCache's API surface is updated to allow controlling a cache entry's cache duration inside a factory method.

Enhancements

Contributors

Thanks to the Duende.AspNetCore.Authentication.OAuth2Introspection community for your involvement with issues and pull requests!

Duende.IdentityModel.OidcClient 7.0.0

02 Dec 13:08
bfe1851

Choose a tag to compare

This is a major release which brings a variety of changes including support for .NET 10.

There are no changes from the Release Candidate.

Breaking Changes

  • Introduce IDPoPProofTokenFactory by @bhazen in a #267

Enhancements

Bug Fixes

Introduction of IDPoPProofTokenFactory

This is a breaking change in that DPoPProofTokenFactory was renamed to DefaultDPoPProofTokenFactory to make it clear it is the default implementation which is provided by the library.

Previously, there was no mechanism for customizing how DPoP proof tokens were created. This caused some issues, such as making it difficult to use signing keys which are stored in a platform crypto provider (see https://github.com/orgs/DuendeSoftware/discussions/163).

To accommodate such scenarios, an IDPoPProofTokenFactory was introduced to allow for complete customization. To make use of a custom implementation of this interface, use the new extension methods to configure DPoP:

var options = new OidcClientOptions();
var myCustomProofTokenFactory = new MyCustomProofTokenFactory();
options.ConfigureDPoP(myCustomProofTokenFactory);

Code which does not require a custom implementation of IDPoPProofTokenFactory should not need to be changed.

Contributors

Thanks to the Duende.IdentityModel.OidcClient community for your involvement with issues and pull requests!

Duende.IdentityModel 8.0.0

02 Dec 13:05
3cebfeb

Choose a tag to compare

This is a major release which brings a variety of changes including support for .NET 10.

There are no changes from the Release Candidate.

Breaking Changes

  • Remove Base64Url, using SDK/Runtime provided type instead. by @damianh in #249
  • Removed Obsolete DateTimeExtensions by @bhazen in #255
  • Make DynamicClientRegistrationDocument.Extensions Non Nullable by @bhazen in #258

Enhancements

Bug Fixes

Upgrading

Replacing Use of Base64Url

Code which was previously using the public static Base64Url class from this library, should be updated to use the Base64Url class found in the System.Buffers.Text namespace.

Uses of the Encode method should be replaced with the EncodeToString method and uses of the Decode method should be replaced with the DecodeFromChars method.

For example, code which previously looked like this:

var jsonString = Base64Url.Decode(payload);

should be updated to this:

using System.Buffers.Text;

var jsonString = Base64Url.DecodeFromChars(payload);

Replacing Use of DateTimeExtensions

Code which was previously using the public static DateTimeExtensions class from this library, should be updated to use DateTimeOffset.ToUnixTimeSeconds() instead.

For example. code which previously looked like this:

DateTime.UtcNow.ToEpochTime()

should be updated to this:

DateTimeOffset.UtcNow.ToUnixTimeSeconds()

Handling DynamicClientRegistrationDocument.Extensions Now Being Non-Nullable

Any code which was explicitly setting the Extensions property of the DynamicClientRegistrationDocument.Extensions to null, should be updated to instead set it to an empty dictionary.

Contributors

Thanks to the Duende.IdentityModel community for your involvement with issues and pull requests!

Duende Access Token Management 4.1.0

02 Dec 13:13
bfe1851

Choose a tag to compare

This is a major release which brings a variety of changes including support for .NET 10.

In addition to target the .NET 10 GA release over the RC2 release, there have been several enhancements since the last version was released:

Enhancements

Duende Access Token Management 3.3.0

02 Dec 13:12
2779fb0

Choose a tag to compare

This is a minor release which brings a variety of changes including support for .NET 10.

There are no changes from the Release Candidate.

Enhancements

Duende Access Token Management 4.1.0 Release Candidate 1

12 Nov 08:14
5f74c36

Choose a tag to compare

This is a release candidate which contains a new feature and support for .NET 10.

In addition to target the .NET 10 GA release over the RC2 release, there have been several enhancements since the last preview version was released:

Enhancements

Duende Access Token Management 3.3.0 Release Candidate 1

12 Nov 07:56
41968b8

Choose a tag to compare

This is a preview release of Duende Access Token Management 3.3.0 that includes support for .NET 10.

The only change from the most recent preview release is that this release candidate targets the released version of .NET 10 rather than .NET 10 RC2.

Enhancements

Duende.AspNetCore.Authentication.OAuth2Introspection 7.0.0 Release Candidate 1

11 Nov 21:58
0d32069

Choose a tag to compare

This is a release candidate which contains enhancements, a breaking change, and support for .NET 10.

The only change from the most recent preview release is that this release candidate targets the released version of .NET 10 rather than .NET 10 RC2.

Breaking Changes

Move to HybridCache in OAuth2Introspection

The use of IDistributedCache in this library has been replaced with the use of HybridCache. Part of this change was the removal of the EnableCaching option. Users who wish to not have introspection results cached should set the new SetCacheEntryFlags options to the value HybridCacheEntryFlags.DisableLocalCacheWrite | HybridCacheEntryFlags.DisableDistributedCacheWrite.

The primary motivation for this change was to disable an additional breaking change in the future. HybridCache does not currently support a mechanism for controlling the cache expiration in a factory method to fetch/create the cached data. This is problematic with introspection as RFC 7662 states: If the response contains the "exp" parameter (expiration), the response MUST NOT be cached beyond the time indicated therein. The requirement of the RFC prevents this library from benefitting from features of HybridCache such as stampede protection as the result of introspection needs to be known prior to interacting with the cache. This will be revisited in the future if and when HybridCache's API surface is updated to allow controlling a cache entry's cache duration inside a factory method.

Enhancements

Contributors

Thanks to the Duende.AspNetCore.Authentication.OAuth2Introspection community for your involvement with issues and pull requests!

Duende.IdentityModel.OidcClient 7.0.0 Release Candidate 1

11 Nov 21:49
0d32069

Choose a tag to compare

This is a release which contains a bug fix, a new feature/breaking change, and support for .NET 10.

The only change from the most recent preview release is that this release candidate targets the released version of .NET 10 rather than .NET 10 RC2.

Breaking Changes

  • Introduce IDPoPProofTokenFactory by @bhazen in a #267

Enhancements

Bug Fixes

Introduction of IDPoPProofTokenFactory

This is a breaking change in that DPoPProofTokenFactory was renamed to DefaultDPoPProofTokenFactory to make it clear it is the default implementation which is provided by the library.

Previously, there was no mechanism for customizing how DPoP proof tokens were created. This caused some issues, such as making it difficult to use signing keys which are stored in a platform crypto provider (see https://github.com/orgs/DuendeSoftware/discussions/163).

To accommodate such scenarios, an IDPoPProofTokenFactory was introduced to allow for complete customization. To make use of a custom implementation of this interface, use the new extension methods to configure DPoP:

var options = new OidcClientOptions();
var myCustomProofTokenFactory = new MyCustomProofTokenFactory();
options.ConfigureDPoP(myCustomProofTokenFactory);

Code which does not require a custom implementation of IDPoPProofTokenFactory should not need to be changed.

Contributors

Thanks to the Duende.IdentityModel.OidcClient community for your involvement with issues and pull requests!

Duende.IdentityModel 8.0.0 Release Candidate 1

11 Nov 21:23
9afd836

Choose a tag to compare

This is a release candidate which contains a mix of bug fixes, enhancements, a few breaking changes, and support for .NET 10.

The only change from the most recent preview release is that this release candidate targets the released version of .NET 10 rather than .NET 10 RC2.

Breaking Changes

  • Remove Base64Url, using SDK/Runtime provided type instead. by @damianh in #249
  • Removed Obsolete DateTimeExtensions by @bhazen in #255
  • Make DynamicClientRegistrationDocument.Extensions Non Nullable by @bhazen in #258

Enhancements

Bug Fixes

Upgrading

Replacing Use of Base64Url

Code which was previously using the public static Base64Url class from this library, should be updated to use the Base64Url class found in the System.Buffers.Text namespace.

Uses of the Encode method should be replaced with the EncodeToString method and uses of the Decode method should be replaced with the DecodeFromChars method.

For example, code which previously looked like this:

var jsonString = Base64Url.Decode(payload);

should be updated to this:

using System.Buffers.Text;

var jsonString = Base64Url.DecodeFromChars(payload);

Replacing Use of DateTimeExtensions

Code which was previously using the public static DateTimeExtensions class from this library, should be updated to use DateTimeOffset.ToUnixTimeSeconds() instead.

For example. code which previously looked like this:

DateTime.UtcNow.ToEpochTime()

should be updated to this:

DateTimeOffset.UtcNow.ToUnixTimeSeconds()

Handling DynamicClientRegistrationDocument.Extensions Now Being Non-Nullable

Any code which was explicitly setting the Extensions property of the DynamicClientRegistrationDocument.Extensions to null, should be updated to instead set it to an empty dictionary.

Contributors

Thanks to the Duende.IdentityModel community for your involvement with issues and pull requests!