規範服務所用客戶端憑證的認證行為。
<configuration>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceCredentials>
<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" />
屬性和項目
下列各節說明屬性、子元素和父元素
Attributes
| Attribute | Description |
|---|---|
| customCertificateValidatorType | 選擇性字串。 一個用來驗證自訂型別的型別與組件。 當 certificateValidationMode 被設定為 Custom時,必須設定此屬性。 |
| certificateValidationMode | 可選的列舉。 指定用於驗證憑證的其中一種模式。 此屬性屬於 類型 X509CertificateValidationMode 。 若設為 X509CertificateValidationMode.Custom,則必須提供 a customCertificateValidator 。 預設值為 X509CertificateValidationMode.ChainTrust。 |
| includeWindowsGroups | 可選的布林值。 指定是否包含 Windows 群組於安全情境中。 將此屬性設為 會 true 對效能產生影響,因為會導致整個群組擴展。 若不需要建立使用者所屬群組清單,請將此屬性設為false |
| mapClientCertificateToWindowsAccount | 布林值。 指定是否能利用憑證將用戶端映射到 Windows 身份。 必須啟用 Active Directory 才能做到這點。 |
| 撤銷模式 | 可選的列舉。 其中一種模式用於檢查被撤銷的憑證清單(RCL)。 預設值為 Online。 在使用 HTTP 傳輸安全時,這個值會被忽略。 |
| trustedStoreLocation | 可選的列舉。 兩個系統儲存位置之一: LocalMachine 或 CurrentUser。 此值用於與客戶協商服務憑證時。 驗證會在指定儲存地點對 受信任人員 儲存執行。 預設值為 CurrentUser。 |
customCertificateValidatorType 屬性
| 價值觀 | Description |
|---|---|
| 繩子 | 指定型別名稱、組件及其他用於尋找型別的資料。 |
certificateValidationMode 屬性
| 價值觀 | Description |
|---|---|
| 枚舉 | 以下值之一:無、PeerTrust、ChainTrust、PeerOrChainTrust、自訂。 如需詳細資訊,請參閱使用憑證。 |
撤銷模式屬性
| 價值觀 | Description |
|---|---|
| 枚舉 | 以下其中一個值:NoCheck、Online、Offline。 如需詳細資訊,請參閱使用憑證。 |
trustedStoreLocation 屬性
| 價值觀 | Description |
|---|---|
| 枚舉 | 以下其中一個值: LocalMachine 或 CurrentUser。 預設值為 CurrentUser。 如果客戶端應用程式是以系統帳號執行,那麼憑證通常會放在 LocalMachine。 如果客戶端應用程式是以使用者帳號執行,那麼憑證通常會在 CurrentUser。 |
子專案
沒有。
父項目
| 元素 | Description |
|---|---|
| <客戶憑證> | 定義一種用於驗證客戶端至服務的 X.509 憑證。 |
備註
元素 <authentication> 對應於類別 X509ClientCertificateAuthentication 。 它讓你能自訂客戶認證的方式。 您可以將 certificateValidationMode 屬性 (Attribute) 設定為 None、ChainTrust、PeerOrChainTrust、PeerTrust 或 Custom。 根據預設,層級會設為 ChainTrust,指定每一個憑證必須位於鏈結頂端以根授權為結尾的憑證階層中。 這是最安全的模式。 您也可以將值設定為 PeerOrChainTrust,指定可接受自行發出的憑證 (對等信任),以及信任鏈結內的憑證。 這個值會在開發及偵錯用戶端和服務時使用,因為自行發出的憑證不需要從受信任的授權單位購買。 部署用戶端時,請改用 ChainTrust 值。
您也可以將值設定為 Custom。 設定為 Custom 值時,您還必須將 customCertificateValidatorType 屬性設定為可用來驗證憑證的組件與型別。 若要建立自己的自訂驗證程式,您必須繼承自抽象 X509CertificateValidator 類別。 如需詳細資訊,請參閱操作說明:建立使用自訂憑證驗證程式的服務。
Example
以下程式碼指定了 X.509 憑證及元素中的 <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>