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


<authentication> <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 Необязательная строка. Тип и сборка, используемые для проверки пользовательского типа. Этот атрибут должен быть задан, если certificateValidationMode задано значение Custom.
certificateValidationMode Необязательное перечисление. Указывает один из режимов, используемых для проверки учетных данных. Этот атрибут имеет X509CertificateValidationMode тип. Если задано значение X509CertificateValidationMode.Custom, необходимо также указать объект customCertificateValidator . Значение по умолчанию — X509CertificateValidationMode.ChainTrust.
includeWindowsGroups Необязательное логическое значение. Указывает, включены ли группы Windows в контекст безопасности. Установка этого атрибута true на производительность, так как она приводит к полному расширению группы. Задайте для этого атрибута значение false , если вам не нужно устанавливать список групп, к которому принадлежит пользователь.
mapClientCertificateToWindowsAccount Логическое значение. Указывает, можно ли сопоставить клиента с удостоверением Windows с помощью сертификата. Для этого необходимо включить Active Directory.
revocationMode Необязательное перечисление. Один из режимов, используемых для проверки отзыва списков сертификатов (RCL). Значение по умолчанию — Online. Это значение игнорируется при использовании безопасности транспорта HTTP.
TrustedStoreLocation Необязательное перечисление. Одно из двух расположений системного хранилища: LocalMachine или CurrentUser. Это значение используется при согласовании сертификата службы с клиентом. Проверка выполняется в хранилище доверенных людей в указанном расположении хранилища. Значение по умолчанию — CurrentUser.

Атрибут customCertificateValidatorType

Ценность Description
String Указывает имя типа и сборку и другие данные, используемые для поиска типа.

Атрибут certificateValidationMode

Ценность Description
Перечисление Одно из следующих значений: None, PeerTrust, ChainTrust, PeerOrChainTrust, Custom.

Дополнительные сведения см. в статье "Работа с сертификатами".

Атрибут отзываMode

Ценность Description
Перечисление Одно из следующих значений: NoCheck, Online, Offline. Дополнительные сведения см. в статье "Работа с сертификатами".

Атрибут trustedStoreLocation

Ценность Description
Перечисление Одно из следующих значений: LocalMachine или CurrentUser. Значение по умолчанию — CurrentUser. Если клиентское приложение выполняется под системной учетной записью, сертификат обычно находится в разделе LocalMachine. Если клиентское приложение выполняется под учетной записью пользователя, сертификат обычно находится в CurrentUser.

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

Нет.

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

Элемент Description
<клиентский сертификат> Определяет сертификат X.509, используемый для проверки подлинности клиента в службе.

Замечания

Элемент <authentication> соответствует классу X509ClientCertificateAuthentication . Он позволяет настроить способ проверки подлинности клиентов. Для атрибута certificateValidationMode можно задать значение None, ChainTrust, PeerOrChainTrust, PeerTrust или 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>

См. также