監(jiān)理公司管理系統(tǒng) | 工程企業(yè)管理系統(tǒng) | OA系統(tǒng) | ERP系統(tǒng) | 造價(jià)咨詢管理系統(tǒng) | 工程設(shè)計(jì)管理系統(tǒng) | 簽約案例 | 購(gòu)買(mǎi)價(jià)格 | 在線試用 | 手機(jī)APP | 產(chǎn)品資料
X 關(guān)閉

讓SOA不斷成熟

申請(qǐng)免費(fèi)試用、咨詢電話:400-8352-114

來(lái)源:泛普軟件

如何讓SOA不斷成熟,以滿足安全和治理的需要?如今XML安全方面的標(biāo)準(zhǔn)和規(guī)范有哪些?它們彼此是如何協(xié)同工作的?如何以可擴(kuò)展的方式來(lái)實(shí)施這些標(biāo)準(zhǔn),又不犧牲性能和可維護(hù)性?本文試圖解答這些問(wèn)題。

如今,全球各地的許多企業(yè)都在迅速采用面向服務(wù)的架構(gòu)(SOA)。數(shù)據(jù)和應(yīng)用程序曾經(jīng)相互獨(dú)立,而現(xiàn)在卻要跨多個(gè)部門(mén)和組織作為服務(wù)來(lái)提供。雖然安全在過(guò)去屬于IT領(lǐng)域,但SOA治理擴(kuò)大了安全的范疇,包含組織策略和實(shí)踐,因而涵蓋了業(yè)務(wù)領(lǐng)域。如何讓SOA不斷成熟,以滿足安全和治理的需要?如今XML安全方面的標(biāo)準(zhǔn)和規(guī)范有哪些?它們彼此是如何協(xié)同工作的?如何以可擴(kuò)展的方式來(lái)實(shí)施這些標(biāo)準(zhǔn),又不犧牲性能和可維護(hù)性?本文試圖解答這些問(wèn)題。

不妨看一下SOA的幾個(gè)應(yīng)用實(shí)例。以供應(yīng)鏈管理為例:諸多生產(chǎn)商、零售商和消費(fèi)者相互聯(lián)系,使用眾多的系統(tǒng)和應(yīng)用程序,主要通過(guò)因特網(wǎng)來(lái)聯(lián)系。SOA是實(shí)現(xiàn)這種松散耦合的交互關(guān)系的理想機(jī)制。企業(yè)級(jí)SOA的一個(gè)必要部分就是,把安全服務(wù)和治理策略運(yùn)用于交易合作伙伴之間的各個(gè)聯(lián)系層面上。

如果客戶在某零售商的網(wǎng)站上下訂單,顯而易見(jiàn),訂單處理事務(wù)必須是安全可靠的。然而,事實(shí)不像表面上那么簡(jiǎn)單。零售商的訂單履行應(yīng)用應(yīng)當(dāng)涉及與庫(kù)存管理系統(tǒng)的交互關(guān)系。一旦所訂產(chǎn)品準(zhǔn)備送貨,零售商就與負(fù)責(zé)送貨的交易合作伙伴聯(lián)系,并應(yīng)當(dāng)為客戶提供可以瀏覽訂單狀態(tài)的服務(wù)。這種相互關(guān)系都需要應(yīng)用層實(shí)現(xiàn)安全,傳輸協(xié)議層通常也需要實(shí)現(xiàn)安全。另外,組織必須制訂及管理各種策略:誰(shuí)擁有數(shù)據(jù)?誰(shuí)對(duì)該數(shù)據(jù)的真實(shí)性負(fù)責(zé)?各部門(mén)和交易合作伙伴如何共享數(shù)據(jù)?這就是SOA治理所要解決的任務(wù)。

這些相互關(guān)系帶來(lái)了類似客戶在網(wǎng)站上下訂單的需求。在這兩個(gè)交易合作伙伴交互信息的過(guò)程中,必須實(shí)行安全策略,還要確定治理服務(wù)的策略。

另一個(gè)應(yīng)用實(shí)例就是生產(chǎn)商的產(chǎn)品開(kāi)發(fā)生命周期。這個(gè)過(guò)程可能涉及外部的交易合作伙伴,也可能不涉及,但一家大型生產(chǎn)商通常有好幾個(gè)部門(mén)參與一個(gè)制成品的生產(chǎn)。SOA提供了可重復(fù)使用、靈活開(kāi)發(fā)的好處,哪怕是在生產(chǎn)商并不涉及外部合作伙伴的場(chǎng)景下。另外,這里需要同樣的安全和策略需求。

