Compartilhar via


<autenticação> do elemento <serviceCertificate>

Especifica as configurações usadas pelo proxy do cliente para autenticar certificados de serviço que são obtidos usando negociação SSL/TLS.

<configuration>
  <system.serviceModel>
    <behaviors>
      <endpointBehaviors>
        <behavior>
          <clientCredentials>
            <serviceCertificate>
              <authentication>

Syntax

<authentication customCertificateValidatorType="String"
                certificateValidationMode="None/PeerTrust/ChainTrust/PeerOrChainTrust/Custom"
                revocationMode="NoCheck/Online/Offline"
                trustedStoreLocation="LocalMachine/CurrentUser" />

Atributos e elementos

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

Atributos

Atributo Descrição
customCertificateValidatorType Cadeia de caracteres. Um tipo e um assembly usados para validar um tipo personalizado.
certificateValidationMode Especifica um dos três modos usados para validar credenciais. Se definido como Custom, deve ser fornecido também um customCertificateValidator. O padrão é ChainTrust.
revocationMode Um dos modos usados para verificar se há uma RCL (lista de certificados) revogada. O padrão é Online.
trustedStoreLocation Um dos dois locais do repositório do sistema: LocalMachine ou CurrentUser. Esse valor é usado quando um certificado de serviço é negociado com o cliente. A validação é executada no repositório de Pessoas Confiáveis no local do repositório especificado. O padrão é CurrentUser.

Atributo customCertificateValidator

Valor Descrição
String Especifica o assembly e o nome do tipo e outros dados usados para localizar o tipo.

Atributo certificateValidationMode

Valor Descrição
Enumeração Um dos seguintes valores: None, PeerTrust, ChainTrust, PeerOrChainTrust, Custom.

Para saber mais, confira Como trabalhar com certificados.

Atributo revocationMode

Valor Descrição
Enumeração Um dos seguintes valores: NoCheck, Online, Offline.

Para saber mais, confira Como trabalhar com certificados.

Atributo trustedStoreLocation

Valor Descrição
Enumeração Um dos seguintes valores: LocalMachine ou CurrentUser. O padrão é CurrentUser. Se o aplicativo cliente estiver em execução em uma conta do sistema, o certificado normalmente estará em LocalMachine. Se o aplicativo cliente estiver em execução em uma conta de usuário, o certificado normalmente estará em CurrentUser.

Elementos filho

Nenhum.

Elementos pai

Elemento Descrição
<serviceCertificate> Especifica um certificado que será utilizado ao autenticar um serviço para o cliente.

Comentários

O atributo certificateValidationMode desse elemento de configuração especifica o nível de confiança usado para autenticar certificados. Por padrão, o nível é definido como ChainTrust, que especifica que cada certificado deve ser encontrado em uma hierarquia de certificados que termina em uma autoridade de certificação confiável na parte superior da cadeia. Este é o modo de maior segurança. Você também pode definir o valor como PeerOrChainTrust, que especifica que certificados autoemitidos (confiança de par) são aceitos, bem como certificados que estão em uma cadeia confiável. Esse valor é usado ao desenvolver e depurar clientes e serviços porque os certificados autoemitidos não precisam ser adquiridos de uma autoridade confiável. Ao implantar um cliente, use o valor ChainTrust em seu lugar. Também é possível definir o valor como Custom ou None. Para usar o valor Custom, você também deverá definir o atributo customCertificateValidator para um assembly e um tipo usados para validar o certificado. Para criar seu próprio validador personalizado, você deve herdar da classe abstrata x509CertificateValidator. Para mais informações, confira Como: criar um serviço que emprega um validador de certificado personalizado.

O atributo revocationMode especifica como os certificados são verificados para revogação. O padrão é online, o que indica que os certificados serão verificados automaticamente para revogação. Para saber mais, confira Como trabalhar com certificados.

Exemplo

O exemplo a seguir faz duas tarefas. Primeiro, especifica um certificado de serviço para o cliente usar ao se comunicar com pontos de extremidade cujo nome de domínio é www.contoso.com sobre o protocolo HTTP. Em segundo lugar, especifica o modo de revogação e o local do repositório usados durante a autenticação.

<serviceCertificate>
  <defaultCertificate findValue="www.contoso.com"
                      storeLocation="LocalMachine"
                      storeName="TrustedPeople"
                      x509FindType="FindByIssuerDistinguishedName" />
  <scopedCertificates>
     <add targetUri="http://www.contoso.com"
          findValue="www.contoso.com"
          storeLocation="LocalMachine"
          storeName="Root"
          x509FindType="FindByIssuerName" />
  </scopedCertificates>
  <authentication revocationMode="Online"
                  trustedStoreLocation="LocalMachine" />
</serviceCertificate>

Confira também