SOA與Web服務(wù)技術(shù)安全
一、SOA概述
SOA是個(gè)很獨(dú)特的架構(gòu),強(qiáng)調(diào)協(xié)作、復(fù)用、本地透明組件和網(wǎng)絡(luò)之間的鏈接。它的特點(diǎn)體現(xiàn)在“可重用性”和“互操作性”,使得起能夠?yàn)槠髽I(yè)解決多方面的問(wèn)題。通過(guò)實(shí)現(xiàn)SOA可以帶來(lái)很多好處,主要包括以下幾個(gè)方面。
(一)效率
將業(yè)務(wù)流程從“煙囪”狀的、重復(fù)的流程向維護(hù)成本較低的高度利用、共享服務(wù)應(yīng)用轉(zhuǎn)變。
(二)響應(yīng)
迅速適應(yīng)和傳送關(guān)鍵業(yè)務(wù)服務(wù)來(lái)滿足市場(chǎng)需求,為客戶、雇員和合作伙伴更高水準(zhǔn)的服務(wù)。
(三)適應(yīng)性
更高效地轉(zhuǎn)入轉(zhuǎn)出讓整個(gè)業(yè)務(wù)變得復(fù)雜性和難度更小,達(dá)到節(jié)約時(shí)間和資金的目的。
二、SOA與Web服務(wù)
現(xiàn)在的SOA很大程度上還是依賴Web服務(wù),其影響非常深,以至面向服務(wù)的Web服務(wù)的概念和技術(shù)影響了許多SOA的特征。盡管基于Web服務(wù)的SOA還存在著某些限制,但是仍然是理想的架構(gòu)和技術(shù)的組合,它始終可以提供強(qiáng)健的,可重復(fù)使用的服務(wù),這樣的服務(wù)不僅可以滿足業(yè)務(wù)需求也可以適應(yīng)不斷變化的業(yè)務(wù)需求。
目前,WSDL已經(jīng)成為訪問(wèn)任何應(yīng)用的標(biāo)準(zhǔn)編程接口,而SOAP也成為連接不同應(yīng)用的標(biāo)準(zhǔn)操作協(xié)議。以上這兩個(gè)標(biāo)準(zhǔn)給我們開了一個(gè)好頭, 因?yàn)楦嗟尼槍?duì)企業(yè)級(jí)和服務(wù)質(zhì)量方面需求而定制的Web服務(wù)規(guī)范將越來(lái)越多,它們對(duì)Web服務(wù)的安全、可靠性、事物編制和元數(shù)據(jù)管理等方面進(jìn)行了定義??偠灾?,Web服務(wù)是構(gòu)建S0A的最佳平臺(tái)。
三、SOA安全控制相關(guān)技術(shù)
(一)Asp.NET應(yīng)用程序的安全控制
1.基于表單的安全技術(shù)
如果在一個(gè)WEB站點(diǎn)上設(shè)立一個(gè)自定義用戶注冊(cè)系統(tǒng),那么可以使用表單驗(yàn)證。這類驗(yàn)證的優(yōu)勢(shì)在于它可以把用戶名和密碼保存到任何你所期望的存儲(chǔ)機(jī)制中,比如可以把用戶名和密碼保存在Web.Config文件、XML文件或數(shù)據(jù)庫(kù)中。
表單驗(yàn)證依賴于測(cè)覽器Cookie來(lái)確定用戶身份。在為一個(gè)目錄啟用了一表單驗(yàn)證后,這個(gè)目錄中的頁(yè)面就不可以被訪問(wèn)了,除非用戶擁有存儲(chǔ)在Cookie中的正確授權(quán)令牌。
2.基于windows的安全技術(shù)
當(dāng)開發(fā)的程序主要為內(nèi)部網(wǎng)所用,那么可以使用現(xiàn)存的Windows用戶賬號(hào)和用戶組來(lái)使用Windows驗(yàn)證。
我們可以使用Windows的驗(yàn)證來(lái)控制用戶對(duì)機(jī)密信息的訪問(wèn)。比如,你只想讓開發(fā)組中的成員才能訪問(wèn)開發(fā)相關(guān)的文檔,那么,可以使用Windows的驗(yàn)證來(lái)防止其他Windows賬號(hào)組的成員, 比如外聯(lián)部的人員來(lái)訪問(wèn)這些受限文件。但是,如果你正開發(fā)的是一個(gè)公共用戶注冊(cè)和密碼系統(tǒng),那么使用基于Windows的驗(yàn)證就不是一個(gè)安全的選擇了。在啟用Windows驗(yàn)證時(shí),就必須為每個(gè)要訪問(wèn)受保護(hù)頁(yè)面的用戶配置一個(gè)Windows用戶賬號(hào)。
(二)Web服務(wù)安全
Web服務(wù)除了給SOA 帶來(lái)很多優(yōu)點(diǎn)之外,也帶來(lái)了很多安全隱患。創(chuàng)建一個(gè)安全的Web服務(wù)要涉及到因特網(wǎng)傳輸、X眥和Web服務(wù)安全機(jī)制,有部分在創(chuàng)建過(guò)程中已經(jīng)建立好的,比如:傳輸級(jí)安全(防火墻、VPN等)、消息級(jí)安全(認(rèn)證令牌)、數(shù)據(jù)級(jí)安全(數(shù)字簽名等)、環(huán)境級(jí)安全(登陸、審核等)。一個(gè)好的安全方案則需要花費(fèi)一定的時(shí)間和精力以防止數(shù)據(jù)被惡意的訪問(wèn)或篡改。
安全是個(gè)非常復(fù)雜的領(lǐng)域,充滿著許多為解決不斷出現(xiàn)的威脅而設(shè)計(jì)的技術(shù)與協(xié)議。要保護(hù)數(shù)據(jù),通常要對(duì)Web服務(wù)進(jìn)行加密和加密選項(xiàng)的選擇,在進(jìn)行加密的時(shí)候,又要考慮到是否兼容的問(wèn)題。同樣,確保整個(gè)SOA 支持一套技術(shù)也是非常關(guān)鍵的,一般說(shuō)來(lái),為了處理S0A中的多種服務(wù)與機(jī)制,往往需要很多技術(shù)結(jié)合在一起。通常可以包含安全服務(wù)集成接口、安全服務(wù)、消息安全、安全傳輸?shù)人膶印?/p>