2011-06-27 13 views
1

同じWindowsサーバー上でホストされているトランスポートセキュリティ相互証明書認証を使用するWsHttpBindingを使用する2つのWCFサービスがあります。 1つのWCFサービスにアクセスできるクライアントは、他のWCFサービスにアクセスできません。私はWindowsホスト上でクライアント証明書を設定するための助けが必要です。クライアント証明書は信頼できるCAによって署名され、中間およびルート証明書チェーンは既にサーバーにインストールされています。サービスは自動的に信頼チェーンに依存しており、クライアントにサービスにアクセスさせる前にサーバーにインストールされている実際のクライアント証明書は必要ありません。これは私が望む動作ではありません。誰かが明示的に1つのサービスにアクセスできるようにするために、これらのクライアント証明書をどのように設定する必要があるのか​​教えてください。WCF WsHttpBinding証明書トランスポートセキュリティ - Windows証明書の設定

ありがとうございました。

答えて

1

これは証明書自体とは関係ありません。相互認証を使用する場合、認証証明書はクライアントの認証にのみ使用され、認証はアプリケーション外で行われます(これはカスタム証明書検証ツールを作成できるメッセージセキュリティとは異なります)。証明書が信頼されると、クライアントは認証用の証明書を使用してサーバー上のすべてのものに対して自動的に認証されます。

認証を求めるのは、認証されたクライアントがサービスで行うことを定義するステップです。 role based securityを使用して認可ロジックをサービスにハードコードするか、または2つのカスタムServiceAuthorizationManagerを実装して、それぞれを単一のサービスに割り当てることができます。

+0

答えladislavに感謝します。だから私はコードを書く必要があるように見えるために、希望の証明書へのアクセスを制限する。その場合、SAMを作成し、証明書の拇印に基づいて許可されたクライアントを指定するローカル設定を行う予定です。実行時に認証されたクライアント証明書の拇印を判断する正しい方法は何ですか? – shermoid

+0

あなたは証明書信頼リスト(CTL)に精通していますか?結果を達成するためにCTLを設定することができますか? – shermoid

+0

これは、 'set.FindClaims(ClaimTypes.Thumbprint、Rights.Identity)'のようなものを使用する 'ClaimSet'になければなりません。証明書の拇印ですべてのクレームを取得する必要があります。 –

関連する問題