這些場(chǎng)景所共有的安全需求包括如下幾個(gè)方面:

● 驗(yàn)證:我怎么知道你的身份是正確的?

● 授權(quán):你有權(quán)執(zhí)行這筆事務(wù)嗎?

● 完整性:你發(fā)送的數(shù)據(jù)跟我收到的數(shù)據(jù)一樣嗎?

● 簽名:創(chuàng)建及驗(yàn)證類似手寫(xiě)簽名的電子簽名。

● 機(jī)密性:我們確信沒(méi)有人讀取你發(fā)給我的數(shù)據(jù)嗎?

● 審查:把所有事務(wù)記錄下來(lái),以便事后驗(yàn)證。

● 不可否認(rèn)性:發(fā)送方和接收方都可以向第三方(如法官)證實(shí)事務(wù)中發(fā)送及收到的是同一數(shù)據(jù)。

由于應(yīng)用間各自獨(dú)立的身份安全數(shù)量激增,其他安全需求如單次登錄(SSO)已變得很重要。威脅預(yù)防也漸漸成了另一項(xiàng)重要的安全需求,以便排除不良數(shù)據(jù)(如間諜軟件和惡意軟件等)。

XML安全標(biāo)準(zhǔn)和SOA

XML是基于標(biāo)準(zhǔn)的選擇,體現(xiàn)了上述需求,因而XML安全標(biāo)準(zhǔn)可以用來(lái)滿足需求。XML安全標(biāo)準(zhǔn)充分利用了現(xiàn)有的XML標(biāo)準(zhǔn),還能改進(jìn)這些標(biāo)準(zhǔn),方法如下:

● XML安全標(biāo)準(zhǔn)定義了表示安全信息的XML詞匯,使用XML模式(XML Schema)等XML技術(shù)來(lái)定義,譬如,用XML簽名語(yǔ)法和處理標(biāo)準(zhǔn)(XML-Signature Syntax and Processing)定義的 < KeyInfo>元素,建議用于傳輸、簽名或者加密密鑰信息。

● XML安全標(biāo)準(zhǔn)盡量使用其他現(xiàn)有的XML標(biāo)準(zhǔn),以便充分利用現(xiàn)有的XML成果。譬如說(shuō),XML簽名語(yǔ)法和處理標(biāo)準(zhǔn)允許XPath表達(dá)式提取XML的一部分進(jìn)行處理。值得一提的是,既有的XML安全標(biāo)準(zhǔn)出現(xiàn)之前,是不可能實(shí)現(xiàn)這種有選擇的簽名處理的。要么整個(gè)文檔被簽名,要么根本不簽名。XML安全標(biāo)準(zhǔn)旨在提供XML的靈活性和擴(kuò)展性。它們讓安全可以應(yīng)用于XML文檔、XML元素和元素內(nèi)容以及任意的二進(jìn)制文檔。它們通過(guò)使用XML命名空間和可擴(kuò)展的XML模式定義,支持XML詞匯的擴(kuò)展。

● XML安全技術(shù)可以應(yīng)用于端到端安全,如果XML消息通過(guò)眾多處理中介來(lái)發(fā)送,這需要特別重視。持久性安全與內(nèi)容相關(guān),而不是與傳輸管道相關(guān)。內(nèi)容仍然具有安全性。XML安全技術(shù)還可以結(jié)合傳輸安全技術(shù)使用,譬如安全套接層和傳輸層安全(SSL/TLS)。這里要強(qiáng)調(diào)的另一點(diǎn)就是,用于SSO功能的身份也隨同消息一起傳輸。

● XML安全技術(shù)盡量重復(fù)使用現(xiàn)有的加密和安全技術(shù),不需要重復(fù)工作。譬如說(shuō),需要時(shí),無(wú)須重新定義就可以使用X.509 V3證書(shū)——它們只是采用文本格式編碼而成?,F(xiàn)有的算法如SHA1摘要算法也通過(guò)把惟一的URI標(biāo)識(shí)符進(jìn)行關(guān)聯(lián)、定義在XML安全處理模型中如何使用,從而被引入到XML安全標(biāo)準(zhǔn)世界。值得一提的是,URI標(biāo)識(shí)符普遍應(yīng)用于XML安全,用于加密和簽名算法,而不僅僅用于散列算法。

