Azure / Azure/data-api-builder
[Bug]: Token Validation Failed
- Vorherrschende Sprache
- C#
- Sterne
- 1.5k
- Forks
- 370
- Ø Merge
- 3 T. 22 Std.
- Gemergte PRs (30 T.)
- 9
Beschreibung
### What happened?
Using the JWT authentication method results in a token validation failure. The signing keys were not getting pulled from the identity provider. Resulting in a IDX10500 error. Doing some digging, I found this discussion in the Duende Identity Server github repo. https://github.com/DuendeSoftware/Support/issues/1197.
The issue was that the following two nuget packages had mismatched versions, Microsoft.IdentityModel.JsonWebTokens and Microsoft.IdentityModel.Protocols.OpenIdConnect. Microsoft.IdentityModel.JsonWebTokens was on version 7.5.0 and Microsoft.IdentityModel.Protocols.OpenIdConnect was at version 6.35.0. Updating Microsoft.IdentityModel.Protocols.OpenIdConnect to 7.5.0 and rebuilding the projects resulted in successful authentication.
Suggested solution, is to make sure that these two packages remain at the same version.
### Version
Microsoft.DataApiBuilder 1.1.7+74ea6c5f37f8629fd7f8b13fc56027bf0bf0a93a
### What database are you using?
Azure SQL
### What hosting model are you using?
Local (including CLI), Container Apps
### Which API approach are you accessing DAB through?
REST
### Relevant log output
```Text
PS C:\...\src>dotnet list package --include-transitive | sls "Microsoft.IdentityModel|System.IdentityModel
>> "
> Microsoft.IdentityModel.Abstractions 7.5.0
> Microsoft.IdentityModel.JsonWebTokens 7.5.0
> Microsoft.IdentityModel.Logging 7.5.0
> Microsoft.IdentityModel.Protocols 6.35.0
> Microsoft.IdentityModel.Protocols.OpenIdConnect 6.35.0
> Microsoft.IdentityModel.Tokens 7.5.0
> Microsoft.IdentityModel.Abstractions 7.5.0
> Microsoft.IdentityModel.JsonWebTokens 7.5.0
> Microsoft.IdentityModel.Logging 7.5.0
> Microsoft.IdentityModel.Protocols 7.1.2
> Microsoft.IdentityModel.Protocols.OpenIdConnect 7.1.2
> Microsoft.IdentityModel.Tokens 7.5.0
> Microsoft.IdentityModel.Abstractions 7.5.0
> Microsoft.IdentityModel.JsonWebTokens 7.5.0
> Microsoft.IdentityModel.Logging 7.5.0
> Microsoft.IdentityModel.Protocols 6.35.0
> Microsoft.IdentityModel.Protocols.OpenIdConnect 6.35.0
> Microsoft.IdentityModel.Tokens 7.5.0
> Microsoft.IdentityModel.Abstractions 7.5.0
> Microsoft.IdentityModel.JsonWebTokens 7.5.0
> Microsoft.IdentityModel.Logging 7.5.0
> Microsoft.IdentityModel.Protocols 7.1.2
> Microsoft.IdentityModel.Protocols.OpenIdConnect 7.1.2
> Microsoft.IdentityModel.Tokens 7.5.0
> Microsoft.IdentityModel.JsonWebTokens 7.5.0 7.5.0
> Microsoft.IdentityModel.Abstractions 7.5.0
> Microsoft.IdentityModel.Logging 7.5.0
> Microsoft.IdentityModel.Protocols 6.35.0
> Microsoft.IdentityModel.Protocols.OpenIdConnect 6.35.0
> Microsoft.IdentityModel.Tokens 7.5.0
> Microsoft.IdentityModel.JsonWebTokens 7.5.0 7.5.0
> Microsoft.IdentityModel.Abstractions 7.5.0
> Microsoft.IdentityModel.Logging 7.5.0
> Microsoft.IdentityModel.Protocols 6.35.0
> Microsoft.IdentityModel.Protocols.OpenIdConnect 6.35.0
> Microsoft.IdentityModel.Tokens 7.5.0
> Microsoft.IdentityModel.Abstractions 7.5.0
> Microsoft.IdentityModel.JsonWebTokens 7.5.0
> Microsoft.IdentityModel.Logging 7.5.0
> Microsoft.IdentityModel.Protocols 6.35.0
> Microsoft.IdentityModel.Protocols.OpenIdConnect 6.35.0
> Microsoft.IdentityModel.Tokens 7.5.0
> Microsoft.IdentityModel.Abstractions 7.5.0
> Microsoft.IdentityModel.JsonWebTokens 7.5.0
> Microsoft.IdentityModel.Logging 7.5.0
> Microsoft.IdentityModel.Protocols 6.35.0
> Microsoft.IdentityModel.Protocols.OpenIdConnect 6.35.0
> Microsoft.IdentityModel.Tokens 7.5.0
> Microsoft.IdentityModel.Abstractions 7.5.0
> Microsoft.IdentityModel.JsonWebTokens 7.5.0
> Microsoft.IdentityModel.Logging 7.5.0
> Microsoft.IdentityModel.Protocols 6.35.0
> Microsoft.IdentityModel.Protocols.OpenIdConnect 6.35.0
> Microsoft.IdentityModel.Tokens 7.5.0
> Microsoft.IdentityModel.Abstractions 7.5.0
> Microsoft.IdentityModel.JsonWebTokens 7.5.0
> Microsoft.IdentityModel.Logging 7.5.0
> Microsoft.IdentityModel.Protocols 6.35.0
> Microsoft.IdentityModel.Protocols.OpenIdConnect 6.35.0
> Microsoft.IdentityModel.Tokens 7.5.0
> Microsoft.IdentityModel.Abstractions 7.5.0
> Microsoft.IdentityModel.JsonWebTokens 7.5.0
> Microsoft.IdentityModel.Logging 7.5.0
> Microsoft.IdentityModel.Protocols 6.35.0
> Microsoft.IdentityModel.Protocols.OpenIdConnect 6.35.0
> Microsoft.IdentityModel.Tokens 7.5.0
> Microsoft.IdentityModel.Abstractions 7.5.0
> Microsoft.IdentityModel.JsonWebTokens 7.5.0
> Microsoft.IdentityModel.Logging 7.5.0
> Microsoft.IdentityModel.Protocols 7.1.2
> Microsoft.IdentityModel.Protocols.OpenIdConnect 7.1.2
> Microsoft.IdentityModel.Tokens 7.5.0
> Microsoft.IdentityModel.Abstractions 7.5.0
> Microsoft.IdentityModel.JsonWebTokens 7.5.0
> Microsoft.IdentityModel.Logging 7.5.0
> Microsoft.IdentityModel.Protocols 6.35.0
> Microsoft.IdentityModel.Protocols.OpenIdConnect 6.35.0
> Microsoft.IdentityModel.Tokens 7.5.0
> Microsoft.IdentityModel.Abstractions 7.5.0
> Microsoft.IdentityModel.JsonWebTokens 7.5.0
> Microsoft.IdentityModel.Logging 7.5.0
> Microsoft.IdentityModel.Protocols 7.1.2
> Microsoft.IdentityModel.Protocols.OpenIdConnect 7.1.2
> Microsoft.IdentityModel.Tokens 7.5.0
> Microsoft.IdentityModel.Abstractions 7.5.0
> Microsoft.IdentityModel.JsonWebTokens 7.5.0
> Microsoft.IdentityModel.Logging 7.5.0
> Microsoft.IdentityModel.Protocols 6.35.0
> Microsoft.IdentityModel.Protocols.OpenIdConnect 6.35.0
> Microsoft.IdentityModel.Tokens 7.5.0
> Microsoft.IdentityModel.Abstractions 7.5.0
> Microsoft.IdentityModel.JsonWebTokens 7.5.0
> Microsoft.IdentityModel.Logging 7.5.0
> Microsoft.IdentityModel.Protocols 7.1.2
> Microsoft.IdentityModel.Protocols.OpenIdConnect 7.1.2
> Microsoft.IdentityModel.Tokens 7.5.0
```
### Code of Conduct
- [X] I agree to follow this project's Code of Conduct
Beitragsleitfaden
Rechercherichtung
Beginnen Sie damit, die Paketverweise des Projekts auf Microsoft.IdentityModel.JsonWebTokens und Microsoft.IdentityModel.Protocols.OpenIdConnect zu lokalisieren. Untersuchen Sie anschließend den durch `dotnet list package --include-transitive` angezeigten Abhängigkeitsgraphen. Stimmen Sie die relevanten Paketversionen aufeinander ab und überprüfen Sie, dass die JWT-Authentifizierung die Signaturschlüssel ohne IDX10500-Fehler abruft.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- azure, csharp, sql
- Bereich
- api, authentication, backend, databases
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 35/100