<authentication> del elemento <clientCertificate>

Especifica los comportamientos de autenticación para los certificados de cliente utilizados por un servicio.

<configuración>
  <system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <serviceCredentials>
            <clientCertificate>
              <autenticación>

Sintaxis

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

Atributos y elementos

En las siguientes secciones se describen los atributos, los elementos secundarios y los elementos primarios

Atributos

Atributo Descripción
customCertificateValidatorType Cadena opcional. Tipo y ensamblado utilizados para validar un tipo personalizado. Se debe establecer este atributo cuando certificateValidationMode está establecido en Custom.
certificateValidationMode Enumeración opcional. Especifica uno de los modos usados para validar las credenciales. Este atributo es del tipo X509CertificateValidationMode. Si se establece en X509CertificateValidationMode.Custom, también debe proporcionarse un customCertificateValidator. De manera predeterminada, es X509CertificateValidationMode.ChainTrust.
includeWindowsGroups Opcional booleano. Especifica si los grupos de Windows están incluidos en el contexto de seguridad. Al establecer este atributo en true, se tiene un impacto de rendimiento y tiene como resultado una expansión de grupo completa. Establezca este atributo en false si no necesita establecer la lista de grupos a los que un usuario pertenece.
mapClientCertificateToWindowsAccount booleano. Especifica si el cliente puede estar asignado a una identidad de Windows utilizando el certificado. Active Directory debe estar habilitado para ello.
revocationMode Enumeración opcional. Uno de los modos utilizados para comprobar listas de certificados revocadas (RCL). El valor predeterminado es Online. Se omite este valor al usar la seguridad de transporte HTTP.
trustedStoreLocation Enumeración opcional. Una de las dos ubicaciones de almacenamiento del sistema: LocalMachine o CurrentUser. Se utiliza este valor cuando un certificado del servicio se negocia al cliente. La validación se realiza en el almacén Personas de confianza en la ubicación especificada. El valor predeterminado es CurrentUser.

Atributo customCertificateValidatorType

Valor Descripción
String Especifica el nombre de tipo y el ensamblado y otros datos utilizados para buscar el tipo.

Atributo certificateValidationMode

Valor Descripción
Enumeración Uno de los valores siguientes: None, PeerTrust, ChainTrust, PeerOrChainTrust, Custom.

Para más información, consulte Trabajar con certificados.

Atributo revocationMode

Valor Descripción
Enumeración Uno de los valores siguientes: NoCheck, Online, Offline. Para más información, consulte Trabajar con certificados.

Atributo trustedStoreLocation

Valor Descripción
Enumeración Puede ser uno de los siguientes valores: LocalMachine o CurrentUser. El valor predeterminado es CurrentUser. Si la aplicación cliente se está ejecutando bajo una cuenta del sistema, entonces el certificado está normalmente bajo LocalMachine. Si la aplicación cliente se está ejecutando en una cuenta de usuario, entonces el certificado se encuentra normalmente en CurrentUser.

Elementos secundarios

Ninguno.

Elementos primarios

Elemento Descripción
<clientCertificate> Define un certificado X.509 que se usa para autenticar un cliente en un servicio.

Comentarios

El elemento <authentication> corresponde a la clase X509ClientCertificateAuthentication. Le permite personalizar cómo se autentican los clientes. Puede establecer el atributo certificateValidationMode en None, ChainTrust, PeerOrChainTrust, PeerTrust o Custom. De manera predeterminada, el nivel está establecido en ChainTrust, que especifica que cada certificado se debe encontrar en una jerarquía de certificados que finalizan en una entidad de certificación raíz en la parte superior de la cadena. Este es el modo más seguro. También puede establecer el valor en PeerOrChainTrust, que especifica que los certificados autoemitidos (confianza del mismo nivel) se aceptan, así como los certificados que están en una cadena de confianza. Se utiliza este valor cuando se desarrollan y depuran clientes y servicios porque los certificados autoemitidos no necesitan adquirirse desde una autoridad de confianza. Al implementar un cliente, utilice en su lugar el valor ChainTrust.

También puede establecer el valor en Custom. Cuando se establezca en el valor Custom, también debe establecer el atributo customCertificateValidatorType en un ensamblado y tipo utilizados para validar el certificado. Para crear su propio validador personalizado, debe heredar a partir de la clase X509CertificateValidator abstracta. Para más información, consulte el artículo sobre cómo crear un servicio que emplee un validador de certificados personalizado.

Ejemplo

El código siguiente especifica un certificado X.509 y un tipo de validación personalizado en el 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>

Consulte también