[WCF安全系列]服務(wù)憑證(Service Credential)與服務(wù)身份(Service Identity)

[WCF安全系列]服務(wù)憑證(Service Credential)與服務(wù)身份(Service Identity)

ID:40588656

大小:37.50 KB

頁數(shù):7頁

時(shí)間:2019-08-04

[WCF安全系列]服務(wù)憑證(Service Credential)與服務(wù)身份(Service Identity)_第1頁
[WCF安全系列]服務(wù)憑證(Service Credential)與服務(wù)身份(Service Identity)_第2頁
[WCF安全系列]服務(wù)憑證(Service Credential)與服務(wù)身份(Service Identity)_第3頁
[WCF安全系列]服務(wù)憑證(Service Credential)與服務(wù)身份(Service Identity)_第4頁
[WCF安全系列]服務(wù)憑證(Service Credential)與服務(wù)身份(Service Identity)_第5頁
資源描述:

《[WCF安全系列]服務(wù)憑證(Service Credential)與服務(wù)身份(Service Identity)》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、[WCF安全系列]服務(wù)憑證(ServiceCredential)與服務(wù)身份(ServiceIdentity)在采用TLS/SSL實(shí)現(xiàn)Transport安全的情況下,客戶端對服務(wù)證書實(shí)施認(rèn)證。但是在默認(rèn)情況下,這種認(rèn)證僅僅是確保服務(wù)證書的合法性(通過數(shù)字簽名確保證書確實(shí)是由申明的CA頒發(fā))和可信任性(證書或者CA證書存儲于相應(yīng)的可信賴存儲區(qū))。而WCF提供服務(wù)證書并不限于此,客戶端對服務(wù)認(rèn)證的模式應(yīng)該是這樣的:服務(wù)端預(yù)先知道了服務(wù)的身份,在進(jìn)行服務(wù)調(diào)用之前,服務(wù)端需要提供相應(yīng)的憑證用以輔助客戶端確認(rèn)調(diào)用的服務(wù)具有預(yù)先確定的身份。對于這樣的服務(wù)認(rèn)證模式,具有兩個(gè)重要的概念,即服務(wù)憑

2、證和服務(wù)身份。目錄:一、服務(wù)憑證(ServiceCredential)二、服務(wù)身份(ServiceIdentity)三、服務(wù)憑證協(xié)商(ServiceCredentialsNegotiation)一、服務(wù)憑證(ServiceCredential)認(rèn)證就是通過對對方提供的憑證進(jìn)行檢驗(yàn)以確定對方身份的一個(gè)過程,從這個(gè)意義上講服務(wù)認(rèn)證和客戶端認(rèn)證并沒有本質(zhì)的區(qū)別。但有服務(wù)認(rèn)證確實(shí)有一點(diǎn)和客戶端認(rèn)證不同:客戶端在對服務(wù)進(jìn)行認(rèn)證之前就預(yù)先確定了服務(wù)應(yīng)當(dāng)具有的身份。而在真正進(jìn)行服務(wù)調(diào)用的時(shí)候,客戶端要求服務(wù)提供相應(yīng)的憑證。而客戶端根據(jù)這個(gè)憑證和實(shí)現(xiàn)確定的身份進(jìn)行比較,從而確定當(dāng)前正在調(diào)用的服

3、務(wù)正是自己希望調(diào)用的那個(gè)。通過上面一節(jié)的介紹,我們已經(jīng)知道了客戶端具有多種形式的憑證類型,但是服務(wù)憑證具有兩種典型的類型:Windows憑證和X.509證書。服務(wù)憑證的類型決定了認(rèn)證方式,所以服務(wù)認(rèn)證通過Windows認(rèn)證或者對X.509證書的檢驗(yàn)來實(shí)現(xiàn)。而Windows認(rèn)證具有兩種具體的實(shí)現(xiàn),即Kerberos和NTLM。通過前面對Kerberos和NTLM的介紹,你應(yīng)該知道只有Kerberos支持雙向認(rèn)證,而NTLM則不能。因此,只有在基于域(Domain)的網(wǎng)絡(luò)環(huán)境中,基于Windows認(rèn)證的服務(wù)認(rèn)證才是可行的。而在工作組(WorkGroup)環(huán)境中,我們推薦使用基于證書

