問題タブ [identitymodel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
890 参照

c# - 手動構成での AddOpenIdConnect - SecurityTokenSignatureKeyNotFoundException

既存のシステム

Identity Server 4 を使用して、Google、Azure、またはその他の外部プロバイダーとのシングル サインオン機能を問題なく提供しています。クライアントの詳細と権限 URL またはディスコ URL (例: .well-known/openid-configuration) を追加するだけで、すべてが期待どおりに機能します。

シナリオ

私たちの外部 ID プロバイダーの 1 つは、公開の Discovery Document の URL を提供することはできず、内部でのみ非公開にしたと述べています。次に、Json ファイル (その URL によって提供される正確な json テキストを含む) として提供されました。そのため、その json ファイルの値を使用して、 および を使用して、これらすべてのエンドポイント URL と設定を手動で設定しようとしていAddOpenIdConnectますOpenIdConnectConfiguration

Authorize リクエストの外部プロバイダーに正しくリダイレ​​クトされ、外部システムにサインインできます。しかし、リクエストが Idsrv4 に戻ってきたとき、id_token. を取得してSecurityTokenSignatureKeyNotFoundExceptionいます。設定しようとしましたJwksUriが、まだ運がありません。

Demo Identity サーバーを使用して同じ動作を再現することができました。以下を参照してください。

私たちが得ているエラーは

jwksUri: https://demo.identityserver.io/.well-known/openid-configuration/jwksを確認しようとしましたが、正しい子供 '3BA75FA392E4DAFAC2737B5B4644AA85' が表示されます。

そのため、構成を手動で設定すると、Idsrv4 がこれらのキーを正しくロードしていないように思えます。

ConfigurationManager次のように使用して手動で SigningKeys をロードすることをお勧めします。

ただし、そのエンドポイント URL にアクセスできないため、うまくいきません。

Idsrv に jwksUri からキーをロードさせるか、手動でキーを提供させる方法はありますか?

この署名キーの例外を解決する方法を提案していただけますか?

0 投票する
1 に答える
588 参照

asp.net-mvc - IdentityModel 対 Microsoft.IdentityModel 対 System.IdentityModel

OWIN を使用して従来の ASP.net MVC アプリケーションで OIDC/OAuth 認証と承認を実装しています。Microsoft の OIDC ミドルウェアでサポートされていない API 呼び出しについては、いくつかの選択肢があるようです。

  1. IdP に直接休憩リクエストを作成して作成できます。
  2. System.IdentityModel に含まれるクラスを使用できます。
  3. Microsoft.IdentityModel に含まれるクラスを使用できます。
  4. Dominick Baier と Brock Allen によって構築された IdentityModel をインストールして使用できます

他の選択肢もあるかもしれません。上記の中で、Dominick と Brock による IdentityModel は、最も成熟し、高度で、完全であるように見えます。

OWIN で従来の ASP.net MVC を使用している場合、どちらかの方法を優先する必要がありますか?それとも上記の方法を組み合わせて使用​​する必要がありますか? どちらか一方をどこで使用しますか?長所と短所は何ですか?

System.IdentityModel と Microsoft.IdentityModel を比較した古い記事がいくつかあることは知っていますが、2020 年のベストは何かにもっと興味があります。:-)

マーク