<autenticação> do elemento <clientCertificate>
Especifica os comportamentos de autenticação para certificados de cliente usados por um serviço.
<configuration>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceCredentials>
<clientCertificate>
<authentication>
Syntax
<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 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 modos usados para validar credenciais. Esse atributo é do tipo X509CertificateValidationMode. Se definido como X509CertificateValidationMode.Custom, também será necessário fornecer um customCertificateValidator . O padrão é X509CertificateValidationMode.ChainTrust. |
includeWindowsGroups | Booliano opcional. Especifica se os grupos do Windows estão incluídos no contexto de segurança. Configurar esse atributo para true afetará o desempenho porque resultará em uma expansão de grupo completo. Configure esse atributo para false se não for necessário estabelecer a lista de grupos aos quais um usuário pertence. |
mapClientCertificateToWindowsAccount | Booliano. Especifica se o cliente pode ser mapeado para uma identidade do Windows usando o certificado. O Active Directory deve ser habilitado para fazer isso. |
revocationMode | Enumeração opcional. Um dos modos usados para verificar se há uma RCL (lista de certificados revogada). O padrão é Online . Esse valor é ignorado ao usar a segurança do transporte HTTP. |
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. |
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 |
---|---|
<clientCertificate> | Define um certificado X.509 usado para autenticar um cliente em um serviço. |
Comentários
O elemento <authentication>
corresponde à classe X509ClientCertificateAuthentication. Ele permite que você personalize como os clientes são autenticados. Você pode definir o atributo certificateValidationMode
como None
, ChainTrust
, PeerOrChainTrust
, PeerTrust
ou Custom
. 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 raiz 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
. Para usar o valor Custom
, você também precisa definir o atributo customCertificateValidatorType
para um assembly e um tipo usados para validar o certificado. Para criar um 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.
Exemplo
O código a seguir especifica um certificado X.509 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>