Compartilhar via


<certificate> do elemento <clientCertificate>

Especifica um certificado X.509 usado para assinar e criptografar mensagens.

<configuration>
  <system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <serviceCredentials>
            <clientCertificate>
              <certificate>

Syntax

<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" />

Atributos e elementos

As seções a seguir descrevem os atributos, os elementos filho e os elementos pai

Atributos

Atributo Descrição
findValue Uma cadeia de caracteres que contém o valor a ser pesquisado no repositório de certificados X.509. O tipo contido no atributo deve atender aos requisitos do X509FindType especificado. O padrão é uma cadeia de caracteres vazia.
storeLocation Especifica o local do repositório de certificados X.509 que o cliente usa para validar o certificado do servidor. Os valores válidos incluem os seguintes:

- LocalMachine: o repositório de certificados atribuído ao computador local.
- CurrentUser: o repositório de certificados atribuído ao usuário atual.

O padrão é LocalMachine.
storeName Especifica o nome do repositório de certificados X.509 a ser aberto. Os valores válidos incluem os seguintes:

- AddressBook: o repositório de certificados X.509 para outros usuários.
- AuthRoot: o repositório de certificados X.509 para ACs (autoridades de certificação) de terceiros.
- CertificationAuthority: repositório de certificados para autoridades de certificação intermediárias (CAs).
- Disallowed: o repositório de certificados para certificados revogados.
- My: o repositório de certificados X.509 para certificados pessoais.
- Root: o repositório de certificados X.509 para ACs (autoridades de certificação) confiáveis.
- TrustedPeople: o repositório de certificados X.509 para recursos e pessoas diretamente confiáveis.
- TrustedPublisher: o repositório de certificados para editores diretamente confiáveis.

O padrão é My.
X509FindType Define o tipo de pesquisa de X.509 a ser executada. Os valores válidos incluem os seguintes:

- FindByThumbPrint
- FindBySubjectName
- FindBySubjectDistinguishedName
- FindByIssuerName
- FindByIssuerDistinguishedName
- FindBySerialNumber
- FindByTimeValid
- FindByTimeNotYetValid
- FindByTemplateName
- FindByApplicationPolicy
- FindByCertificatePolicy
- FindByExtension
- FindByKeyUsage
- FindBySubjectKeyIdentifier

O tipo contido no atributo findValue deve atender aos requisitos do X509FindType especificado.

O valor padrão é FindBySubjectDistinguishedName.

Elementos filho

Nenhum.

Elementos pai

Elemento Descrição
<clientCertificate>

Comentários

O elemento <certificate> é usado quando o serviço deve ter o certificado do cliente com antecedência para se comunicar com segurança com o cliente. Isso ocorre ao usar o padrão de comunicação duplex. No padrão mais comum de solicitação/resposta, o cliente inclui seu certificado na solicitação, e o serviço o usa para criptografar e assinar sua resposta de volta ao cliente. No padrão de comunicação duplex, no entanto, o serviço não tem uma solicitação do cliente e, portanto, precisa do certificado do cliente com antecedência para proteger a mensagem ao cliente. Assim, você deve obter o certificado do cliente em uma negociação fora de banda e especificar o certificado usando esse elemento. Para obter mais informações sobre serviços duplex, consulte Como criar um contrato duplex.

Exemplo

O código a seguir especifica como encontrar um certificado X.509 apropriado e um tipo de validação personalizado no elemento <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>

Confira também