主要的XML安全標(biāo)準(zhǔn)如下:XML加密、XML簽名語(yǔ)法和處理、數(shù)字簽名、XML密鑰管理規(guī)范(XKMS)。

XML加密是萬(wàn)維網(wǎng)聯(lián)盟(W3C)制訂的一項(xiàng)規(guī)范,它為需要安全交換結(jié)構(gòu)化數(shù)據(jù)的應(yīng)用提供了端到端安全性。正如我們所知,XML本身就是對(duì)數(shù)據(jù)進(jìn)行結(jié)構(gòu)化處理的最流行的技術(shù)。因此,基于XML的加密自然是滿足復(fù)雜需求的方法,可實(shí)現(xiàn)數(shù)據(jù)交換應(yīng)用中的安全。

W3C推薦的XML簽名語(yǔ)法和處理標(biāo)準(zhǔn)提供了完整性、消息驗(yàn)證和簽名者驗(yàn)證等服務(wù)。XML簽名是為了用于XML事務(wù)而設(shè)計(jì)的數(shù)字簽名。這項(xiàng)標(biāo)準(zhǔn)定義了一種模式,用于記錄應(yīng)用于任意(但往往是XML)數(shù)據(jù)的數(shù)字簽名操作的結(jié)果。與沒(méi)有XML識(shí)別功能的數(shù)字簽名(如公鑰加密標(biāo)準(zhǔn)即PKCS)一樣,XML簽名為簽名的數(shù)據(jù)添加了驗(yàn)證、數(shù)據(jù)完整性以及支持不可否認(rèn)性的功能。然而,與非XML簽名語(yǔ)法和處理標(biāo)準(zhǔn)不同的是,XML簽名語(yǔ)法和處理標(biāo)準(zhǔn)旨在認(rèn)可及利用因特網(wǎng)和XML。

數(shù)字證書(shū)是類似網(wǎng)上護(hù)照的電子文件。它們由可信的第三方即證書(shū)認(rèn)證中心(CA)頒發(fā),該機(jī)構(gòu)負(fù)責(zé)驗(yàn)證證書(shū)持有者的身份。

作為W3C的一項(xiàng)備忘錄,XKMS簡(jiǎn)化了使用公鑰基礎(chǔ)設(shè)施(PKI)和數(shù)字證書(shū)來(lái)保護(hù)基于XML的因特網(wǎng)事務(wù)安全的工作。它為分發(fā)及注冊(cè)適合于結(jié)合W3C的XML簽名語(yǔ)法和處理標(biāo)準(zhǔn)使用的公鑰規(guī)定了協(xié)議。XKMS由兩部分組成:XML密鑰信息服務(wù)規(guī)范(X-KISS)和XML密鑰注冊(cè)服務(wù)規(guī)范(X-KRSS)。

從前面舉例的供應(yīng)鏈?zhǔn)褂脤?shí)例知道,通過(guò)因特網(wǎng)訪問(wèn)信息的功能對(duì)解決方案來(lái)說(shuō)至關(guān)重要。Web服務(wù)可以實(shí)現(xiàn)這種功能,因?yàn)樗鼈冊(cè)试S通過(guò)網(wǎng)絡(luò)交換信息。Web服務(wù)基于以下三項(xiàng)重要標(biāo)準(zhǔn):

● 簡(jiǎn)單對(duì)象訪問(wèn)協(xié)議(SOAP):數(shù)據(jù)傳輸協(xié)議。

● Web服務(wù)描述語(yǔ)言(WSDL):Web服務(wù)描述語(yǔ)言。

● 通用描述、發(fā)現(xiàn)和集成(UDDI):確定Web服務(wù)位置的注冊(cè)中心。

請(qǐng)注意,所有上述標(biāo)準(zhǔn)都可以用XML來(lái)定義。不過(guò),本文舉例的供應(yīng)鏈解決方案必須具體解決兩個(gè)問(wèn)題:

一、只允許授權(quán)用戶可以訪問(wèn)基于XML的Web服務(wù),這可以通過(guò)可擴(kuò)展訪問(wèn)控制標(biāo)記語(yǔ)言(XACML)和Web服務(wù)策略(WS-Policy)兩個(gè)標(biāo)準(zhǔn)來(lái)解決;

