<autenticação> do <ClientCertificate> Element
Especifica comportamentos de autenticação para certificados de cliente utilizados por um serviço.
<configuração>
<system.serviceModel>
<comportamentos>
<serviceBehaviors>
<comportamento>
<serviceCredentials>
<clientCertificate>
<autenticação>
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 secções seguintes descrevem atributos, elementos subordinados e elementos principais
Atributos
Atributo | Descrição |
---|---|
customCertificateValidatorType | Cadeia opcional. Um tipo e assemblagem utilizados para validar um tipo personalizado. Este atributo tem de ser definido quando certificateValidationMode estiver definido como Custom . |
certificateValidationMode | Enumeração opcional. Especifica um dos modos utilizados para validar credenciais. Este atributo é do X509CertificateValidationMode tipo . Se estiver definido como X509CertificateValidationMode.Custom, também tem de ser fornecido um customCertificateValidator . A predefinição é X509CertificateValidationMode.ChainTrust. |
includeWindowsGroups | Booleano opcional. Especifica se os grupos do Windows estão incluídos no contexto de segurança. Definir este atributo como true tem um impacto no desempenho, uma vez que resulta numa expansão completa do grupo. Defina este atributo como false se não precisar de estabelecer a lista de grupos a que um utilizador pertence. |
mapClientCertificateToWindowsAccount | Booleano. Especifica se o cliente pode ser mapeado para uma identidade do Windows com o certificado. O Active Directory tem de estar ativado para o fazer. |
revocationMode | Enumeração opcional. Um dos modos utilizados para verificar a existência de listas de certificados revogados (RCL). A predefinição é Online . Este valor é ignorado ao utilizar a segurança de transporte HTTP. |
trustedStoreLocation | Enumeração opcional. Uma das duas localizações do arquivo do sistema: LocalMachine ou CurrentUser . Este valor é utilizado quando um certificado de serviço é negociado com o cliente. A validação é efetuada no arquivo Pessoas Fidedigno na localização do arquivo especificada. A predefinição é CurrentUser . |
atributo customCertificateValidatorType
Valor | Description |
---|---|
String | Especifica o nome do tipo e assemblagem e outros dados utilizados para localizar o tipo. |
atributo certificateValidationMode
Valor | Descrição |
---|---|
Enumeração | Um dos seguintes valores: None, PeerTrust, ChainTrust, PeerOrChainTrust, Custom. Para obter mais informações, veja Trabalhar com Certificados. |
atributo revocationMode
Valor | Descrição |
---|---|
Enumeração | Um dos seguintes valores: NoCheck, Online, Offline. Para obter mais informações, veja Trabalhar com Certificados. |
atributo trustedStoreLocation
Valor | Descrição |
---|---|
Enumeração | Um dos seguintes valores: LocalMachine ou CurrentUser . A predefinição é CurrentUser . Se a aplicação cliente estiver em execução numa conta de sistema, o certificado está normalmente em LocalMachine . Se a aplicação cliente estiver em execução numa conta de utilizador, o certificado está normalmente em CurrentUser . |
Elementos Subordinados
Nenhum.
Elementos Principais
Elemento | Descrição |
---|---|
<clientCertificate> | Define um certificado X.509 utilizado para autenticar um cliente num serviço. |
Observações
O <authentication>
elemento corresponde à X509ClientCertificateAuthentication classe . Permite-lhe personalizar a forma como os clientes são autenticados. Pode definir o certificateValidationMode
atributo como None
, ChainTrust
, PeerOrChainTrust
, PeerTrust
ou Custom
. Por predefinição, o nível está definido como ChainTrust
, que especifica que cada certificado tem de ser encontrado numa hierarquia de certificados que termine numa autoridade de raiz na parte superior da cadeia. Este é o modo mais seguro. Também pode definir o valor como PeerOrChainTrust
, que especifica que os certificados auto-emitidos (confiança do elemento da rede) são aceites, bem como certificados que estão numa cadeia fidedigna. Este valor é utilizado ao desenvolver e depurar clientes e serviços porque os certificados auto-emitidos não precisam de ser comprados a uma autoridade fidedigna. Ao implementar um cliente, utilize o ChainTrust
valor como alternativa.
Também pode definir o valor como Custom
. Quando definido como o Custom
valor, também tem de definir o customCertificateValidatorType
atributo para uma assemblagem e tipo utilizados para validar o certificado. Para criar o seu próprio validador personalizado, tem de herdar da classe abstrata X509CertificateValidator . Para obter mais informações, veja How to: Create a Service that Employs a Custom Certificate Validator (Como: Criar um Serviço que Emprega um Validador de Certificado Personalizado).
Exemplo
O código seguinte especifica um certificado X.509 e um tipo de validação personalizado no <authentication>
elemento .
<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>