<certificate> элемента <clientCertificate>
Указывает сертификат X.509, используемый для подписания и шифрования сообщений.
<Конфигурации>
<system.serviceModel>
<Поведения>
<serviceBehaviors>
<Поведение>
<serviceCredentials>
<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: хранилище сертификатов для промежуточных центров сертификации (ЦС). — Запрещено: хранилище сертификатов для отозванных сертификатов. — My: хранилище сертификатов для личных сертификатов. — Корневой каталог: хранилище сертификатов для доверенных корневых центров сертификации (ЦС). — TrustedPeople: хранилище сертификатов для доверенных лиц и ресурсов. — TrustedPublisher: хранилище сертификатов для непосредственно доверенных издателей. Значение по умолчанию - My. |
X509FindType |
Определяет тип поиска сертификата X.509. Допустимые значения. — FindByThumbPrint — FindBySubjectName — FindBySubjectDistinguishedName — FindByIssuerName — FindByIssuerDistinguishedName — FindBySerialNumber — FindByTimeValid — FindByTimeNotYetValid — FindByTemplateName — FindByApplicationPolicy — FindByCertificatePolicy — FindByExtension - FindByKeyUsage — FindBySubjectKeyIdentifier Тип, указанный в атрибуте findValue , должен отвечать требованиям заданного значения X509FindType.Значение по умолчанию - FindBySubjectDistinguishedName. |
Дочерние элементы
Отсутствует.
Родительские элементы
Элемент | Описание |
---|---|
<clientCertificate> |
Комментарии
Элемент <certificate>
используется в случаях, когда служба должна заранее получить клиентский сертификат для безопасного обмена данными с клиентом. Это характерно для дуплексного обмена данными. В более распространенном варианте «запрос/отклик» клиент включает сертификат в запрос, который используется службой для шифрования и подписания отклика. Тем не менее при дуплексном обмене данными служба не получает запроса от клиента, и ей, таким образом, необходим сертификат клиента заранее, чтобы обеспечить защиту сообщения, отправляемого клиенту. Следовательно, необходимо получить сертификат клиента при согласовании вне диапазона и указать сертификат с помощью этого элемента. Дополнительные сведения о дуплексных службах см. в разделе Практическое руководство. Создание дуплексного контракта.
Пример
В следующем примере кода демонстрируется поиск соответствующего сертификата 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>