二、保護(hù)Web服務(wù)環(huán)境中交換的XML消息的完整性和機(jī)密性,這可以通過(guò)Web服務(wù)安全(WSS)和安全聲明標(biāo)記語(yǔ)言(SAML)來(lái)解決。

本文基本介紹了Web服務(wù)策略、WSS、SAML、XACML以及XQuery和XML數(shù)據(jù)庫(kù)如何賦予安全。WSS在SOAP環(huán)境下提供了消息保護(hù)。SAML和XACML支持授權(quán),并且大力支持大規(guī)模分布式系統(tǒng)。最重要的是,所有這些標(biāo)準(zhǔn)都可以使用XML表示信息。Web服務(wù)策略、WSS、SAML和XACML都有一些共同之處。雖然所有這些標(biāo)準(zhǔn)都能夠使用前些年使用的安全服務(wù),但各自都有具體的特性,旨在適用于大規(guī)模分布式環(huán)境,譬如因特網(wǎng)。另外,這些標(biāo)準(zhǔn)可以使用及集成原先就有的安全標(biāo)準(zhǔn)。

正如前文所述,這些標(biāo)準(zhǔn)使用XML。XML使諸多技術(shù)可以輕松擴(kuò)展,以滿足特殊需求,而使用舊格式不可能做到這點(diǎn)。另外,XML允許實(shí)施者使用現(xiàn)有的許多軟件工具進(jìn)行處理。以WSS為例,它旨在與SOAP的語(yǔ)法和處理模型緊密集成,該模型用XML來(lái)定義。

另外,XML是一門(mén)標(biāo)記語(yǔ)言,能夠標(biāo)記不同數(shù)據(jù)源的信息內(nèi)容,包括結(jié)構(gòu)化和半結(jié)構(gòu)化文檔、關(guān)系數(shù)據(jù)庫(kù)和對(duì)象儲(chǔ)存庫(kù)。由于這么多采用XML格式的重要數(shù)據(jù)可供使用,這些數(shù)據(jù)可以查詢及挖掘,以獲得進(jìn)一步的適用性,就顯得極其重要。

查詢語(yǔ)言是XQuery,它能夠理解XML,并且針對(duì)各種XML數(shù)據(jù)表示查詢,無(wú)論是不是實(shí)際保存在XML中,還是通過(guò)中間件作為XML來(lái)瀏覽。XQuery廣泛適用于許多類型的XML數(shù)據(jù)源。

為XML數(shù)據(jù)添加持久性的推薦方法就是,使用這樣的本地XML數(shù)據(jù)庫(kù)技術(shù),不但可以把XML作為另一個(gè)關(guān)系工件來(lái)對(duì)待,還可以作為自然的XML工件來(lái)對(duì)待。XML數(shù)據(jù)庫(kù)管理服務(wù)器(XDMS)是企業(yè)級(jí)XML持久性機(jī)制,它具有傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)的所有功能。具有功能強(qiáng)大的XML索引、分析及加速等特性的XDMS是一大有利因素。

Web服務(wù)策略

如圖1所示,Web服務(wù)策略框架提供了通用模型和相應(yīng)語(yǔ)法,以描述及傳達(dá)Web服務(wù)的策略。Web服務(wù)策略定義了一套基本的構(gòu)件,可由其他Web服務(wù)規(guī)范使用及擴(kuò)展,從而描述一系列廣泛的服務(wù)需求、選項(xiàng)及功能。

Web服務(wù)策略為表示基于XML Web服務(wù)的系統(tǒng)里面實(shí)體具有的功能、需求和一般特性提供了靈活、可擴(kuò)展的語(yǔ)法。Web服務(wù)策略定義了一個(gè)框架和模型,用于把這些屬性表示成策略。策略表達(dá)式允許簡(jiǎn)單的說(shuō)明性聲明,也允許比較復(fù)雜的條件聲明。

Web服務(wù)策略定義的策略是一個(gè)或者多個(gè)策略聲明的集合體。有些聲明規(guī)定了最終在傳輸過(guò)程中予以顯示的傳統(tǒng)需求和功能(譬如驗(yàn)證方案和傳輸協(xié)議選擇)。有些聲明規(guī)定了不在傳輸過(guò)程中予以顯示、但對(duì)服務(wù)的合理選擇及使用至關(guān)重要的需求和功能(譬如隱私策略和服務(wù)質(zhì)量特性)。Web服務(wù)策略提供了單一的策略語(yǔ)法,以便能一致地考慮這兩種聲明。

