JWT::InvalidIssuerError on Decode JWT (OpenID Connect)

こんにちは:wave:!こんにちは、OpenID Connectプラグインについて質問があります。

DiscourseでID Uruguay(政府提供のOpenID Connect「プロバイダー」)を使用しようとしています。テストサーバーにサインアップし、必要なデータを受け取りました。

コールバックを除いて、すべてのフローは正常に機能しているように見えます。JWTで送信された発行者が、ディスカバリードキュメントのものと同じではないようです。
すでにサポートに連絡しましたが、彼らは基本的にDiscourse側のエラーだと言いました(私はそうは思いません)。

「期待される発行者」に別の値を追加することは可能ですか?

ディスカバリー ドキュメント: https://auth-testing.iduruguay.gub.uy/oidc/v1/.well-known/openid-configuration

ログ
OIDC Log: JWT を読み込みました

---
iss: https://auth-testing.iduruguay.gub.uy/oidc/v1
sub: '7630'
aud: '862271'
exp: 1656363519
iat: 1656362919
auth_time: 1656362918
amr:
- urn:iduruguay:am:password
acr: urn:iduruguay:nid:1
nonce: 94d556d732db0db8dff0e09a174c27f2943cfe1740845abf537ff768e96c8ddf
at_hash: eokMw_xDlqb6cXB-DkDA_A
pais_documento:
  codigo: uy
  nombre: Uruguay
tipo_documento:
  codigo: 68909
  nombre: C.I.
numero_documento: '54682086'
email: alexander.barrios@estudiante.ceibal.edu.uy
email_verified: true
name: Yanquis Alexander Barrios Espíndola
given_name: Yanquis Alexander
family_name: Barrios Espíndola
nickname: uy-ci-54682086
idp: Usuario gub.uy

(oidc) 認証エラー!jwt_decode_failed: JWT::InvalidIssuerError, 無効な発行者。期待値 ["https://auth-testing.iduruguay.gub.uy"]、受信値 https://auth-testing.iduruguay.gub.uy/oidc/v1


事前に感謝いたします!:hugs:

Hmm.

発見ドキュメントの場所から、発行者は https://auth-testing.iduruguay.gub.uy/oidc/v1 であると想定する必要があります。発見ドキュメントは、/.well-known/openid-configuration が追加された発行者であるためです。

次に、ドキュメント自体には issuer\t\"https://auth-testing.iduruguay.gub.uy\" と記載されています。

そして、OpenID Connect Discovery ドキュメント には次のように記載されています。

そして、最後の文の 2 つの要件が満たされていません。iss クレーム値は、構成を取得するために直接使用された発行者 URL と同一ですが、どちらも返された issuer 値と同一ではありません。

したがって、私の意見では、彼らは間違っており、あなたは正しいです。残念ながら、それはどこにも行きません。

「いいね!」 3

面白い事実ですね、知りませんでした :thinking:

これを報告し、あなたの回答にリンクしました。IDウルグアイのサポートからの返信を待ちます :sleeping:

現在、正しい発行者を持つpastebinを使用しています(いずれにせよ、テスト用でした)が、すべて正常に機能しているようです。サポートチームが本番モードでIDウルグアイに適用する前に、この詳細を解決できることを願っています。

「いいね!」 2

仕様によると、これは機能するはずなので驚いています。

さて、回答を得ましたが、彼らは「自分たちの側には問題がなく、広く使われている」という理由で修正してくれません :slight_smile:

ドキュメントにはJWTをチェックする方法が見当たらないので、それが「うまくいく」理由なのでしょうね :thinking:

ドキュメント (Google翻訳):
https://centroderecursos-agesic-gub-uy.translate.goog/web/seguridad/wiki/-/wiki/Main/ID+Uruguay+-+Integración+con+OpenID+Connect?_x_tr_sl=es&_x_tr_tl=en&_x_tr_hl=es&_x_tr_pto=wapp


ディスカバリー文書のために「プロキシ」を作成し、返される発行者を変更したところ、それも「うまくいく」ので、これを報告したところ、彼らは受け入れてくれました :slight_smile:

将来的に仕様に従っていないため失敗するのではないかと感じていますが、今のところは大丈夫です。

手伝ってくれたリチャード、ありがとう! :hugs:

「いいね!」 2

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.