<проверка подлинности><элемента clientCertificate>

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

<Конфигурации>
  <system.serviceModel>
    <Поведения>
      <serviceBehaviors>
        <Поведение>
          <serviceCredentials>
            <clientCertificate>
              <Проверки подлинности>

Синтаксис

<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 Необязательная строка. Тип и сборка, используемые для проверки пользовательского типа. Этот атрибут должен быть задан, когда 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

Значение Описание
Строка Задает имя типа и сборку, а также другие данные, используемые для поиска типа.

Атрибут certificateValidationMode

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

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

Атрибут revocationMode

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

Атрибут trustedStoreLocation

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

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

Отсутствует.

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

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

Комментарии

Элемент <authentication> соответствует классу X509ClientCertificateAuthentication. Это дает возможность настраивать способ проверки подлинности клиентов. Для атрибута certificateValidationMode можно задать значение None, ChainTrust, PeerOrChainTrust, PeerTrust или Custom. По умолчанию для этого уровня задано ChainTrustзначение , которое указывает, что каждый сертификат должен находиться в иерархии сертификатов, заканчивающейся в корневом центре в верхней части цепочки. Это наиболее безопасный режим. Также можно установить значение PeerOrChainTrust, в этом случае будут приниматься как самостоятельно выдаваемые сертификаты (доверие одноранговой группы), так и сертификаты, которые находятся в цепи доверия. Данное значение используется при разработке и отладке клиентов и служб, так как самостоятельно выданные сертификаты не нужно приобретать у доверенного центра сертификации. При развертывании клиента вместо этого значения следует использовать значение ChainTrust.

Также можно установить значение Custom. При установке значения Custom необходимо также задать атрибут customCertificateValidatorType для сборки и тип, который используется при проверке сертификата. Для создания собственного пользовательского модуля проверки необходимо наследование от абстрактного класса X509CertificateValidator. Дополнительные сведения см. в разделе Практическое руководство. Создание службы, которая использует пользовательский проверяющий элемент управления сертификатами.

Пример

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

См. также раздел