用XML表示策略聲明稱為策略表達(dá)式。只要使用策略操作符:All、ExactlyOne和OneOrMore等,就可以合并策略聲明。

下面演示了一項(xiàng)策略的簡(jiǎn)單示例:

< policy Priority="200">

< All>

< Language Usage="Required" Language ="it" />

< ExactlyOne>

< SecurityToken TokenType="UsernameToken" Usage="Required">

< Claims>

< Username>Claudio< /Username>

< UsePassword/>

< /Claims>

< /SecurityToken>

< SecurityToken TokenType="X509" Usage="Required">

< Claims>

< SubjectName>Role=Student< /SubjectName>

< /Claims>

< /SecurityToken>

< /ExactlyOne>

< /All>

< /policy>

與策略相關(guān)的其他規(guī)范是:Web服務(wù)策略聲明語(yǔ)言;Web服務(wù)安全策略語(yǔ)言;Web服務(wù)策略附件;針對(duì)Web服務(wù)策略、Web服務(wù)授權(quán)和Web服務(wù)可靠消息傳送等其他技術(shù)的策略。

為了便于管理,還要有策略儲(chǔ)存庫(kù)(policy repository)。這個(gè)管理工具可以為插入、修改及刪除策略提供接口。它應(yīng)當(dāng)可以提供與請(qǐng)求者相關(guān)的所有策略,可以通過(guò)XML數(shù)據(jù)庫(kù)獲得策略。用于XML的簡(jiǎn)單API(SAX)解析器速度快、占用內(nèi)存小,可以對(duì)XML數(shù)據(jù)進(jìn)行解析。

WSS

WSS由結(jié)構(gòu)化信息標(biāo)準(zhǔn)促進(jìn)組織(OASIS)通過(guò)Web服務(wù)安全技術(shù)委員會(huì)開(kāi)發(fā)而成,它定義了使用XML安全標(biāo)準(zhǔn)把數(shù)字簽名和加密運(yùn)用于SOAP文檔的標(biāo)準(zhǔn)方法。WSS規(guī)定了如何保護(hù)在網(wǎng)絡(luò)上傳送的SOAP消息,包括驗(yàn)證、完整性保護(hù)和機(jī)密性。它沒(méi)有規(guī)定如何實(shí)施訪問(wèn)控制,但提供了可用于這類控制的信息。WSS允許有選擇地使用加密。譬如說(shuō),它允許應(yīng)用防火墻檢查未經(jīng)加密的消息。

此外,WSS允許基礎(chǔ)設(shè)施選擇方面有更大的靈活性。它不但可以利用X.509技術(shù),還可以利用Kerberos、SAML或者普通的用戶名和口令。因?yàn)閃SS在SOAP層操作,所以它可以連同消息一起在整個(gè)網(wǎng)絡(luò)上傳輸,即使該消息被查詢或者被保存,也會(huì)保留下來(lái)。

WSS使用W3C開(kāi)發(fā)的XML簽名語(yǔ)法和處理及XML加密兩項(xiàng)標(biāo)準(zhǔn)。WSS的操作方式是,把名為security的XML元素插入到SOAP頭里面。SOAP頭包含了運(yùn)用于該消息的驗(yàn)證、數(shù)字簽名和加密方面的所有信息。它為接收方提供了對(duì)消息進(jìn)行解密及驗(yàn)證所必不可少的信息??梢允褂肵.509證書(shū)、Kerberos票據(jù)、SAML聲明或者其他方法來(lái)規(guī)定密鑰和授權(quán)信息。

帶有< security>元素的SOAP信封示例如下:

< S:Envelope>

< S:Header>

< wsse:Security S:mustUnderstand="1"

xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/07/secext">

< wsse:BinarySecurityToken EncodingType="wsse:Base64Binary">

MIIDQTCC4ZzO7tIgerPlaid1q ... [truncated]

< /wsse:BinarySecurityToken>

< ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">

....XML Signature...

< /ds:Signature>

< /wsse:Security>

< /S:Header>

< S:Body>

< m:OrderAircraft quantity="1" type="777" config="Atlantic"

