2009-03-19 12 views
0

1つのWCFサービスエンドポイントを複数の認証ストアに対して認証するように設定できますか? UserNameとPasswordが入力された場合はカスタムDBをチェックし、そうでない場合はWindows Authを試してください。複数の「ストア」を使用したWCFエンドポイント要求の認証

背景:私は、WCFサービスB.サービスBへのクライアントプロキシを注入されたWCFサービスAがサービスCなどに依存している可能性が

サービスAへのユーザー要求が入ってき

持っていますカスタムUserNamePasswordValidatorを使用して認証され、IAuthorizationPolicy.

の認証実装が使用され、認証が成功し、Aのサービス操作が呼び出された場合に、ClaimSetが認証されます。この操作は、注入されたプロキシ経由でサービスBを呼び出します。

サービスB要求は、Auth/Authzスタックを通過しますが、資格情報が設定されていないため失敗します。サービスAはサービスBと呼ばれているので、元の呼び出し元のユーザー名とパスワードを渡すことなく、承認が成功するようにします。

しかし、サービスBはユーザー名とパスワードでユーザーから直接呼び出すことができるため、両方の認証方法をサポートする必要があります。

+0

あなたのタイトルはあなたがwfcとwcfを書いた少しミスリーディングです – Peter

答えて

1

私はMicrosoftの接触からこの応答を取得するために管理するためにこのような障害である:

単一のエンドポイントに異なるセキュリティー・メカニズムを使用することはできません。認証機構はエンドポイント定義の一部であるため、それぞれに別個のバインディング構成が必要なため、必要なセキュリティー・プロトコルごとに別個のエンドポイントを公開する必要があります。

単一のエンドポイント上の複数のセキュリティモードは、.NET 4.0に付属しているはずのものです。

0

1つのエンドポイントに複数の資格証明タイプが存在することは確かです。それはGenevaフレームワークで追加されたかもしれないので、私はそれを調べます。 This articleには、STSが複数の資格情報タイプを認証していると記載されているため、STSなしでも通常のサービスでそれを行う方法があると仮定します。

認証に複数の「キー」を必要としたときに、カスタムのClientCredentialクラスを作成しました。

短い答えて申し訳ありませんが、私は仕事を得るために家を出る必要があるが...仕事はSO時間:)

関連する問題