<clientCertificate> 要素の <certificate>

メッセージの署名と暗号化に使用される X.509 証明書を指定します。

スキーマの階層

<system.serviceModel>
  <behaviors>
    <serviceBehaviors>
      <serviceBehaviors> の <behavior>
        <serviceCredentials>
          <serviceCredentials> の <clientCertificate>
            <clientCertificate> 要素の <certificate>

構文

<certificate findValue = "String" 
storeLocation = "CurrentUser/LocalMachine"
storeName="AddressBook/AuthRoot/CertificateAuthority/Disallowed/My/Root/TrustedPeople/TrustedPublisher"
X509FindType="FindByThumbPrint/FindBySubjectName/FindBySubjectDistinguishedName/FindByIssuerName/FindByIssuerDistinguishedName/FindBySerialNumber/FindByTimeValid/FindByTimeNotYetValid/FindByTemplateName/FindByApplicationPolicy/FindByCertificatePolicy/FindByExtension/FindByKeyUsage/FindBySubjectKeyIdentifier"
/>

属性と要素

ここでは、属性、子要素、および親要素について説明します。

属性

属性 説明

findValue

X.509 証明書ストアで検索する値を含む文字列。属性に含まれている型は、指定された X509FindType の要件を満たしている必要があります。既定値は空の文字列です。

storeLocation

クライアントがサーバーの証明書の検証に使用する X.509 証明書ストアの場所を指定します。有効な値は次のとおりです。

  • LocalMachine: ローカル マシンに割り当てられた証明書ストア。

  • CurrentUser: 現在のユーザーに割り当てられた証明書ストア。

既定は LocalMachine です。

storeName

開く X.509 証明書ストアの名前を指定します。有効な値は次のとおりです。

  • AddressBook: 他のユーザー用の証明書ストア。

  • AuthRoot: サードパーティ証明機関 (CA) の証明書ストア。

  • CertificationAuthority: 中間証明機関 (CA) の証明書ストア。

  • Disallowed: 失効した証明書の証明書ストア。

  • My: 個人用証明書の証明書ストア。

  • Root: 信頼されたルート証明機関 (CA) の証明書ストア。

  • TrustedPeople: 直接信頼されたユーザーやリソースの証明書ストア。

  • TrustedPublisher: 直接信頼された発行者の証明書ストア。

既定は My です。

X509FindType

実行する X.509 検索の種類を定義します。有効な値は次のとおりです。

  • FindByThumbPrint

  • FindBySubjectName

  • FindBySubjectDistinguishedName

  • FindByIssuerName

  • FindByIssuerDistinguishedName

  • FindBySerialNumber

  • FindByTimeValid

  • FindByTimeNotYetValid

  • FindByTemplateName

  • FindByApplicationPolicy

  • FindByCertificatePolicy

  • FindByExtension

  • FindByKeyUsage

  • FindBySubjectKeyIdentifier

findValue 属性に含まれている型は、指定された X509FindType の要件を満たしている必要があります。

既定値は FindBySubjectDistinguishedName です。

子要素

なし。

親要素

要素 説明

<serviceCredentials> の <clientCertificate>

解説

<certificate> 要素は、サービスがクライアントと安全に通信するために、サービスが前もってクライアントの証明書を持っている必要がある場合に使用します。このような状況は、双方向通信パターンを使用する場合に生じます。より一般的な要求/応答パターンでは、クライアントは自身の証明書を要求に含め、サービスはそれを使用してクライアントへの応答を暗号化し、署名します。一方、双方向通信パターンでは、サービスにはクライアントからの要求が来ないので、クライアントの証明書をあらかじめ取得することで、クライアント宛のメッセージのセキュリティを保護する必要があります。このため、クライアントの証明書を帯域外のネゴシエーションで取得し、この要素を使用して証明書を指定する必要があります。双方向サービスの詳細については、「How to: Create a Duplex Contract」を参照してください。

次のコードは、<authentication> 要素の適切な X.509 証明書とカスタム検証タイプの検索方法を指定します。

<serviceBehaviors>
 <behavior name="myServiceBehavior">
  <clientCertificate>
   <certificate 
         findValue="www.cohowinery.com" 
         storeLocation="CurrentUser" 
         storeName="TrustedPeople"
         x509FindType="FindByIssuerName" />
   <authentication customCertificateValidatorType="MyTypes.Coho"
    certificateValidationMode="Custom" 
    revocationMode="Offline"
    includeWindowsGroups="false" 
    mapClientCertificateToWindowsAccount="true" />
  </clientCertificate>
 </behavior>
</serviceBehaviors>

参照

リファレンス

Certificate
Certificate
X509ClientCertificateCredentialsElement

その他のリソース

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