Compartilhar via


Elemento <peerAuthentication>

Especifica as opções de autenticação para clientes ponto a ponto.

Para obter mais informações sobre a programação ponto a ponto, confira Rede ponto a ponto.

<configuration>
  <system.serviceModel>
    <behaviors>
      <endpointBehaviors>
        <behavior>
          <clientCredentials>
            <peer>
              <peerAuthentication>

Syntax

<peerAuthentication customCertificateValidatorType="namespace.typeName, [,AssemblyName] [,Version=version number] [,Culture=culture] [,PublicKeyToken=token]"
                    certificateValidationMode="ChainTrust/None/PeerTrust/PeerOrChainTrust/Custom"
                    revocationMode="NoCheck/Online/Offline"
                    trustedStoreLocation="CurrentUser/LocalMachine" />

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 opcional. Um tipo e um assembly usados para validar um tipo personalizado. Esse atributo deverá ser definido quando certificateValidationMode estiver definido como Custom.
certificateValidationMode Enumeração opcional. Especifica um dos três modos usados para validar credenciais. Se definido como Custom, também será necessário fornecer um customCertificateValidator. O padrão é ChainTrust.
revocationMode Enumeração opcional. Um dos modos usados para verificar se há uma RCL (lista de certificados) revogada. O padrão é Online.
trustedStoreLocation Enumeração opcional. 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 customCertificateValidatorType

Valor Descrição
String Especifica o assembly e o nome do tipo e outros dados usados para localizar o tipo. No mínimo, um namespace e um nome de tipo são necessários. As informações opcionais incluem: nome do assembly, número de versão, cultura e token de chave pública.

Atributo certificateValidationMode

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

Para saber mais, confira Como trabalhar com certificados.

Atributo revocationMode

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

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
<peer> Especifica uma credencial usada para autenticar o cliente em um serviço par.

Comentários

O elemento <authentication> corresponde à classe X509PeerCertificateAuthentication. Esse elemento especifica um validador, que é invocado durante a autenticação vizinho a vizinho na malha. Quando um novo par tentar estabelecer uma conexão de vizinho, ele passará sua própria credencial ao par que está respondendo. O validador do respondente será invocado para verificar a credencial da parte remota. Sempre que uma conexão de par for estabelecida na malha ambos os pares serão autenticados mutuamente, isso significa que os validadores em ambas as extremidades serão invocados.

Exemplo

O código a seguir define o modo de validação de certificado como PeerOrChainTrust.

<behaviors>
  <endpointBehaviors>
    <behavior name="MyEndpointBehavior">
      <clientCredentials>
        <peer>
          <certificate findValue="www.contoso.com"
                       storeLocation="LocalMachine"
                       x509FindType="FindByIssuerName" />
          <peerAuthentication certificateValidationMode="PeerOrChainTrust" />
          <messageSenderAuthentication certificateValidationMode="None" />
        </peer>
      </clientCredentials>
    </behavior>
  </endpointBehaviors>
</behaviors>

Confira também