共用方式為


<clientCertificate> 項目的 <authentication>

為服務使用的用戶端憑證指定驗證行為。

結構描述階層

<system.serviceModel>
  <behaviors>
    <serviceBehaviors>
      <serviceBehaviors> 的 <behavior>
        <serviceCredentials>
          <serviceCredentials> 的 <clientCertificate>
            <clientCertificate> 項目的 <authentication>

語法

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

屬性和元素

下列各節說明屬性、子項目和父項目。

屬性

屬性 描述

customCertificateValidatorType

選擇性字串。 用來驗證自訂型別的型別和組件。 當 certificateValidationMode 設定為 Custom 時,必須設定這個屬性。

certificateValidationMode

選擇性列舉。 指定用來驗證認證的其中一個模式。 此屬性的型別為 System.Servicemodel.Security.X509CertificateValidationMode。 如果設定為 Custom,也必須提供 customCertificateValidator。 預設為 ChainTrust

includeWindowsGroups

選擇性布林值。 指定 Windows 群組是否包含在安全性內容中。 將這個屬性設定為 true 會有效能方面的影響,因為它會造成完整的群組擴充。 如果您不需要建立使用者所屬之群組的清單,請將此屬性設定為 false

mapClientCertificateToWindowsAcccount

布林值。 指定是否能夠使用憑證將用戶端對應至 Windows 身分識別。 必須啟用 Active Directory 才能這麼做。 如需使用 Active Directory 功能的詳細資訊,請參閱 http://technet2.microsoft.com/WindowsServer/en/Library/0602148e-1a8f-4917-bb01-6fd342aba7161033.mspx (英文)。

revocationMode

選擇性列舉。 用於檢查撤銷憑證清單 (RCL) 的模式之一。 預設為 Online

trustedStoreLocation

選擇性列舉。 兩個系統存放位置的其中一個:LocalMachineCurrentUser。 當與用戶端交涉服務憑證時,會使用這個值。 會針對指定之存放位置內的 [受信任的人] 存放區來執行驗證。 預設為 CurrentUser

項目子系

無。

父項目

項目 描述

<serviceCredentials> 的 <clientCertificate>

定義對服務驗證用戶端時使用的 X.509 憑證。

備註

<authentication> X509ClientCertificateAuthentication 項目對應至 類別。 它可讓您自訂驗證用戶端的方法。 您可以將 certificateValidationMode 屬性 (Attribute) 設定為 NoneChainTrustPeerOrChainTrustPeerTrustCustom。 根據預設,層級會設為 ChainTrust,指定每一個憑證必須出現在鏈結頂端以「根授權」(Root Authority) 為結尾的憑證階層中。 這是最安全的模式。 您也可以將值設定為 PeerOrChainTrust,指定可接受自行發出的憑證 (對等信任),以及信任鏈結內的憑證。 這個值會在開發及偵錯用戶端和服務時使用,因為自行發出的憑證不需要從受信任的授權單位購買。 部署用戶端時,請改用 ChainTrust 值。

您也可以將值設定為 Custom。 設定為 Custom 值時,您還必須將 customCertificateValidatorType 屬性設定為可用來驗證憑證的組件與型別。 若要建立自己的自訂驗證程式,您必須繼承自抽象 X509CertificateValidator 類別。 如需詳細資訊,請參閱 How To: Create a Service Employing a Custom Certificate Validator

範例

下列程式碼會在 <authentication> 項目中指定 X.509 憑證和自訂驗證類型。

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

另請參閱

參考

X509ClientCertificateAuthentication
X509CertificateValidationMode
Authentication
Authentication
X509ClientCertificateAuthenticationElement

其他資源

Security Behaviors in WCF
How To: Create a Service Employing a Custom Certificate Validator
Working with Certificates