Поделиться через


<certificate> элемента <clientCertificate>

Указывает сертификат X.509, используемый для подписания и шифрования сообщений.

Иерархия схемы

<system.serviceModel>
  <варианты поведения>
    <serviceBehaviors>
      <behavior> для <serviceBehaviors>
        <serviceCredentials>
          <clientCertificate> для <serviceCredentials>
            <certificate> элемента <clientCertificate>

Синтаксис

                <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

Задает расположение хранилища сертификатов Х.509, которое клиент использует для проверки сертификата сервера. Допустимы следующие значения:

  • LocalMachine: хранилище сертификатов, назначенное локальному компьютеру.

  • CurrentUser: хранилище сертификатов, назначенное текущему пользователю.

Значение по умолчанию — LocalMachine.

storeName

Задает имя открываемого хранилища сертификатов X.509. Допустимы следующие значения:

  • AddressBook: хранилище сертификатов для других пользователей.

  • AuthRoot: хранилище сертификатов для сторонних центров сертификации.

  • CertificationAuthority: хранилище сертификатов для промежуточных центров сертификации (ЦС).

  • Disallowed: хранилище сертификатов для отозванных сертификатов.

  • My: хранилище сертификатов для личных сертификатов.

  • Root: хранилище сертификатов для доверенных корневых центров сертификации.

  • TrustedPeople: хранилище сертификатов для непосредственно доверенных лиц и ресурсов.

  • TrustedPublisher: хранилище сертификатов для непосредственно доверенных издателей.

Значение по умолчанию — My.

X509FindType

Определяет тип поиска сертификата X.509. Допустимы следующие значения:

  • FindByThumbPrint

  • FindBySubjectName

  • FindBySubjectDistinguishedName

  • FindByIssuerName

  • FindByIssuerDistinguishedName

  • FindBySerialNumber

  • FindByTimeValid

  • FindByTimeNotYetValid

  • FindByTemplateName

  • FindByApplicationPolicy

  • FindByCertificatePolicy

  • FindByExtension

  • FindByKeyUsage

  • FindBySubjectKeyIdentifier

Тип, указанный в атрибуте findValue, должен отвечать требованиям заданного значения X509FindType.

Значение по умолчанию — FindBySubjectDistinguishedName.

Дочерние элементы

Нет.

Родительские элементы

Элемент Описание

<clientCertificate> для <serviceCredentials>

Замечания

Элемент <certificate> используется в случаях, когда служба должна заранее получить клиентский сертификат для безопасного обмена данными с клиентом. Это характерно для дуплексного обмена данными. В более распространенном варианте «запрос/отклик» клиент включает сертификат в запрос, который используется службой для шифрования и подписания отклика. Тем не менее при дуплексном обмене данными служба не получает запроса от клиента, и ей, таким образом, необходим сертификат клиента заранее, чтобы обеспечить защиту сообщения, отправляемого клиенту. Следовательно, необходимо получить сертификат клиента при согласовании вне диапазона и указать сертификат с помощью этого элемента. Дополнительные сведения о дуплексных службах см. в разделе How to: Create a Duplex Contract.

Пример

В следующем примере кода демонстрируется поиск соответствующего сертификата 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>

См. также

Справочник

Certificate
Certificate
X509ClientCertificateCredentialsElement

Другие ресурсы

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