次の方法で共有


<authentication> of <clientCertificate> 要素

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

<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" />

属性および要素

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

Attributes

特性 Description
customCertificateValidatorType 省略可能な文字列。 カスタム型の検証に使用される型とアセンブリ。 この属性は、 certificateValidationModeCustom に設定されている場合に設定する必要があります。
certificateValidationMode 省略可能な列挙型。 資格情報の検証に使用されるモードのいずれかを指定します。 この属性は X509CertificateValidationMode 型です。 X509CertificateValidationMode.Customに設定した場合は、customCertificateValidatorも指定する必要があります。 既定値は X509CertificateValidationMode.ChainTrustです。
includeWindowsGroups ブール値 (オプション)。 Windows グループをセキュリティ コンテキストに含めるかどうかを指定します。 この属性を true に設定すると、グループ全体が拡張されるため、パフォーマンスに影響します。 ユーザーが属するグループの一覧を確立する必要がない場合は、この属性を false に設定します。
mapClientCertificateToWindowsAccount ブール値。 証明書を使用してクライアントを Windows ID にマップできるかどうかを指定します。 これを行うには、Active Directory を有効にする必要があります。
revocationMode 省略可能な列挙型。 失効した証明書リスト (RCL) のチェックに使用されるモードの 1 つ。 既定値は Onlineです。 HTTP トランスポート セキュリティを使用する場合、この値は無視されます。
trustedStoreLocation 省略可能な列挙型。 LocalMachineまたはCurrentUserの 2 つのシステム ストアの場所のいずれか。 この値は、サービス証明書がクライアントにネゴシエートされるときに使用されます。 検証は、指定されたストアの場所にある 信頼されたユーザー ストアに対して実行されます。 既定値は CurrentUserです。

customCertificateValidatorType 属性

価値 Description
型名とアセンブリ、および型の検索に使用されるその他のデータを指定します。

certificateValidationMode 属性

価値 Description
列挙 次のいずれかの値: None、PeerTrust、ChainTrust、PeerOrChainTrust、Custom。

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

revocationMode 属性

価値 Description
列挙 次のいずれかの値: NoCheck、Online、Offline。 詳細については、「 証明書の操作」を参照してください。

trustedStoreLocation 属性

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

子要素

なし。

親要素

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

注釈

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

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

Example

次のコードでは、X.509 証明書と、 <authentication> 要素のカスタム検証の種類を指定します。

<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>

こちらも参照ください