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