想對BasicHttpBinding的安全性做比較全面的了解,最好的辦法還是從它的安全屬性看起。下面展示的所有源代碼通過反編譯獲得,這裡我們根據需要選取關鍵的代碼來分析,先看代碼清單11-73。
代碼清單11-73 BasicHttpBinding定義
從代碼清單11-73中,我們可以看到關鍵的對象為BasicHttpSecurity,在構造函數中BasicHttpBinding類對其初始化并設定securityMode。下面我們看BasicHttpSecurity的定義。
代碼清單11-74 BasicHttpSecurity定義
根據代碼清單11-74,我們對BasicHttpSecurity做簡要的分析。首先看第一個屬性——Mode。Mode是BasicHttpSecurityMode枚舉值之一,表示安全類型,預設值為None。BasicHttpSecurityMode枚舉共提供5種選擇:
1) None:OAP 消息在傳輸過程中并不安全。 這是預設行為。
2) Transport:使用 HTTPS 提供安全性。 此服務必須使用 SSL 證書進行配置。 SOAP 消息是用 HTTPS 作為一個整體進行保護的。 用戶端使用服務的 SSL 證書對服務進行身份驗證。 通過 ClientCredentialType 可對用戶端身份驗證進行控制。
3) Message:使用 SOAP 消息安全提供安全性。對于BasicHttpBinding,系統要求向用戶端單獨提供伺服器證書。此綁定的有效用戶端憑據類型為UserName和Certificate。
4) TransportWithMessageCredential:完整性、保密性和伺服器身份驗證均由 HTTPS 提供。 此服務必須使用證書進行配置。 用戶端身份驗證采用SOAP消息安全方式提供。 如果要使用使用者名或證書憑據對使用者進行身份驗證,并且存在用于保護消息傳輸的現有HTTPS部署,則适用此模式。
5) TransportCredentialOnly:此模式并不提供消息的完整性和保密性, 而是僅提供基于HTTP 的用戶端身份驗證。 使用此模式時一定要小心。 在通過其他方式(如IPSec)提供傳輸安全并且 基礎結構隻提供用戶端身份驗證的環境中,應該使用此模式。
可使用如代碼清單11-75所示的配置方式配置安全模式。
代碼清單11-75 配置安全模式
在代碼清單11-74中我們看BasicHttpSecurity的第二個屬性——Transport,該屬性是HttpTransportSecurity執行個體。HttpTransportSecurity 類定義如代碼清單11-75。
代碼清單11-75 HttpTransportSecurity 類定義
從代碼清單11-75中我們知道HttpTransportSecurity 類包含四個屬性:
1) ClientCredentialType屬性。擷取或設定要用于身份驗證的用戶端憑據的類型。預設值為HttpClientCredentialType.None。
2) ExtendedProtectionPolicy。擷取或設定擴充保護政策,預設值為ChannelBindingUtility.DefaultPolicy。
3) ProxyCredentialType。擷取或設定要用于針對代理進行身份驗證的用戶端憑據的類型。預設值為HttpProxyCredentialType.None。
4) Realm。擷取或設定摘要式或基本身份驗證的身份驗證領域,預設值為空。
BasicHttpSecurity 類的第三個屬性為BasicHttpMessageSecurity類,用來配置BasicHttpBinding的消息安全。該類定義如代碼清單11-76所示。
代碼清單11-76 BasicHttpMessageSecurity類定義
從代碼清單11-76中我們可以看到BasicHttpMessageSecurity類包含兩個屬性:
1) AlgorithmSuite。指定要與 BasicHttpMessageSecurity 一起使用的算法組。
2) ClientCredentialType。發送安全消息指定用戶端用以進行身份驗證的憑據的類型。
那麼在配置檔案中如何配置BasicHttpSecurity呢?代碼清單11-77給出了一般配置選項。
代碼清單11-77 配置BasicHttpSecurity
代碼清單11-77所示的配置節中各項的含義讀者可以參考BasicHttpSecurity 類的個屬性進行解讀,這裡就不再重複了。下面我們通過執行個體繼續探讨BasicHttpBinding的更多安全特性。
本文轉自懸魂部落格園部落格,原文連結:http://www.cnblogs.com/xuanhun/archive/2011/06/27/2091302.html,如需轉載請自行聯系原作者