Azure / Azure/data-api-builder

[Bug]: Token Validation Failed

オープン
#2,313 コメント 0 件 リアクション 1 件 担当者 0 名 GitHub で見る
bug triage
主要言語
C#
スター
1.5k
フォーク
372
平均マージ
3日 22時間
マージ済み PR(30日)
9

説明

### 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

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

まず、プロジェクト内の Microsoft.IdentityModel.JsonWebTokens と Microsoft.IdentityModel.Protocols.OpenIdConnect のパッケージ参照を特定し、次に `dotnet list package --include-transitive` に表示される依存関係グラフを確認します。関連するパッケージのバージョンを揃え、JWT 認証が IDX10500 エラーなしで署名キーを取得できることを確認します。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
azure, csharp, sql
領域
api, authentication, backend, databases
issue の種類
バグ
難易度
3/5
見積もり時間
1〜2日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
35/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。