<clientCertificate> 要素の <authentication>

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

configuration
  system.serviceModel
    behaviors
      <serviceBehaviors>
        behavior
          <serviceCredentials>
            <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 省略可能な列挙体です。 資格情報の検証に使用されるモードのいずれかを指定します。 この属性は X509CertificateValidationMode 型です。 X509CertificateValidationMode.Custom に設定されている場合、customCertificateValidator も指定する必要があります。 既定値は、X509CertificateValidationMode.ChainTrust です。
includeWindowsGroups 省略可能なブール。 セキュリティ コンテキストに Windows グループが含まれているかどうかを指定します。 この属性を true に設定すると、グループ全体が拡張されるため、パフォーマンスに影響が及びます。 ユーザーが属するグループの一覧を生成する必要がない場合は、この属性を false に設定します。
mapClientCertificateToWindowsAccount ブール型。 証明書を使用してクライアントを Windows ID にマップできるかどうかを指定します。 これを行うには、Active Directory が有効である必要があります。
revocationMode 省略可能な列挙体です。 証明書失効リスト (RCL) のチェックに使用されるモードのいずれかです。 既定では、 Onlineです。 この値は、HTTP トランスポート セキュリティを使用する場合は無視されます。
trustedStoreLocation 省略可能な列挙体です。 2 つのシステム格納場所 (LocalMachine または CurrentUser) のいずれかです。 この値は、サービス証明書がクライアントにネゴシエートされるときに使用されます。 指定された格納場所の [信頼されたユーザー] ストアに対して検証が実行されます。 既定では、 CurrentUserです。

customCertificateValidatorType 属性

[値] 説明
String タイプ名およびアセンブリと、タイプの検索に使用される他のデータを指定します。

certificateValidationMode 属性

[値] 説明
列挙 None、PeerTrust、ChainTrust、PeerOrChainTrust、Custom のいずれかの値にします。

詳細については、「証明書の使用」を参照してください。

revocationMode 属性

[値] 説明
列挙 NoCheck、Online、Offline のいずれかの値にします。 詳細については、「証明書の使用」を参照してください。

trustedStoreLocation 属性

[値] 説明
列挙 次のいずれかの値を指定できます。LocalMachine または CurrentUser。 既定では、 CurrentUserです。 クライアント アプリケーションがシステム アカウントで実行されている場合、証明書は通常 LocalMachine の下にあります。 クライアント アプリケーションがユーザー アカウントで実行されている場合、証明書は通常 CurrentUser の下にあります。

子要素

なし。

親要素

要素 説明
<clientCertificate> サービスに対するクライアントの認証に使用する X.509 証明書を定義します。

解説

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

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

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

関連項目