4、的服務(wù)認(rèn)證。服務(wù)認(rèn)證方式的選擇決定于客戶端認(rèn)證采用的方式,基本的策略是這樣的:如果采用Windows認(rèn)證的方式對客戶端實(shí)施認(rèn)證,服務(wù)認(rèn)證同樣采用Windows認(rèn)證?;赬.509證書的認(rèn)證在非Windows客戶端認(rèn)證下被采用。進(jìn)一步地,如果客戶端憑證類型為Windows,那么WCF采用執(zhí)行服務(wù)寄宿進(jìn)程的Windows帳號對應(yīng)的Windows憑證作為服務(wù)憑證。如果其他非Windows憑證作為客戶端憑證,你必須為服務(wù)顯式地指定一個(gè)X.509證書作為服務(wù)憑證。這也是為何在前面演示的實(shí)例中,當(dāng)NetTcpBinding采用Transport安全模式,客戶端憑證被設(shè)置成None時(shí),為何需

5、要為服務(wù)指定一個(gè)X.509證書作為服務(wù)憑證的原因。在WCF的應(yīng)用編程接口中,具有一個(gè)重要的服務(wù)行為ServiceCredentials。這個(gè)類并不簡單象它的名稱所表示的那樣用于進(jìn)行服務(wù)憑證的設(shè)置,實(shí)際上需要在服務(wù)端執(zhí)行的很多認(rèn)證、授權(quán)行為都是通過ServiceCredentials(或者ServicePointManager的RemoteCertificateValidationCallback回調(diào))來實(shí)現(xiàn)的。而在這里,我們暫時(shí)只關(guān)心如何通過ServiceCredentials為服務(wù)指定一個(gè)X.509證書作為服務(wù)憑證。關(guān)于這一點(diǎn),已經(jīng)在前面作過介紹了。如果服務(wù)采用基于X.509

6、證書作為服務(wù)憑證,客戶端對服務(wù)的認(rèn)證過程實(shí)際上分為兩個(gè)階段。第一個(gè)階段是驗(yàn)證證書的合法性,在默認(rèn)的情況下會采用ChainTrust認(rèn)證模式,不過可以通過終結(jié)點(diǎn)行為ClientCredentials(或者ServicePointManager的RemoteCertificateValidationCallback回調(diào))來設(shè)置不同的認(rèn)證模式。關(guān)于具體對服務(wù)證書認(rèn)證模式的設(shè)置在前面的實(shí)例演示(《TLS/SSL在WCF中的應(yīng)用[SSLoverTCP]》和《TLS/SSL在WCF中的應(yīng)用[HTTPS]》)中已經(jīng)有過介紹了。當(dāng)通過以第一階段的認(rèn)證之后,才會進(jìn)入第二階段的認(rèn)證,即通過比較服務(wù)

7、證書和事先確立的服務(wù)身份信息進(jìn)行對照進(jìn)而確定服務(wù)是否是客戶端試圖訪問的服務(wù),接下來討論關(guān)于服務(wù)身份的話題。二、服務(wù)身份(ServiceIdentity)我們知道終結(jié)點(diǎn)時(shí)WCF最為核心的概念,終結(jié)點(diǎn)通過類型ServiceEndpoint表示。終結(jié)點(diǎn)具有ABC三要素分別表示地址、綁定和契約,其中地址通過EndpointAddress表示。如果你對EndpointAddress有一定的了解,你應(yīng)該清楚該類具有一個(gè)只讀的Identity的屬性,對應(yīng)的類型為EndpointIdentity,相關(guān)定義如

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時(shí)可能會顯示錯(cuò)亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。