1

ASP.NET Web アプリケーションが WCF サービスと通信するための認証オプションは何ですか?

シナリオ:

  1. ユーザーは ASP.NET フォームにユーザー名とパスワードを入力します。
  2. ASP.NET は、ユーザーを認証するためにこれを WCF に渡す必要があります。
  3. 認証された場合、ユーザーは Web サイトでアクションを実行できます。各アクションでは、異なる WCF 操作にデータを送信する必要があります。WCF は、各呼び出しでユーザーが誰であるかを知る必要があります。

最も簡単な解決策は、ユーザー名とパスワードを ASP.NET セッション状態に格納することです。ただし、パスワードはサーバーのメモリに保存されるため、これは安全ではありません。

この WCF が ASP.NET に加えて別のクライアントによって消費される可能性があるため、ASP.NET "クライアント" をサービスに対して認証するために証明書を使用したくありません。

これまでに見た中で最も優れた提案は、Windows Identity Foundation (WIF) を使用することです。これには STS が必要なようです。MSDNによると、Microsoft は Visual Studio を使用して STS をセットアップすることを推奨していないようです。一部の環境では Active Directory が使用され、他の環境ではカスタム ユーザー ストアが使用される場合があるため、展開環境で STS が使用できるという保証はありません。カスタム ユーザー ストアに対して認証するようにカスタム STS をセットアップすることは可能ですか? これを行うためのドキュメントを見つけるのに苦労しています。

WIF を使用する以外に他のオプションはありますか? プライマリ WCF サービスに対する認証に使用できるトークンを返すカスタム WCF 認証サービスについてはどうでしょうか。

4

1 に答える 1

1

これを行う標準的な方法は、Microsoft の STS viz で WIF を使用することです。Active Directory フェデレーション サービス v2.0 (ADFS)。

Identity Serverなど、多数のカスタム STS が利用可能です。これは、SQL DB を属性ストアとして使用します。オープンソースなので、必要なものに適応できます。

独自のカスタム属性ストアを作成できます: AD FS 2.0 属性ストアの概要

TechNet WIF / WCF: WIF および WCF

于 2012-05-06T20:02:14.090 に答える