次のアーキテクチャでスパイクに取り組んでいます。
[asp.net mvc クライアント] --> [カスタム ミドルウェアを使用した ID サーバー 3] --> [カスタム IdP]
スパイクは、よりオープンで標準ベースのアプローチが、1 つの目的のみを果たす別のカスタム ソリューションよりも優れていることを証明することです。
私が必要とする機能フローは次のようなものです。
- クライアントはユーザー検索を実行し、顧客 ID を取得します
- ユーザーは、その顧客 ID を提供する制限付きリソースを要求します。
- OpenId 接続パイプラインは、それらをカスタム IdP にリダイレクトします。
- カスタム IdP は、そのユーザーが認証されるために答える必要がある秘密の質問のページを提示します。
- 認証が行われ、ユーザーは idsvr3 を介してクライアントに戻され、制限されたリソースにアクセスできるようになります。
私の質問は - これは達成可能ですか? 状態はクライアント上で暗号化されており、事実上、暗号化できないと見なされる必要があります。クライアント、idsvr3 インスタンス、カスタム ミドルウェア、カスタム IdP のソース コードにアクセスできるので、誰もが思いつく魔法のトリックを実行できるはずです。
MVC クライアントで OpenIdConnect の最新の NuGet パッケージを使用しています。