天天看點

WCF分布式安全開發實踐(0):文章和代碼結構規劃介紹

    WCF安全概念涉及到很多知識,完全超出我個人的預期。我最近一直在關注這個方面的内容,最大的感受就是WCF安全機制非常的複雜,或者說安全機制強大。WCF安全程式設計一直是一個重要的領域,因為安全的問題不單單針對WCF服務,還要用戶端的配合。

【1】安全驗證模式:

    我們先來簡單回顧一下WCF身份驗證機制,WCF支援的6種身份驗證機制可以參考下圖:

【1.1】Transport安全模式與用戶端驗證方式:

綁定協定和用戶端驗證方式在transport模式下的對應關系:

綁定\用戶端憑據

None

Windows

Username

Certificate

BasicHttpBinding

Yes (Default)

Yes

NetTcpBinding

No

NetPeerTcpBinding

NetNamedPipeBinding

WSHttpBinding

WSFederationHttpBinding

N/A

WSDualHttpBinding

NetMsmqBinding

【1.2】消息安全模式與用戶端驗證方式:

Issued token

   以上就是WCF在不同的安全模式下,不同的綁定協定所支援的身份驗證方式之間的關系。這樣的組合多達數十種之多。而我們不能對每種情況都做實作。這裡一方面為了學習,另外也是為了結合公司項目的實際情況,我們實作比較常見的WCF安全機制。方面大家的學習和項目實際應用的參考。

【2】代碼結構概要:

    這裡我把代碼整體上按照安全模式和消息模式來分,然後是用戶端身份驗證方式,在就是綁定協定,做個分類的依據。這裡我給出主要的是無身份驗證模式None,Basic,自定義使用者名密碼,和自定義X509證書,Window,Certificate驗證方式的Demo代碼結構。目前給出的是大概的結構如下:

【3】文章結構概要:

    文章基本的組織接口是介紹每種Demo代碼的具體的實作原理和過程,每個文章會詳細介紹關鍵的實作步驟,和應該注意的細節。對代碼進行講解,最後會給出可執行代碼供大家參考。應該在10篇左右,因為針對一種安全機制,我就隻實作一個綁定協定,例如是WSHTTPBinding的實作,basicHTTPBinding和NetTcpBinding我就不給出了,大家有興趣的可以拓展,根據實際學習或者項目需要自己實作。代碼文章的初步規劃如下:

【4】總結

    (1)《WCF分布式安全開發實踐》主要針對的是一些常見的驗證方式的介紹,并給出可以執行的執行個體代碼。

    (2)應用相對較少的方式,如IssuedToken方式,我在這個系列裡就不給出介紹了,如果需要可以再對這個系列文章做個調整。代碼結構和文章結構是作個參考,實際可能根據大家的意見做個修改。

    (3)文章的順序也隻是個參考,總體是先從Transport開始,然後介紹Message安全模式下的各種應用。

    但是由于時間關系,我今天的第一個執行個體代碼會先從基于Message安全模式的使用者名密碼驗證方式開始,因為已經寫好很久了,傳輸安全模式相對複雜,下一篇會在介紹,時間緊迫我抓緊時間把基于Message安全模式的使用者名密碼驗證方式文章寫完,釋出出來。不然沒法睡覺~這個介紹文章我就分類到首頁的新手區。

    有興趣學習WCF安全程式設計的朋友,可以關注這個系列,留言一起交流~

參考文章:

 本文轉自 frankxulei 51CTO部落格,原文連結:http://blog.51cto.com/frankxulei/320341,如需轉載請自行聯系原作者

繼續閱讀