2

次のアーキテクチャでスパイクに取り組んでいます。

[asp.net mvc クライアント] --> [カスタム ミドルウェアを使用した ID サーバー 3] --> [カスタム IdP]

スパイクは、よりオープンで標準ベースのアプローチが、1 つの目的のみを果たす別のカスタム ソリューションよりも優れていることを証明することです。

私が必要とする機能フローは次のようなものです。

  1. クライアントはユーザー検索を実行し、顧客 ID を取得します
  2. ユーザーは、その顧客 ID を提供する制限付きリソースを要求します。
  3. OpenId 接続パイプラインは、それらをカスタム IdP にリダイレクトします。
  4. カスタム IdP は、そのユーザーが認証されるために答える必要がある秘密の質問のページを提示します。
  5. 認証が行われ、ユーザーは idsvr3 を介してクライアントに戻され、制限されたリソースにアクセスできるようになります。

私の質問は - これは達成可能ですか? 状態はクライアント上で暗号化されており、事実上、暗号化できないと見なされる必要があります。クライアント、idsvr3 インスタンス、カスタム ミドルウェア、カスタム IdP のソース コードにアクセスできるので、誰もが思いつく魔法のトリックを実行できるはずです。

MVC クライアントで OpenIdConnect の最新の NuGet パッケージを使用しています。

4

2 に答える 2

0

私はこれを次のように管理しました:

  1. Global.asax.cs Application_EndRequest 内の応答を傍受し、識別子を追加する
  2. idsvr3 の認可エンドポイントへのリクエストでこの識別子を読み取る
  3. カスタム認証ミドルウェアが呼び出されるまで、すべての呼び出しでこのパラメーターをパディングします
  4. このパラメータをリダイレクト URL に追加する
于 2015-07-22T15:52:50.350 に答える