私は、何かを行うメインサービスを持つアーキテクチャを設計しています(はい、まだ設計中です)。ユーザーの認証、データのインポート、結果の取得などを行います。それと対話する ASP MVC3 UI モジュールもあります。ここで重要なのは、将来的には SharePoint またはサービスを使用する単なる一括インポート アプリになる可能性があるため、注意が必要ですが、現時点では ASP MVC3 です。
私が決定するのに苦労しているのは、認証です。SqlProvider よりも MembershipProvider の方が好きです。私たちはM $の家なので、その道を進んで喜んでいます. 私がやりたいことは、UI にログインしているユーザーの認証と、実際のサービス呼び出しの認証を結びつけることです。大まかに「通常」と「管理者」の 2 種類のユーザーがあり、認証を処理する最もエレガントな方法を決めることはできません。
私は自分が持っているものが本当に好きです。WCF サービスによって提供される SqlProvider とサービス呼び出しへのアクセスもすべてそれに関連付けられています (現在、すべてのサービス呼び出しはサービス コントラクトごとではなく構成によってロックされているため、これを整理する必要があります)。
これに関する問題は、クリア テキストでユーザー名とパスワードを渡す必要があり、証明書の世界にいることを防ぐ必要があることです。ここでの私の調査では、dev 証明書は悪く、実際の証明書は高価であるため、真の場合はどちらもオプションではありません。
問題は次のとおりです。最良のアプローチは何ですか? i) 許可されていないものを呼び出すことができないように、各呼び出しで認証するサービスが必要です-可能な限りエレガントに処理されますii) ステートレスであるため、サービスをスケーリング/クラスター化できます。iii) クライアント側で制御できないため、置き換えることができます。
証明書に代わるものとして、何らかのトークンを返すサービスへのログイン呼び出しを考えました。このトークンは、他の呼び出しと共に渡され、カスタム プリンシパル プロバイダーを使用して認証されます。これの長所は、UI とサービスの間で Windows 暗号化を使用し、ロールの認証を一緒に渡すことができることです。私が避けたいのは、醜いように見えるので、各呼び出しのパラメーターに u/n の詳細を渡すことです。
助けてください!