xmlns:m="http://www.rdta.com/XMLDatabaseOrderSubmission"/>

< /S:Body>

< S:Envelope>

Web服務(wù)安全會(huì)話語(yǔ)言是另一項(xiàng)有用的規(guī)范——它允許使用對(duì)稱密鑰在Web服務(wù)請(qǐng)求方和Web服務(wù)之間創(chuàng)建會(huì)話。Web服務(wù)安全會(huì)話規(guī)范好比SSL,也涉及對(duì)稱密鑰協(xié)商過(guò)程,以簡(jiǎn)化加密消息的傳輸。微軟的Web Services Enhancement 2.0工具包里面就含有Web服務(wù)安全會(huì)話規(guī)范,但目前還沒(méi)有Java實(shí)現(xiàn)方案。

SAML

XML安全聲明標(biāo)記語(yǔ)言(SAML)定義了共享安全聲明(包括驗(yàn)證和授權(quán)聲明)的XML詞匯,能夠?qū)崿F(xiàn)單次登記以及第三方管理這些功能。它還定義了請(qǐng)求/響應(yīng)協(xié)議定義和XML協(xié)議(SOAP)綁定。SAML規(guī)范定義了一般的聲明框架,允許為聲明賦予有效期限,并允許聲明可以針對(duì)特定受眾(避免有可能被人濫用)。聲明與特定的“主題”或者命名實(shí)體聯(lián)系起來(lái)。

SAML是一種標(biāo)準(zhǔn)方法,可以通過(guò)跨越領(lǐng)域界限的異構(gòu)分布式系統(tǒng),交換安全及相關(guān)的數(shù)據(jù)。授權(quán)和審查跟蹤是大家熟悉的兩項(xiàng)安全服務(wù)。在過(guò)去,大多數(shù)系統(tǒng)是基于這種假定而設(shè)計(jì)的:一個(gè)系統(tǒng)會(huì)擁有進(jìn)行訪問(wèn)控制決策所需要的所有信息;所有消息會(huì)記錄在審查跟蹤里面。然而,大規(guī)模分布式系統(tǒng)總是由多家組織、使用多種產(chǎn)品共同組建而成的。因而,用戶可能會(huì)由不同的認(rèn)證中心使用不同的方法來(lái)加以驗(yàn)證。此外,不同的認(rèn)證中心保留了有關(guān)用戶特性和屬性的不同信息。集中所有功能和信息根本就不切合實(shí)際。SAML提供了表示驗(yàn)證和用戶屬性的標(biāo)準(zhǔn)格式,并提供了請(qǐng)求及發(fā)送驗(yàn)證和用戶屬性的協(xié)議。

SAML規(guī)范負(fù)責(zé)定義:

● 表示驗(yàn)證和授權(quán)聲明的詞匯,允許表明驗(yàn)證和授權(quán)如何進(jìn)行、何時(shí)進(jìn)行的語(yǔ)句可以在多方之間傳輸。

● 請(qǐng)求響應(yīng)協(xié)議,以傳輸SAML聲明以及XML協(xié)議(SOAP)綁定。

● 惟一標(biāo)識(shí)符(URN),用于不同的驗(yàn)證機(jī)制和授權(quán)操作。

● 數(shù)字簽名如何與聲明進(jìn)行聯(lián)系。

● SAML Token Profile,它描述了SAML聲明如何由< wsse:security>標(biāo)頭攜帶及引用、SAML聲明如何結(jié)合XML簽名語(yǔ)法和處理標(biāo)準(zhǔn)使用,從而把聲明的語(yǔ)句(譬如claims語(yǔ)句)綁定到SOAP消息上。

XACML

雖然SAML為進(jìn)行驗(yàn)證和授權(quán)聲明、使用XML傳輸這些聲明提供了機(jī)制,但還需要詞匯來(lái)表示進(jìn)行授權(quán)決策所需的規(guī)則。XML訪問(wèn)控制標(biāo)記語(yǔ)言(XACML)就是專門(mén)為表示授權(quán)規(guī)則而開(kāi)發(fā)的。

XACML是表示訪問(wèn)控制策略的語(yǔ)言。換句話說(shuō),它可以保護(hù)數(shù)據(jù)交換過(guò)程中的內(nèi)容。訪問(wèn)控制列表(ACL)缺乏表示實(shí)際系統(tǒng)中往往需要的復(fù)雜策略這一功能。因而,訪問(wèn)控制策略往往嵌入在應(yīng)用代碼當(dāng)中。這給改變策略、甚至發(fā)現(xiàn)哪些策略在執(zhí)行增添了難度。

