ASP.NET Web アプリケーションが WCF サービスと通信するための認証オプションは何ですか?
シナリオ:
- ユーザーは ASP.NET フォームにユーザー名とパスワードを入力します。
- ASP.NET は、ユーザーを認証するためにこれを WCF に渡す必要があります。
- 認証された場合、ユーザーは 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 認証サービスについてはどうでしょうか。