<clientCertificate> 要素の <authentication>

サービスで使用されるクライアント証明書の認証動作を指定します。

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

<authentication
customCertificateValidatorType="namespace.typeName, [,AssemblyName] [,Version=version number] [,Culture=culture] [,PublicKeyToken=token]"
certificateValidationMode="ChainTrust/None/PeerTrust/PeerOrChainTrust/Custom"
includeWindowsGroups="Boolean"
mapClientCertificateToWindowsAccount="Boolean"
revocationMode="NoCheck/Online/Offline"
trustedStoreLocation="CurrentUser/LocalMachine" 
/>

属性および要素

属性

属性 説明

customCertificateValidatorType

省略可能な文字列です。ユーザー設定タイプの検証に使用されるタイプおよびアセンブリです。certificateValidationModeCustom に設定されている場合は、この属性を設定する必要があります。

certificateValidationMode

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

includeWindowsGroups

省略可能なブール。セキュリティ コンテキストに Windows グループが含まれているかどうかを指定します。この属性を true に設定すると、グループ全体が拡張されるため、パフォーマンスに影響が及びます。ユーザーが属するグループの一覧を生成する必要がない場合は、この属性を false に設定します。

mapClientCertificateToWindowsAcccount

ブール値。証明書を使用してクライアントを Windows ID にマップできるかどうかを指定します。これを行うには、Active Directory が有効である必要があります。Active Directory の機能の使い方の詳細については、「http://technet2.microsoft.com/WindowsServer/en/Library/0602148e-1a8f-4917-bb01-6fd342aba7161033.mspx」を参照してください。

revocationMode

省略可能な列挙体です。証明書失効リスト (RCL) のチェックに使用されるモードのいずれかです。既定値は Online です。

trustedStoreLocation

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

子要素

なし。

親要素

要素 説明

<serviceCredentials> の <clientCertificate>

サービスに対するクライアントの認証に使用される X.509 証明書を定義します。

解説

<authentication> 要素は、X509ClientCertificateAuthentication クラスに対応します。この要素を使用すると、クライアントを認証する方法をカスタマイズできます。certificateValidationMode 属性は、NoneChainTrustPeerOrChainTrustPeerTrust、または Custom に設定できます。既定のレベルは ChainTrust に設定され、チェーンの最上位のルート証明機関で終了する証明書の階層構造で各証明書を検索するよう指定します。これは最もセキュリティで保護されているモードです。また、値を PeerOrChainTrust に設定することもできます。これは、信頼されたチェーン内の証明書と共に、自己発行された証明書 (ピア信頼) も受け入れるよう指定します。自己発行の資格情報は信頼された証明機関から購入したものである必要はないため、この値はクライアントとサービスの開発およびデバッグに使用されます。クライアントを展開するときは、代わりに ChainTrust 値を使用します。

また、値を Custom に設定することもできます。Custom 値に設定する場合は、customCertificateValidatorType 属性を、証明書の検証に使用するアセンブリと型に設定する必要もあります。独自のカスタム検証を作成するには、抽象 X509CertificateValidator クラスを継承する必要があります。詳細については、「How To: Create a Service Employing a Custom Certificate Validator」を参照してください。

次のコードは、<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>

関連項目

リファレンス

X509ClientCertificateAuthentication
X509CertificateValidationMode
Authentication
Authentication
X509ClientCertificateAuthenticationElement

その他の技術情報

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