XACML能夠使用幾乎各種現(xiàn)有的信息,從而確定是否允許對(duì)某資源的訪問(wèn)。它也可以把額外操作(名為義務(wù))與決策聯(lián)系起來(lái)——譬如說(shuō),要求一旦過(guò)了某段時(shí)間,就銷毀請(qǐng)求的數(shù)據(jù)。

XACML根據(jù)資源屬性(包括資源內(nèi)容)或者環(huán)境因素(譬如日期、時(shí)間或者位置)來(lái)進(jìn)行決策。它還會(huì)把與請(qǐng)求有關(guān)的各方具有的屬性考慮進(jìn)來(lái),譬如角色或者群組成員身份。這不但包括提出請(qǐng)求的那一方,還可能包括接收數(shù)據(jù)的那方或者請(qǐng)求中介。

如圖2所示,XACML的典型使用場(chǎng)景就是,某主體想對(duì)某個(gè)資源如文件系統(tǒng)或者Web服務(wù)器采取某種操作。該主體向該實(shí)體提交查詢,以保護(hù)資源。該實(shí)體名為策略執(zhí)行點(diǎn)(PEP)。PEP使用XACML請(qǐng)求語(yǔ)言生成請(qǐng)求。然后,PEP把該請(qǐng)求發(fā)送到策略決策點(diǎn)(PDP),它會(huì)檢查請(qǐng)求、檢索適用于該請(qǐng)求的策略(用SACML策略語(yǔ)言編寫(xiě)),然后根據(jù)評(píng)估策略的XACML規(guī)則,確定要不要授予訪問(wèn)權(quán)。這個(gè)響應(yīng)(用XACML響應(yīng)語(yǔ)言表示)返回給PEP,然后PEP允許或者拒絕請(qǐng)求方的訪問(wèn)。

XQuery和XML數(shù)據(jù)庫(kù)實(shí)現(xiàn)SOA安全

安全標(biāo)準(zhǔn)和安全文檔使用本文討論的XML及各種XML標(biāo)記語(yǔ)言來(lái)描述。XDMS是為SOA中的安全策略文檔和安全消息添加持久性并進(jìn)行查詢的一種理想機(jī)制。如前面所述,XQuery可以用來(lái)從XML文檔提取信息。XQuery基本上是一種函數(shù)式語(yǔ)言,它使用表達(dá)式作為裝配查詢的集中部分。每個(gè)查詢可以描述成一組表達(dá)式,該表達(dá)式可以嵌套。這項(xiàng)主要特性使XQuery成為操縱XML處理的一種靈活、全面的方法。

為了有效地訪問(wèn)或者保存XML文檔,用戶需要XDMS。支持XQuery的XDMS能夠迅速而方便地從XML安全文檔檢索信息。XML數(shù)據(jù)庫(kù)已趨于成熟,可隨時(shí)提供XML內(nèi)容搜索和存儲(chǔ)功能。

譬如說(shuō),XDMS能夠維護(hù)不同版本的安全策略文檔,為策略變更提供審查跟蹤。此外,也可以為XML安全消息和請(qǐng)求添加持久性,提供SOA中所有安全事務(wù)的審查跟蹤。(ccw)

發(fā)布:2007-04-22 11:06    編輯:泛普軟件 · xiaona    [打印此頁(yè)]    [關(guān)閉]
相關(guān)文章:
昆明OA系統(tǒng)
聯(lián)系方式

成都公司:成都市成華區(qū)建設(shè)南路160號(hào)1層9號(hào)

重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務(wù)大廈18樓

咨詢:400-8352-114

加微信,免費(fèi)獲取試用系統(tǒng)

QQ在線咨詢

泛普昆明OA快博其他應(yīng)用

昆明OA 昆明新聞動(dòng)態(tài) 昆明OA管理信息化 昆明OA快博 昆明OA軟件行業(yè)資訊 昆明軟件開(kāi)發(fā)公司 昆明門(mén)禁系統(tǒng) 昆明物業(yè)管理軟件 昆明倉(cāng)庫(kù)管理軟件 昆明餐飲管理軟件 昆明網(wǎng)站建設(shè)公司