Releases: AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet
Releases · AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet
8.0.0
8.0.0
CVE package updates
- See PR #2707 for details.
Breaking change:
Full list of breaking changes.
- A derived
ClaimsIdentitywhere claim retrieval is case-sensitive. The currentClaimsIdentity, in .NET, retrieves claims in a case-insensitive manner which is different than querying the underlyingSecurityToken. The newCaseSensitiveClaimsIdentityclass provides consistent retrieval logic withSecurityToken. Fallback to previous behavior via an AppContext switch. See PR #2700 for details. - Make
CollectionUtilities.IsNullOrEmptyinternal. If your code used this method, you now have to provide your own implementation. See issues #2651 and #1722 for details.
Overall improvements to the validation in IdentityModel:
- See design proposal #2711 for details, all work internal for now. Please comment in the GitHub issue and provide feedback there.
New Features:
- Allow users to provide a
StreamtoWriteinOIDCConfigurationSerializer. See PR #2698 for details.
Bug fixes:
- Remove dependency on
AadIssuerValidator.GetTenantIdFromTokeninValidateIssuerSigningKey, to only consider thetid. An AppContext switch enables fallbacking to the previous behavior, which should not be needed. See PR #2680 for details. - Continuation of #2637 and #2646. Add the metadata
authorization_details_types_supportedfrom RFC 9396 - OAuth 2.0 Rich Authorization Requests toOpenIdConnectConfiguration. - The class
OpenIdConnectPromptnow has thecreateprompt from Initiating User Registration via OpenID Connect 1.0
- The following grant types are now included in
OpenIdConnectGrantTypes:urn:ietf:params:oauth:grant-type:saml2-bearerfrom RFC 7522 - Security Assertion Markup Language (SAML) 2.0 Profile for OAuth 2.0 Client Authentication and Authorization Grants,urn:ietf:params:oauth:grant-type:jwt-bearerfrom RFC 7523 - JSON Web Token (JWT) Profile for OAuth 2.0 Client Authentication and Authorization Grants,urn:ietf:params:oauth:grant-type:device_codefrom RFC 8628 - OAuth 2.0 Device Authorization Grant,urn:ietf:params:oauth:grant-type:token-exchangefrom RFC 8693 - OAuth 2.0 Token Exchange,urn:openid:params:grant-type:cibafrom OpenID Connect Client-Initiated Backchannel Authentication Flow - Core 1.0 - Serialize byte arrays as base64 strings in Json tokens. This was the behavior in 6.x releases. See issue #2524 for details.
- When we added virtuals to abstract methods that threw in the base class, we then called those methods that were implemented in user derived classes. The user code would fault with a
NotImplementedException. Now a message is returned that the user can act on to fix the issue. See issue #1970.
Fundamentals
- Remove code that was used in target frameworks that got removed. See PR #2673 for details.
- Rename local variables for better readability. See PR #2674 for details.
- Refactor XML comments for improved clarity. See PR #2676, #2677, #2678, #2689 and #2703 for details.
- Fix flaky test. See issue #2683 for details.
- Made
ConfigurationManager.GetConfigurationAsynca virtual method. See PR #2661
8.0.0-preview1
8.0.0-preview1
Breaking changes:
- IdentityModel 8x no longer supports .net461, which has reached end of life and is no longer supported. See issue #2544 for details.
- Two IdentityModel extension dlls
Microsoft.IdentityModel.KeyVaultExtensionsandMicrosoft.IdentityModel.ManagedKeyVaultSecurityKeywere using ADAL, which is no longer supported . The affected packages have been removed, as the replacement is to use Microsoft.Identity.Web. See issue #2454 for details. AppContext.SetSwitchwhich were included in IdentityModel 7x, have been removed and are the default in IdentityModel 8x. The result is a more performant IdentityModel by default. See issue #2629 and https://aka.ms/IdentityModel8x for details.
7.6.2
7.6.1
7.6.1
New Features:
- Add missing metadata parameters to OpenIdConnectConfiguration. See issue #2498 for details.
Bug Fixes:
- Fix over-reporting of
IDX14100. See issue #2058 and PR #2618 for details. JwtRegisteredClaimNamesnow contains previously missing Standard OpenIdConnect claims. See issue #1598 for details.
Performance Improvements:
7.6.0
7.6.0
New Features:
- Update
JsonWebToken- extract and expose the method that reads the header/payload property values from the reader so it can be overridden in children classes to add any extra own logic. See issues #2581, #2583, and #2495 for details.
Bug Fixes:
- JWE header algorithm is now compliant to IANA document. See issue #2089 for details.
Performance Improvements:
- Reduce the number of internal array allocations that need to happen for each claim set, see PR #2596.
Fundamentals:
- Add an AOT compatibility check on each PR to ensure only AOT compatible code is checked-in. See PR #2598.
- Update perl scrip for OneBranch build. See PR #2602.
- Add langversion 12 to benchmark tests. See PR #2601.
- Removed unused build.cmd file. See PR #2605.
- Create CodeQL exclusions file. See PR #2609.
- Fix variable usage in AOT script. See PR #2610.
- Move
Microsoft.IdentityModel.Tokensdelegates to a new file. See PR #2606
7.5.2
7.5.2
Bug Fixes:
- Validate authentication tag length so a JWE with appended characters will not be considered a valid token. See issues #2201, #1641, PR #2569, and IDX10625 Wiki for details. By @kellyyangsong
Fundamentals:
- App Context Switches in Identity Model 7x are now documented here. By @kellyyangsong
Performance Improvements:
- In .NET 6 or greater, use a temporary buffer to reduce intermediate allocation in
VerifyRsa/VerifyECDsa. See PR #2589 for more details. By @eerhardt - Reduce allocations in
ValidateSignatureby using a collection expression instead ofnew List<SecurityKey> { key }, to optimize for the single element case. See PR #2586 for more details. By @eerhardt - Remove Task allocation in
AadIssuerValidator. See PR #2584 for more details. By @eerhardt
7.5.1
Performance Improvements:
- Use Base64.DecodeFromUtf8InPlace for base64 decode that saves 12% on token read time. Note that JsonWebToken no longer throws ArgumentOutOfRangeException and ArgumentException exceptions. See PR #2504. By @keegan-caruso.
Fundamentals:
- Moved token lifetime validation logic to an internal static class. See PR #2547. By @kellyyangsong.
Bug Fix:
- Contribution from @martinb69 to fix correct parsing of
UserInfoEndpoint. See issue #2548 for details.
7.5.0
New Features:
Supports the 1.1 version of the Microsoft Entra ID Endpoint #2503
What's Changed
Full Changelog: v7.4.1...7.5.0
7.4.1
7.4.1
Bug Fixes:
SamlSecurityTokenHandlerandSaml2SecurityTokenHandlernow can fetch configuration when validating SAML issuer and signature. See PR #2412JsonWebToken.ReadTokennow correctly checks Dot3 index in JWE. See PR #2501
Engineering Excellence:
- Remove reference to
Microsoft.IdentityModel.LogginginMicrosoft.IdentityModel.Protocols, which already depends on it viaMicrosoft.IdentityModel.Tokens. See PR #2508 - Adjust uppercase json serialization tests to fix an unreliable test method, add consistency to naming. See PR #2512
- Disable the 'restore' and 'build' steps of 'build and pack' in
build.sh, improving speed. See PR #2521
7.4.0
7.4.0
New Features:
- Introduced an injection point for external metadata management and adjusted the issuer Last Known Good (LKG) to maintain the state within the issuer validator. See PR #2480.
- Made an internal virtual method public, enabling users to provide signature providers. See PR #2497.
Performance Improvements:
- Added a new JsonWebToken constructor that accepts Memory for improved performance, along with enhancements to existing constructors. More information can be found in issue #2487 and in PR #2458.
Fundamentals:
- Resolved the issue of duplicated log messages in the source code and made IDX10506 log message more specific. For more details, refer to PR #2481.
- Enhanced Json serialization by ensuring the complete object is always read. This improvement can be found in PR #2491.