Condividi tramite


<autenticazione dell'elemento><clientCertificate>

Specifica i comportamenti di autenticazione per i certificati client utilizzati da un servizio.

<Configurazione>
  <system.serviceModel>
    <Comportamenti>
      <Servicebehaviors>
        <Comportamento>
          <Servicecredentials>
            <clientCertificate>
              <Autenticazione>

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 usati per convalidare un tipo personalizzato. Questo attributo deve essere impostato quando certificateValidationMode è impostato su Custom.
certificateValidationMode Enumerazione facoltativa. Specifica una delle modalità usate per convalidare credenziali. L'attributo è di tipo X509CertificateValidationMode. Se impostato su X509CertificateValidationMode.Custom, è necessario fornire anche un customCertificateValidator. Il valore predefinito è X509CertificateValidationMode.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.
mapClientCertificateToWindowsAccount Proprietà di tipo Boolean. Specifica se è possibile eseguire il mapping del client a un'identità di Windows usando il certificato. A tal scopo è necessario che Active Directory sia attivato.
revocationMode Enumerazione facoltativa. Una delle modalità usate per verificare un elenco dei certificati revocati. Il valore predefinito è Online. Questo valore viene ignorato quando si usa la sicurezza del trasporto HTTP.
trustedStoreLocation Enumerazione facoltativa. Uno di due percorsi dell'archivio di sistema: LocalMachine o CurrentUser. Questo valore viene usato quando viene negoziato un certificato del servizio con il client. La convalida viene eseguita con l'archivio di Persone attendibile nel percorso dell'archivio specificato. Il valore predefinito è CurrentUser.

Attributo customCertificateValidatorType

Valore Descrizione
string Specifica il nome e l'assembly del tipo e altri dati usati per trovare il tipo.

Attributo certificateValidationMode

Valore Descrizione
Enumerazione Uno dei valori seguenti: None, PeerTrust, ChainTrust, PeerOrChainTrust, Custom.

Per altre informazioni, vedere Uso dei certificati.

Attributo revocationMode

Valore Descrizione
Enumerazione Uno dei valori seguenti: NoCheck, Online, Offline. Per altre informazioni, vedere Uso dei certificati.

Attributo trustedStoreLocation

Valore Descrizione
Enumerazione Uno dei valori seguenti: LocalMachine o CurrentUser. Il valore predefinito è CurrentUser. Se l'applicazione client viene eseguita con un account di sistema, il certificato è generalmente situato in LocalMachine. Se l'applicazione client viene eseguita con un account utente, il certificato è generalmente situato in CurrentUser.

Elementi figlio

Nessuno.

Elementi padre

Elemento Descrizione
<clientCertificate> Definisce un certificato X.509 utilizzato dal client per autenticare un servizio.

Commenti

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, che specifica che ogni certificato deve essere trovato in una gerarchia di certificati che terminano in un'autorità radice nella parte superiore della catena. Si tratta della modalità più protetta. 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 usato in fase di sviluppo e di debug dei client e dei servizi. Quando si distribuisce un client è invece opportuno usare 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 usati per convalidare il certificato. Per creare un validator personalizzato è necessario ereditare una classe dalla classe astratta X509CertificateValidator. Per altre informazioni, vedere Procedura: Creare un servizio che usa un validator certificato personalizzato.

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>

Vedi anche