<serviceCertificate> 要素の <authentication>

SSL/TLS ネゴシエーションを使用して取得されたサービス証明書を認証するためにクライアント プロキシが使用する設定を指定します。

スキーマの階層

<system.serviceModel>
  <behaviors>
    <endpointBehaviors>
      <endpointBehaviors> の <behavior>
        <clientCredentials>
          <serviceCredentials> の <serviceCertificate>
            <serviceCertificate> 要素の <authentication>

構文

<authentication customCertificateValidatorType="String" certificateValidationMode="None/PeerTrust/ChainTrust/PeerOrChainTrust/Custom"
revocationMode="NoCheck/Online/Offline" 
trustedStoreLocation="LocalMachine/CurrentUser" />

属性と要素

以降のセクションでは、属性、子要素、および親要素について説明します。

属性

属性 説明

customCertificateValidatorType

文字列です。カスタム型の検証に使用される型およびアセンブリです。

certificateValidationMode

資格情報の検証に使用される 3 つのモードのいずれかを指定します。Custom に設定されている場合、customCertificateValidator も指定する必要があります。既定値は ChainTrust です。

revocationMode

証明書失効リスト (CRL) のチェックに使用されるモードのいずれかです。既定値は Online です。

trustedStoreLocation

2 つのシステム格納場所 (LocalMachine または CurrentUser) のいずれかです。この値は、サービス証明書がクライアントにネゴシエートされるときに使用されます。指定された格納場所の [信頼されたユーザー] ストアに対して検証が実行されます。既定値は CurrentUser です。

子要素

なし。

親要素

要素 説明

<clientCredentials> 要素の <serviceCertificate>

クライアントに対してサービスを認証する際に使用される証明書を指定します。

解説

この構成要素の certificateValidationMode 属性は、証明書の認証に使用される信頼レベルを指定します。既定のレベルは ChainTrust に設定され、チェーンの最上位の信頼された証明機関で終了する証明書の階層構造で各証明書を検索するよう指定します。これは最もセキュリティで保護されているモードです。また、値を PeerOrChainTrust に設定することもできます。これは、信頼されたチェーン内の証明書と共に、自己発行された証明書 (ピア信頼) も受け入れるよう指定します。自己発行の資格情報は信頼された証明機関から購入したものである必要はないため、この値はクライアントとサービスの開発およびデバッグに使用されます。クライアントを展開するときは、代わりに ChainTrust 値を使用します。値を Custom または None に設定することもできます。Custom 値を使用するには、customCertificateValidator 属性を証明書の検証に使用するアセンブリと型に設定することも必要です。独自のカスタム検証を作成するには、抽象 X509CertificateValidator クラスを継承する必要があります。詳細については、「How To: Create a Service Employing a Custom Certificate Validator」を参照してください。

revocationMode 属性は、証明書が失効していないかどうかをチェックする方法を指定します。既定値は online です。この場合、証明書が失効していないかどうかを自動的にチェックします。詳細については、「Working with Certificates」を参照してください。

次の例は、2 つのタスクを実行します。最初は、ドメイン名が www.contoso.com であるエンドポイントと HTTPプロトコルを経由して通信するときに使用するクライアントのサービス証明書を指定します。次に、認証中に使用される失効モードとストアの場所を指定します。

<serviceCertificate>
  <defaultCertificate findValue="www.contoso.com" 
                      storeLocation="LocalMachine"
                      storeName="TrustedPeople" 
                      x509FindType="FindByIssuerDistinguishedName" />
  <scopedCertificates>
     <add targetUri="https://www.contoso.com" 
          findValue="www.contoso.com" storeLocation="LocalMachine"
                  storeName="Root" x509FindType="FindByIssuerName" />
  </scopedCertificates>
  <authentication revocationMode="Online" 
   trustedStoreLocation="LocalMachine" />
</serviceCertificate>

参照

リファレンス

<clientCertificate> 要素の <authentication>
X509RecipientCertificateClientElement
X509CertificateRecipientClientCredential
Authentication
X509ServiceCertificateAuthentication

その他のリソース

Security Behaviors in WCF
Working with Certificates
How To: Create a Service Employing a Custom Certificate Validator
Securing Clients
Securing Services and Clients