閱讀458 返回首頁    go 阿裏雲 go 技術社區[雲棲]


[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安全模式下,對客戶端憑證類型集的支持有何不同。

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
如果你想及時得到個人撰寫文章以及著作的消息推送,或者想看看個人推薦的技術資料,可以掃描左邊二維碼(或者長按識別二維碼)關注個人公眾號(原來公眾帳號蔣金楠的自媒體將會停用)。
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁麵明顯位置給出原文連接,否則保留追究法律責任的權利。
原文鏈接

最後更新:2017-10-27 10:33:46

  上一篇:go  阿裏數據:全國近3000萬爸媽愛“剁手”,80後、90後的爸媽戰鬥力地表最強
  下一篇:go  《Greenplum5.0 最佳實踐》 內存與資源隊列 (四)