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,如需轉載請自行聯系原作者