Fix: Resolve Token Validation Failure by Upgrading IdentityModel Dependencies #284
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This pull request resolves a critical
SecurityTokenSignatureKeyNotFoundException
that occurs during JWT validation whenOkta.AspNetCore
andOkta.Sdk
are used together.The fix involves upgrading core Microsoft identity packages and refactoring the authentication logic to be compatible with the modern libraries.
What's Changed?
System.IdentityModel.Tokens.Jwt
andMicrosoft.IdentityModel.JsonWebTokens
to their latest versions to resolve dependency conflicts.IdentityModel.Client
package.UserInformationProvider
class has been updated to use the standardSystem.Net.Http.HttpClient
instead of the legacy client.AuthenticationBuilder
extension to correctly handle token validation with the newJsonWebToken
type, ensuring that signing keys are properly retrieved from the OIDC discovery document.Why This Change Was Needed
A dependency conflict between
Okta.AspNetCore
(which relied on IdentityModel v6) andOkta.Sdk
(which uses v7+) caused the token validation process to fail with the errorIDX10500: Signature validation failed
. The newer libraries return aJsonWebToken
instead of aJwtSecurityToken
, which the existingAddOktaWebApi
method could not handle. This change modernizes our authentication pipeline and makes it robust.Related Issues