[WCF安全系列]綁定、安全模式與客戶端憑證類型:總結篇
對于常用的幾種綁定類型,它們都支持怎樣的安全模式,以及針對各種安全模式可以采用怎樣的認證方式(通過客戶端憑證類型決定),這些都在前面的一系列文章中進行了詳細的介紹。接下來我們通過表格的形式對不同類型的系統預定義對不同的安全模式進行一下總結。
一、系統預定義綁定對不同安全模式的支持
下面的表格表示系統預定義綁定對不同安全模式的支持(WSHttpBinding與WS2007HttpBinding具有相同的安全模式支持策略,這里僅僅列出了WSHttpBinding)。
| BasicHttpBinding | WSHttpBinding | WSDualHttpBinding | NetNamedPipeBinding | NetTcpBinding | NetMsmqBinding | |
| None | Default | Yes | Yes | Yes | Yes | Yes |
| Transport | Yes | Yes | No | Default | Default | Default |
| Message | Yes | Default | Default | No | Yes | Yes |
| Mixed | Yes | Yes | Yes | No | Yes | No |
| Both | No | No | No | No | No | Yes |
| TransportCredentialOnly | Yes | No | No | No | No | No |
針對這個表格,我們可以看出:
- 所有的綁定都可以不采用任何的安全傳輸機制,即支持None安全模式;
- BasicHttpBinding的默認模式為None,WS相關的綁定默認模式為Message,而局域網相關綁定的模式模式為Transport;
- 除了NetNamedPipeBinding,所有的綁定都支持Message安全模式;
- 對于所有支持Message模式的綁定,除了NetMsmqBinding都支持Mixed模式;
- 除了WSDualHttpBinding,所有的綁定都支持Transport模式;
- 只有BasicHttpBinding支持TransportCredentialOnly模式;
- 只有NetMsmqBinding支持Both安全模式。
二、系統預定義綁定對不同Transport客戶端憑證的支持
接下來我們來比較一下對應我們之前介紹的這些常用的系統定義綁定在采用Transport安全模式下,對客戶端憑證類型集的支持有何不同。
| BasicHttpBinding | WSHttpBinding | WSDualHttpBinding | NetNamedPipeBinding | NetTcpBinding | NetMsmqBinding | |
| None | Default | Yes | - | No | Yes | No |
| Basic | Yes | Yes | - | No | No | No |
| Digest | Yes | Yes | - | No | No | No |
| Windows | Yes | Default | - | Default | Default | Default |
| Ntlm | Yes | Yes | - | No | No | No |
| Certificate | Yes | Yes | - | No | Yes | No |
從下面的表格反映的數據我們可以看出:
- 三種基于HTTP的綁定(不包括不支持Transport安全模式的WSDualHttpBinding)支持所有類型的客戶端憑證(實際上客戶端憑證類型都是通過枚舉HttpClientCredentialType表示);
- 除了BasicHttpBinding在默認的情況下None作為客戶端憑證類型(匿名客戶端)之外,其它綁定的默認客戶端憑證類型都是Windows;
-
NetTcpBinding支持三種客戶端憑證類型None、Windows和Certificate;
- NetNamedPipeBinding和NetMsmqBinding支持唯一的客戶端憑證類型Windows。
三、系統預定義綁定對不同Message客戶端憑證的支持
而不同的綁定針對于Message模式(或者Mixed模式)下的客戶端憑證類型的支持就非常清晰了。因為除了BasicHttpBinding采用BasicHttpMessageCredentialType枚舉表示其支持的客戶端憑證類型之外,其它所有的綁定(不包括不支持Message安全模式的NetNamedPipeBinding)都使用MessageCredentialType表示客戶端憑證類型,并且。在Message模式下,不同類型的綁定對不同客戶端憑證類型集的支持反映在下面的表格中。
| BasicHttpBinding | WSHttpBinding | WSDualHttpBinding | NetNamedPipeBinding | NetTcpBinding | NetMsmqBinding | |
| None | No | Yes | Yes | - | Yes | Yes |
| User Name | Default | Yes | Yes | - | Yes | Yes |
| Windows | No | Default | Default | - | Default | Default |
| Certificate | Yes | Yes | Yes | - | Yes | Yes |
| IssuedToken | No | Yes | Yes | - | Yes | Yes |


對于常用的幾種綁定類型,它們都支持怎樣的安全模式,以及針對各種安全模式可以采用怎樣的認證方式(通過客戶端憑證類型決定),這些都在前面的一系列文章中進行了詳細的介紹。接下來我們通過表格的形式對不同類型的系統預定義對不同的安全模式進行一下總結。
浙公網安備 33010602011771號