[WCF安全系列]繫結、安全模式與客戶端憑證型別:總結篇

行者武松發表於2017-10-27

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

一、系統預定義繫結對不同安全模式的支援

下面的表格表示系統預定義繫結對不同安全模式的支援(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
作者:蔣金楠
微信公眾賬號:大內老A
微博:www.weibo.com/artech
如果你想及時得到個人撰寫文章以及著作的訊息推送,或者想看看個人推薦的技術資料,可以掃描左邊二維碼(或者長按識別二維碼)關注個人公眾號(原來公眾帳號蔣金楠的自媒體將會停用)。
本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利。


相關文章