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


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

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

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

<system.serviceModel>
  <варианты поведения>
    <serviceBehaviors>
      <behavior> для <serviceBehaviors>
        <serviceCredentials>
          <clientCertificate> для <serviceCredentials>
            <authentication> элемента <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

Необязательное перечисление. Задает один из режимов для проверки учетных данных. Это атрибут типа System.Servicemodel.Security.X509CertificateValidationMode. Если задано значение Custom, также необходимо предоставить customCertificateValidator. Значение по умолчанию — ChainTrust.

includeWindowsGroups

Необязательный логический атрибут. Указывает, включены ли группы Windows в контекст безопасности. Установка для этого атрибута значения true снижает производительность, поскольку приводит к расширению всей группы. Если нет необходимости устанавливать список групп, к которым принадлежит пользователь, установите для этого атрибута значение false.

mapClientCertificateToWindowsAcccount

Boolean. Указывает, может ли клиент сопоставляться с удостоверением Windows с помощью сертификата. Для этого необходимо включить службу Active Directory. Дополнительные сведения об использовании службы Active Directory см. в материалах по адресу.

revocationMode

Необязательное перечисление. Один из режимов, используемых для проверки списков отозванных сертификатов (RCL). Значение по умолчанию — Online.

trustedStoreLocation

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

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

Нет.

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

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

<clientCertificate> для <serviceCredentials>

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

Замечания

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

Также можно установить значение Custom. При установке значения Custom необходимо также задать атрибут customCertificateValidatorType для сборки и тип, который используется при проверке сертификата. Для создания собственного пользовательского модуля проверки необходимо наследование от абстрактного класса X509CertificateValidator. Дополнительные сведения см. в разделе How To: Create a Service Employing a Custom Certificate Validator.

Пример

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

См. также

Справочник

X509ClientCertificateAuthentication
X509CertificateValidationMode
Authentication
Authentication
X509ClientCertificateAuthenticationElement

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

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