Elemento <authentication> di <clientCertificate>
Specifica i comportamenti di autenticazione per i certificati client utilizzati da un servizio.
Gerarchia dello schema
<system.serviceModel>
<comportamenti>
<comportamentiServizio>
<behavior> di <serviceBehaviors>
<credenzialiServizio>
<clientCertificate> di <serviceCredentials>
Elemento <authentication> di <clientCertificate>
Sintassi
<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"
/>
Attributi ed elementi
Nelle sezioni seguenti vengono descritti attributi, elementi figlio ed elementi padre.
Attributi
Attributo | Descrizione |
---|---|
customCertificateValidatorType |
Stringa facoltativa. Un tipo e un assembly utilizzati per convalidare un tipo personalizzato. Questo attributo deve essere impostato quando certificateValidationMode è impostato su Custom. |
certificateValidationMode |
Enumerazione facoltativa. Specifica una delle modalità utilizzate per convalidare credenziali. L'attributo è di tipo System.Servicemodel.Security.X509CertificateValidationMode. Se impostato su Custom, è necessario fornire anche un customCertificateValidator. Il valore predefinito è ChainTrust. |
includeWindowsGroups |
Valore booleano facoltativo. Specifica se i gruppi di Windows sono inclusi nel contesto di sicurezza. L'impostazione di questo attributo su true determina un effetto sulle prestazioni in quanto comporta un'espansione completa del gruppo. Impostare questo attributo su false se non è necessario stabilire l'elenco di gruppi a cui appartiene un utente. |
mapClientCertificateToWindowsAcccount |
Valore booleano. Specifica se è possibile eseguire il mapping del client a un'identità di Windows utilizzando il certificato. A tal scopo è necessario che Active Directory sia attivato. Per ulteriori informazioni sull'utilizzo della funzionalità Active Directory, vedere http://technet2.microsoft.com/WindowsServer/en/Library/0602148e-1a8f-4917-bb01-6fd342aba7161033.mspx. |
revocationMode |
Enumerazione facoltativa. Una delle modalità utilizzate per verificare un elenco dei certificati revocati. Il valore predefinito è Online. |
trustedStoreLocation |
Enumerazione facoltativa. Uno di due percorsi dell'archivio del sistema: LocalMachine o CurrentUser. Questo valore viene utilizzato quando viene negoziato un certificato del servizio con il client. La convalida viene eseguita in base all'archivio Persone attendibili nel percorso dell'archivio specificato. Il valore predefinito è CurrentUser. |
Elementi figlio
Nessuno.
Elementi padre
Elemento | Descrizione |
---|---|
Definisce un certificato X.509 utilizzato dal client per autenticare un servizio. |
Osservazioni
L'elemento <authentication> corrisponde alla classe X509ClientCertificateAuthentication. Consente di personalizzare la modalità di autenticazione dei client. A tale scopo, l'attributo certificateValidationMode può essere impostato su None, ChainTrust, PeerOrChainTrust, PeerTrust o Custom. Per impostazione predefinita, il livello è impostato su ChainTrust. Tale impostazione prevede che ogni certificato appartenga a una gerarchia di certificati che termina in un'autorità radice situata all'inizio della catena. Si tratta della modalità più sicura. Il livello può inoltre essere impostato su PeerOrChainTrust, a indicare che sia i certificati autocertificati (trust peer) sia i certificati appartenenti a una catena di trust sono ritenuti attendibili. Poiché i certificati autocertificati non devono essere acquistati da un'autorità attendibile, questo livello viene utilizzato in fase di sviluppo e di debug dei client e dei servizi. Quando si distribuisce un client è invece opportuno utilizzare il livello ChainTrust.
Un altro livello disponibile è Custom. Quando si imposta il livello Custom è necessario impostare anche l'attributo customCertificateValidatorType sull'assembly e sul tipo utilizzati per convalidare il certificato. Per creare un validator personalizzato è necessario ereditare una classe dalla classe astratta X509CertificateValidator. Per ulteriori informazioni, vedere How To: Create a Service Employing a Custom Certificate Validator.
Esempio
Nel codice seguente sono specificati un certificato X.509 e un tipo di convalida personalizzato nell'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>
Vedere anche
Riferimento
X509ClientCertificateAuthentication
X509CertificateValidationMode
Authentication
Authentication
X509ClientCertificateAuthenticationElement
Altre risorse
Security Behaviors in WCF
How To: Create a Service Employing a Custom Certificate Validator
Working with Certificates