1

WCFでC#、asp.netアプリケーションを使用しています。

クライアント証明書 ( Client.pfx ) を作成し、現在のユーザーの下で自分のマシンにインストールしました。次に、WCF ホスト マシンにサーバー証明書 ( Server.pfx ) を作成してインストールしました。ここで、クライアント証明書とサーバー証明書の両方を照合して、クライアントから認証する必要があります。一致する場合は、WCF 内のメソッドへのアクセスを許可する必要があります。これを達成する方法は?

4

2 に答える 2

0

証明書認証を実行するためにコードを記述する必要はありません。これは構成によって処理できます。

この記事から:

http://msdn.microsoft.com/en-us/library/ff648360.aspx

証明書の場所を指定するには、いくつかの方法があります。この例では、サービスの証明書ストアを使用しています。

<behaviors>
  <serviceBehaviors>
    <behavior name="ServiceBehavior">
       <serviceMetadata httpGetEnabled="true" />
       <serviceDebug includeExceptionDetailInFaults="false" />
       <serviceCredentials>
           <serviceCertificate findValue="CN=tempCertServer" />
       </serviceCredentials>
    </behavior>
  </serviceBehaviors>

そして、これは構成ファイルで直接エンコードされた証明書を使用しています:

<system.serviceModel>
    <behaviors>
        <endpointBehaviors>
            <behavior name="NewBehavior">
                <clientCredentials>
                    <clientCertificate findValue="CN=tempCertClient"/>
                </clientCredentials>
            </behavior>
        </endpointBehaviors>
    </behaviors>
    ...
    <client>
        <endpoint address="http://<<service address>>"
            behaviorConfiguration="NewBehavior" binding="wsHttpBinding"
            bindingConfiguration="wsHttpEnpoint1" contract="ServiceReference1.IService"
            name="wsHttpEndpoint">
            <identity>
                <certificate encodedValue="<<Encode Value>>" />
            </identity>
        </endpoint>
    </client>
</system.serviceModel>
于 2013-07-19T12:20:50.763 に答える
0

Praveen さんが話しているのは、クライアント証明書認証です。これについては多くのことが書かれていますが、クライアント証明書認証を使用する場合、基本的に 2 つの認証オプションがあります。

1 つは ChainTrust と呼ばれます。これは、クライアント証明書がホストで見つかった証明書を認証局 (CA) ベースとして持つことを意味します。

もう 1 つのオプションは PeerTrust と呼ばれ、クライアント認証証明書のコピーがホスト上の LocalMachine\TrustedPeople ストア内にあることを意味します。

または、PeerOrChainTrust を使用することもできます。これは、チェーンまたはピアの信頼が true の場合、クライアントが許可されることを意味します。

これは非常に大きなトピックです。この小さなフォーラムには大きすぎますが、ここから始めるのが良いでしょう:

ここにリンクがあります。http://msdn.microsoft.com/en-us/library/ff650785.aspx

于 2013-07-19T12:24:20.583 に答える