專利名稱:用于處理基于瀏覽器的應(yīng)用中的安全問(wèn)題的多域訪問(wèn)代理的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及連網(wǎng)的計(jì)算機(jī)應(yīng)用,特別涉及-根據(jù)權(quán)利要求1的前序部分-一種用于程序的方法和系統(tǒng)-例如,在瀏覽器中運(yùn)行的JavaScript程序,其中瀏覽器代表“安全沙盒(security sandbox)”,其阻止這種程序能夠從與該程序被下載的服務(wù)器不同的服務(wù)器訪問(wèn)內(nèi)容。
背景技術(shù):
參照?qǐng)D1,示出了現(xiàn)有技術(shù)的連網(wǎng)系統(tǒng)環(huán)境。萬(wàn)維網(wǎng)瀏覽器1用來(lái)參與因特網(wǎng)中萬(wàn)維網(wǎng)應(yīng)用的運(yùn)行。這些萬(wàn)維網(wǎng)應(yīng)用在萬(wàn)維網(wǎng)服務(wù)器2上運(yùn)行。
在最近的現(xiàn)有技術(shù)中,存在將由其它服務(wù)器5遞送(deliver)的網(wǎng)頁(yè)嵌入到它們的網(wǎng)頁(yè)中的萬(wàn)維網(wǎng)應(yīng)用2。在此各方(termini)的使用如下所述這些萬(wàn)維網(wǎng)應(yīng)用被稱作聚集萬(wàn)維網(wǎng)應(yīng)用2,并且嵌入內(nèi)容的網(wǎng)頁(yè)被稱作被聚集網(wǎng)頁(yè)3。聚集萬(wàn)維網(wǎng)應(yīng)用2在聚集萬(wàn)維網(wǎng)服務(wù)器4上運(yùn)行。在特定情況下,服務(wù)器5是所謂的內(nèi)容萬(wàn)維網(wǎng)服務(wù)器。
內(nèi)容萬(wàn)維網(wǎng)服務(wù)器5駐留內(nèi)容萬(wàn)維網(wǎng)應(yīng)用6。該應(yīng)用遞送被集成到被聚集網(wǎng)頁(yè)3中的萬(wàn)維網(wǎng)內(nèi)容7。
該場(chǎng)景的例子是顯示天氣預(yù)報(bào)的聚集服務(wù)器2的門(mén)戶頁(yè)面。包含天氣預(yù)報(bào)的網(wǎng)頁(yè)由單獨(dú)的內(nèi)容萬(wàn)維網(wǎng)服務(wù)器5遞送。該網(wǎng)頁(yè)被集成到門(mén)戶頁(yè)面中。這樣,該環(huán)境基本上由在網(wǎng)絡(luò)中通過(guò)瀏覽器1通信的至少兩個(gè)服務(wù)器4、5和客戶端定義。
在現(xiàn)有技術(shù)中,存在兩種不同的技術(shù),用于在被聚集網(wǎng)頁(yè)3上顯示內(nèi)容萬(wàn)維網(wǎng)應(yīng)用6的內(nèi)容,第一種是所謂的iFrame中的客戶端側(cè)聚集,第二種是服務(wù)器側(cè)聚集。
對(duì)于現(xiàn)有技術(shù)iFrame,簡(jiǎn)短地說(shuō),當(dāng)在頁(yè)面中存在iFrame時(shí),則將另一網(wǎng)頁(yè)加載到該iFrame中并且將其顯示給用戶。該網(wǎng)頁(yè)可以來(lái)自不同的萬(wàn)維網(wǎng)服務(wù)器。
客戶端側(cè)聚集如下工作在圖2的步驟100,瀏覽器1向聚集萬(wàn)維網(wǎng)服務(wù)器4請(qǐng)求被聚集網(wǎng)頁(yè)3。
在步驟200,聚集萬(wàn)維網(wǎng)服務(wù)器4構(gòu)造被聚集網(wǎng)頁(yè)3。萬(wàn)維網(wǎng)內(nèi)容7的URL被寫(xiě)入到被聚集網(wǎng)頁(yè)3上的iFrame中。
在步驟300,將被聚集網(wǎng)頁(yè)3發(fā)送回到瀏覽器1。
在步驟350,瀏覽器1使用iFrame中的URL向萬(wàn)維網(wǎng)內(nèi)容應(yīng)用6請(qǐng)求萬(wàn)維網(wǎng)內(nèi)容7。在步驟360,內(nèi)容萬(wàn)維網(wǎng)應(yīng)用6答復(fù)該請(qǐng)求并且往回發(fā)送萬(wàn)維網(wǎng)內(nèi)容7。該萬(wàn)維網(wǎng)內(nèi)容7包含將在瀏覽中執(zhí)行的代碼8。
在步驟400,瀏覽器1將被聚集網(wǎng)頁(yè)3顯示給用戶,其中將iFrame的空間保持空白。
在步驟450,瀏覽器1將萬(wàn)維網(wǎng)內(nèi)容7放置到iFrame中。
在步驟500,當(dāng)萬(wàn)維網(wǎng)內(nèi)容7包含可執(zhí)行代碼8時(shí),瀏覽器開(kāi)始在瀏覽器中執(zhí)行代碼8。在步驟600,如果該代碼需要與內(nèi)容萬(wàn)維網(wǎng)應(yīng)用的網(wǎng)絡(luò)連接,則它可以打開(kāi)該連接。
該方法的主要缺點(diǎn)是框架(包括iFrame)被認(rèn)為是其安全性脆弱,參見(jiàn)http//www.heise.de/security/news/meldung/48793。
對(duì)于上述現(xiàn)有技術(shù)的服務(wù)器側(cè)聚集,為了克服客戶端側(cè)聚集的問(wèn)題,內(nèi)容可以由服務(wù)器4嵌入。服務(wù)器側(cè)聚集致使得iFrame的使用不必要。在圖3中示出了控制流程。
在步驟100,在這種情況下,瀏覽器1向聚集萬(wàn)維網(wǎng)服務(wù)器4請(qǐng)求被聚集網(wǎng)頁(yè)3。
在步驟150,聚集萬(wàn)維網(wǎng)應(yīng)用2從內(nèi)容萬(wàn)維網(wǎng)應(yīng)用6檢索萬(wàn)維網(wǎng)內(nèi)容7。
在步驟200,聚集萬(wàn)維網(wǎng)應(yīng)用2將在步驟150接收的內(nèi)容嵌入到被聚集網(wǎng)頁(yè)3中。
在步驟300,聚集萬(wàn)維網(wǎng)服務(wù)器4將在步驟200構(gòu)造的被聚集網(wǎng)頁(yè)3發(fā)送回到瀏覽器1。
在步驟400,瀏覽器1向用戶顯示被聚集網(wǎng)頁(yè)3。該被聚集網(wǎng)頁(yè)3現(xiàn)在包含由內(nèi)容萬(wàn)維網(wǎng)應(yīng)用6遞送的萬(wàn)維網(wǎng)內(nèi)容7。
然而,如上所述,萬(wàn)維網(wǎng)內(nèi)容7可能包含在步驟500在瀏覽器1中執(zhí)行的代碼。該代碼8通常是采用JavaScript或Java編寫(xiě)的。這兩種語(yǔ)言的安全概念拒絕與網(wǎng)頁(yè)被下載的主機(jī)不同的主機(jī)之間的任何網(wǎng)絡(luò)通信。
這在下面情形中將會(huì)導(dǎo)致問(wèn)題第一,當(dāng)使用上述服務(wù)器側(cè)聚集方法來(lái)聚集內(nèi)容萬(wàn)維網(wǎng)應(yīng)用6的萬(wàn)維網(wǎng)內(nèi)容7時(shí);第二,當(dāng)萬(wàn)維網(wǎng)內(nèi)容7包含在瀏覽器1中執(zhí)行的代碼8時(shí);第三,當(dāng)在步驟600代碼8需要與內(nèi)容萬(wàn)維網(wǎng)應(yīng)用6進(jìn)行通信時(shí);第四,當(dāng)內(nèi)容萬(wàn)維網(wǎng)應(yīng)用6和聚集萬(wàn)維網(wǎng)應(yīng)用2不是在相同的服務(wù)器和相同的TCP端口號(hào)上運(yùn)行時(shí)。
如果萬(wàn)維網(wǎng)內(nèi)容包含需要網(wǎng)絡(luò)通信的代碼,則代碼執(zhí)行將如下繼續(xù)在步驟500,瀏覽器1從聚集萬(wàn)維網(wǎng)服務(wù)器4接收代碼8以及被聚集網(wǎng)頁(yè)3。在步驟600,當(dāng)代碼8被執(zhí)行時(shí),它試圖打開(kāi)與內(nèi)容萬(wàn)維網(wǎng)服務(wù)器5的網(wǎng)絡(luò)連接9,并且試圖發(fā)出請(qǐng)求。
在另一步驟中,瀏覽器1的安全概念拒絕該網(wǎng)絡(luò)訪問(wèn)9,因?yàn)橹辉试S與聚集萬(wàn)維網(wǎng)服務(wù)器4的網(wǎng)絡(luò)連接。這樣,代碼8執(zhí)行失敗。
這是現(xiàn)有技術(shù)的主要缺點(diǎn)。
發(fā)明內(nèi)容
這樣,本發(fā)明的目的是減輕如上所述的現(xiàn)有技術(shù)的缺點(diǎn)。
本發(fā)明的這一目的通過(guò)在所附的獨(dú)立權(quán)利要求中表述的特征來(lái)實(shí)現(xiàn)。在各個(gè)從屬權(quán)利要求中闡述了本發(fā)明的另外優(yōu)選布置和實(shí)施例?,F(xiàn)在應(yīng)當(dāng)參考所附權(quán)利要求。
根據(jù)本發(fā)明的最寬方面,一種連網(wǎng)環(huán)境中基于請(qǐng)求的通信方法,該連網(wǎng)環(huán)境在以下各方之間-終端用戶相關(guān)客戶端,具有客戶端URL,并且通過(guò)萬(wàn)維網(wǎng)瀏覽器實(shí)現(xiàn)用戶接口,-第一萬(wàn)維網(wǎng)服務(wù)器,具有第一服務(wù)器URL,并且與客戶端的萬(wàn)維網(wǎng)瀏覽器進(jìn)行通信,以及至少-第二萬(wàn)維網(wǎng)服務(wù)器,具有不同于第一服務(wù)器URL的第二服務(wù)器URL,并且與所述第一萬(wàn)維網(wǎng)服務(wù)器進(jìn)行通信,其中第二萬(wàn)維網(wǎng)服務(wù)器(5)運(yùn)行擔(dān)當(dāng)后端內(nèi)容資源的萬(wàn)維網(wǎng)應(yīng)用,-其中,當(dāng)執(zhí)行從所述第一萬(wàn)維網(wǎng)服務(wù)器下載的可執(zhí)行代碼例如Java代碼或JavaScript代碼以便訪問(wèn)所述第二萬(wàn)維網(wǎng)服務(wù)器上的所述后端內(nèi)容資源時(shí),由于安全限制有效,因此在被聚集萬(wàn)維網(wǎng)應(yīng)用的運(yùn)行中,由所述終端用戶相關(guān)客戶端萬(wàn)維網(wǎng)瀏覽器訪問(wèn)所述內(nèi)容資源受到限制,其特征在于,使用在此被稱作“代理小服務(wù)程序”的程序裝置,其用于通過(guò)執(zhí)行以下步驟來(lái)克服所述安全限制a)將從客戶端進(jìn)入第一服務(wù)器并且被定向?yàn)樵L問(wèn)所述后端內(nèi)容資源的請(qǐng)求中的請(qǐng)求者地址改變?yōu)樗龅谝环?wù)器URL,b)將所述改變的請(qǐng)求轉(zhuǎn)發(fā)到第二萬(wàn)維網(wǎng)服務(wù)器,c)從第二萬(wàn)維網(wǎng)服務(wù)器接收對(duì)所轉(zhuǎn)發(fā)請(qǐng)求的響應(yīng),該響應(yīng)包括所述第二服務(wù)器URL作為響應(yīng)地址,d)將該響應(yīng)地址改變成第一服務(wù)器URL,e)將改變后的請(qǐng)求轉(zhuǎn)發(fā)回到最初發(fā)布該請(qǐng)求的客戶端。
這樣,本發(fā)明的一般思想是執(zhí)行以下步驟a)將由客戶端發(fā)布的進(jìn)入請(qǐng)求重定向到第二萬(wàn)維網(wǎng)服務(wù)器,以及b)將來(lái)自第二萬(wàn)維網(wǎng)服務(wù)器的對(duì)該請(qǐng)求的響應(yīng)轉(zhuǎn)發(fā)給最初發(fā)布該請(qǐng)求的客戶端,其中,地址被交換以便遵循客戶端瀏覽器的安全限制,該安全限制拒絕執(zhí)行從所述第一服務(wù)器加載以便在所述第二服務(wù)器上執(zhí)行的代碼。例如通過(guò)使用特定請(qǐng)求ID來(lái)確保在被重定向和被轉(zhuǎn)發(fā)的請(qǐng)求和內(nèi)容萬(wàn)維網(wǎng)應(yīng)用之間的唯一關(guān)聯(lián)。
如果后端是有狀態(tài)的萬(wàn)維網(wǎng)應(yīng)用,則需要該唯一關(guān)聯(lián)??梢酝ㄟ^(guò)使用由內(nèi)容萬(wàn)維網(wǎng)應(yīng)用6生成的會(huì)話id來(lái)實(shí)現(xiàn)可能的關(guān)聯(lián)。內(nèi)容萬(wàn)維網(wǎng)應(yīng)用將會(huì)話id發(fā)送回到代理小服務(wù)程序。然后,該代理小服務(wù)程序存儲(chǔ)該會(huì)話id,并且下次它代表客戶端發(fā)出請(qǐng)求時(shí),將使用該會(huì)話id。使用這種技術(shù)還可以減少對(duì)后端應(yīng)用的登陸請(qǐng)求的數(shù)目,并且可以提高整體性能。
當(dāng)通過(guò)從第一或第二服務(wù)器中的任一個(gè)下載并且在客戶端瀏覽器1上調(diào)用的可執(zhí)行代碼如Javascript、Java等來(lái)進(jìn)行對(duì)后端資源的訪問(wèn)時(shí),存在非常普通類(lèi)型的使用。
可以從廣義上理解術(shù)語(yǔ)“后端”資源。當(dāng)它由一個(gè)或多個(gè)“第二”服務(wù)器托管(host)時(shí),它將包括在第一服務(wù)器處不直接可用的硬件和軟件。相比于“第一”服務(wù)器,這些第二服務(wù)器可以不同地被管理,位于不同位置,以及不同地被擁有。
此外,創(chuàng)新新基本方法可以有用地添加對(duì)客戶端瀏覽器側(cè)的用戶的認(rèn)證過(guò)程。這是有利的,因?yàn)榉浅Mǔ5?,上述“后端”資源僅僅提供有限制的訪問(wèn),這樣只有在成功的用戶認(rèn)證之后,它們才能被訪問(wèn)。典型的原因可能是以后端資源滿足的所請(qǐng)求服務(wù)可能是應(yīng)付費(fèi)的服務(wù)并且/或者在這些資源的使用中存在保密約束。這樣,通常訪問(wèn)它們需要用戶名和相關(guān)聯(lián)的密碼。根據(jù)本發(fā)明的代理小服務(wù)程序可以有利地用于對(duì)向用戶提供所謂的“單點(diǎn)登錄”(SSO)體驗(yàn)的內(nèi)容萬(wàn)維網(wǎng)服務(wù)器執(zhí)行所需用戶認(rèn)證。
此外,當(dāng)后端資源地址作為參數(shù)被嵌入到重定向的請(qǐng)求中時(shí),對(duì)于多于一個(gè)“第二”服務(wù)器將由聚集萬(wàn)維網(wǎng)應(yīng)用中的“第一”聚集服務(wù)器聚集的情形,可以取得易于使用的實(shí)現(xiàn)。
通過(guò)示例來(lái)說(shuō)明本發(fā)明,并且本發(fā)明不局限于附圖中各圖的形式,
其中圖1是示出現(xiàn)有技術(shù)的系統(tǒng)環(huán)境的示意圖;圖2是示出現(xiàn)有技術(shù)的客戶端側(cè)內(nèi)容聚集的控制流程的示意圖;圖3是示出現(xiàn)有技術(shù)的服務(wù)器側(cè)內(nèi)容聚集的控制流程的示意圖;圖4是示出創(chuàng)新性實(shí)施例中的系統(tǒng)環(huán)境的示意圖;圖5是示出創(chuàng)新性實(shí)施例中的控制流程的示意圖;以及圖6是示出第二創(chuàng)新性實(shí)施例中的系統(tǒng)環(huán)境的示意圖,其包括受到安全保護(hù)的后端資源。
具體實(shí)施例方式
一般參考附圖并且現(xiàn)在特別參考圖4,根據(jù)本發(fā)明的優(yōu)選實(shí)施例,例如作為小服務(wù)程序、asp或cgi腳本而實(shí)現(xiàn)的附加萬(wàn)維網(wǎng)應(yīng)用10被部署到聚集萬(wàn)維網(wǎng)應(yīng)用2上。該萬(wàn)維網(wǎng)應(yīng)用擔(dān)當(dāng)代理,并且在此示例性地被稱作代理小服務(wù)程序10。代理小服務(wù)程序10被實(shí)現(xiàn)成使得能夠接收通過(guò)HTTP發(fā)出的客戶端瀏覽器1的請(qǐng)求。然后,通過(guò)第一服務(wù)器URL訪問(wèn)的代理小服務(wù)程序10將完全相同的請(qǐng)求發(fā)布到通過(guò)第二服務(wù)器URL訪問(wèn)的另一第二服務(wù)器,例如內(nèi)容萬(wàn)維網(wǎng)服務(wù)器5。當(dāng)該服務(wù)器答復(fù)時(shí),代理小服務(wù)程序10往回發(fā)送完全相同的響應(yīng),作為對(duì)它先前接收的原始請(qǐng)求的響應(yīng)。由代理10改變這些請(qǐng)求中的URL,以便遵循客戶端處的瀏覽器的安全限制。
該序列也可以被視為“轉(zhuǎn)發(fā)”。將原始請(qǐng)求轉(zhuǎn)發(fā)給另一服務(wù)器,并且將響應(yīng)轉(zhuǎn)發(fā)回到原始請(qǐng)求者。
如果將要向其轉(zhuǎn)發(fā)請(qǐng)求的服務(wù)器不時(shí)地變化,則可以以這樣的方式實(shí)現(xiàn)代理小服務(wù)程序10,其中專用于此目的的請(qǐng)求參數(shù)確定將要向其轉(zhuǎn)發(fā)請(qǐng)求的服務(wù)器的地址。
為了使用根據(jù)該實(shí)施例插入的代理小服務(wù)程序10,參照?qǐng)D5對(duì)上述步驟500-700進(jìn)行如下修改在步驟500,瀏覽器1從聚集萬(wàn)維網(wǎng)服務(wù)器4接收可執(zhí)行代碼8以及被聚集網(wǎng)頁(yè)3。
在步驟600,代碼8打開(kāi)與代理小服務(wù)程序10的網(wǎng)絡(luò)連接并且發(fā)布請(qǐng)求。
在步驟650,代理小服務(wù)程序10將所述請(qǐng)求的URL從萬(wàn)維網(wǎng)應(yīng)用2的URL(其自己的URL)改變成內(nèi)容萬(wàn)維網(wǎng)應(yīng)用6的URL。然后,在步驟660,它生成請(qǐng)求ID,以便控制內(nèi)容萬(wàn)維網(wǎng)應(yīng)用的狀態(tài)。
在步驟700,代理小服務(wù)程序10將該請(qǐng)求轉(zhuǎn)發(fā)給內(nèi)容萬(wàn)維網(wǎng)應(yīng)用6。這樣,執(zhí)行了重定向。應(yīng)該注意的是,因?yàn)樵撜?qǐng)求發(fā)到與該代碼來(lái)自的完全相同的服務(wù)器,即代理小服務(wù)程序10,所以瀏覽器1允許該請(qǐng)求。
然后,在下一步驟,由內(nèi)容萬(wàn)維網(wǎng)應(yīng)用6以包括所請(qǐng)求內(nèi)容的另一請(qǐng)求來(lái)答復(fù)該請(qǐng)求。
由代理小服務(wù)程序10在步驟710接收并且識(shí)別(參見(jiàn)上面步驟660)該請(qǐng)求,該代理小服務(wù)程序10再次將地址從其自己的URL改變成客戶端瀏覽器1的URL,參見(jiàn)步驟720。
在步驟750,代理小服務(wù)程序10將響應(yīng)轉(zhuǎn)發(fā)回到瀏覽器1處的代碼8,作為對(duì)在600發(fā)出的請(qǐng)求的響應(yīng)。
在步驟800,代碼1接收該響應(yīng),并且使用在步驟700接收的數(shù)據(jù)繼續(xù)執(zhí)行。
在沒(méi)有創(chuàng)新性代理小服務(wù)程序10的場(chǎng)景中-再次參見(jiàn)圖3-因?yàn)闉g覽器1拒絕與內(nèi)容萬(wàn)維網(wǎng)服務(wù)器5的網(wǎng)絡(luò)通信9,所以在步驟800代碼8的執(zhí)行失敗。
在步驟800,因?yàn)榫W(wǎng)絡(luò)通信9被定向到聚集萬(wàn)維網(wǎng)服務(wù)器4并且由于代理小服務(wù)程序10-而非瀏覽器1-打開(kāi)與內(nèi)容萬(wàn)維網(wǎng)服務(wù)器5的網(wǎng)絡(luò)通信11這一事實(shí),所以使用代理小服務(wù)程序10允許代碼8的執(zhí)行。
在上面重定向方法的創(chuàng)新性實(shí)現(xiàn)中需要進(jìn)行如下系統(tǒng)變更根據(jù)本發(fā)明,代理小服務(wù)程序10或其等價(jià)物必須被實(shí)現(xiàn)并部署在聚集萬(wàn)維網(wǎng)服務(wù)器4上。代理小服務(wù)程序10必須通過(guò)與聚集萬(wàn)維網(wǎng)應(yīng)用2相同的主機(jī)名和端口號(hào)才可訪問(wèn)。
可以人工地或者可以由聚集萬(wàn)維網(wǎng)應(yīng)用2進(jìn)行下面的代碼修改。
必須將由代碼8訪問(wèn)的URL從內(nèi)容萬(wàn)維網(wǎng)應(yīng)用6的地址改變成代理小服務(wù)程序10的地址,參見(jiàn)上面的步驟650。
采用偽代碼的例子如下原始代碼連接到http//content.com/weather修改后的代碼連接到http//aggregating.com/proxySrv?forwardTo=content.com/weather根據(jù)內(nèi)容,可能有必要改變代理小服務(wù)程序接收到的內(nèi)容。如果萬(wàn)維網(wǎng)內(nèi)容包含對(duì)存儲(chǔ)在內(nèi)容萬(wàn)維網(wǎng)服務(wù)器5上的資源(例如,圖像、其它網(wǎng)頁(yè)等等)的引用,就要如此。必須修改這些引用,以便它們指向代理小服務(wù)程序??梢杂纱嬖谟诖硇》?wù)程序10中的預(yù)編程代碼來(lái)進(jìn)行該修改。
下面的例子采用偽代碼示出了這種更新,假定weathermap.jpg是內(nèi)容萬(wàn)維網(wǎng)服務(wù)器上的資源原始引用<img src=”/images/weathermap.jpg”/>
修改后的引用<imgsrc=http//aggregating.com/proxySrv?forwardTo=content.com/images/weathermap.jpg/>
下面章節(jié)描述本發(fā)明的優(yōu)選使用本發(fā)明對(duì)于外部應(yīng)用被聚集到網(wǎng)頁(yè)上的情況是必要的。這樣,典型地,門(mén)戶經(jīng)常包含來(lái)自不同來(lái)源的內(nèi)容。聚集萬(wàn)維網(wǎng)服務(wù)器4就是這種情況下的門(mén)戶服務(wù)器?;贘ava 2企業(yè)版(J2EE)的門(mén)戶服務(wù)器十分適合于該任務(wù),因?yàn)榈讓拥腏2EE應(yīng)用服務(wù)器允許部署附加的萬(wàn)維網(wǎng)應(yīng)用,例如包含代理小服務(wù)程序的應(yīng)用。該代理小服務(wù)程序可以被實(shí)現(xiàn)為Java小服務(wù)程序。
一個(gè)使用該方案的樣例應(yīng)用是用于編輯萬(wàn)維網(wǎng)內(nèi)容的門(mén)戶應(yīng)用。該編輯器在瀏覽器中運(yùn)行。由該編輯器處理的內(nèi)容被存儲(chǔ)在不同于門(mén)戶服務(wù)器的萬(wàn)維網(wǎng)服務(wù)器上。然后,該萬(wàn)維網(wǎng)服務(wù)器擔(dān)當(dāng)上述的內(nèi)容萬(wàn)維網(wǎng)服務(wù)器5。當(dāng)用戶在瀏覽器中對(duì)該萬(wàn)維網(wǎng)內(nèi)容進(jìn)行修改時(shí),可能需要從該萬(wàn)維網(wǎng)服務(wù)器請(qǐng)求一些資源例如圖像。在沒(méi)有代理小服務(wù)程序的情況下,例如在現(xiàn)有技術(shù)中,因?yàn)閮?nèi)置于普通瀏覽器程序中的上述“沙盒安全性”,所以不可能讓編輯器代碼訪問(wèn)這些后端資源。因?yàn)榫庉嬈鞔a只能訪問(wèn)門(mén)戶服務(wù)器,所以它將不能訪問(wèn)萬(wàn)維網(wǎng)服務(wù)器。
創(chuàng)新性代理小服務(wù)程序10不僅可以用于檢索這樣的后端資源,還可以用于上載信息。當(dāng)用戶使用該編輯器時(shí),該編輯器可以在后臺(tái)將當(dāng)前編輯的網(wǎng)頁(yè)保存到內(nèi)容萬(wàn)維網(wǎng)服務(wù)器中。
使用代理小服務(wù)程序的另一優(yōu)點(diǎn)是,使用相同的代理小服務(wù)程序來(lái)訪問(wèn)不同的萬(wàn)維網(wǎng)服務(wù)器5是可能的。它還使得能夠容易地將聚集萬(wàn)維網(wǎng)服務(wù)器4移到不同地址,因?yàn)楫?dāng)原始萬(wàn)維網(wǎng)應(yīng)用6保持不變時(shí),只需要變更代理小服務(wù)程序。
在另外的變體中,并且參照?qǐng)D6,其示出了圖4的各個(gè)部分,上述過(guò)程添加了用于訪問(wèn)內(nèi)容資源6的相關(guān)用戶認(rèn)證。
在此,首先用戶通過(guò)鍵入他的用戶名和密碼在門(mén)戶服務(wù)器4處登錄。
在該具體實(shí)施例中,門(mén)戶服務(wù)器4管理現(xiàn)有技術(shù)的(IBM)“證書(shū)庫(kù)(credential vault)”服務(wù)。該“證書(shū)庫(kù)”服務(wù)通過(guò)存儲(chǔ)用戶擁有的所有證書(shū)來(lái)提供單點(diǎn)登錄(SSO)用戶體驗(yàn)。實(shí)現(xiàn)本創(chuàng)新性特征的代理小服務(wù)程序10將用戶名和密碼與唯一的安全標(biāo)識(shí)符(標(biāo)記)一起存儲(chǔ)到證書(shū)數(shù)據(jù)庫(kù)12中。然后,它將該標(biāo)記發(fā)送回到瀏覽器。該標(biāo)記可以被認(rèn)為是短期生存的隨機(jī)字母數(shù)字密碼,其在會(huì)話結(jié)束之后將會(huì)變得無(wú)效。
瀏覽器接收該標(biāo)記。
然后,假定用戶點(diǎn)擊,以提交對(duì)安全相關(guān)、受到密碼保護(hù)的后端資源13例如科學(xué)圖書(shū)館、音樂(lè)或影片“店”的請(qǐng)求。
在這種情況下,在門(mén)戶服務(wù)器處接收該用戶請(qǐng)求以及作為該請(qǐng)求中的參數(shù)而被發(fā)送的標(biāo)記。該標(biāo)記用作索引以在證書(shū)數(shù)據(jù)庫(kù)12中查找用戶名和密碼。然后,向“第二”服務(wù)器5發(fā)布包括該用戶名和密碼的請(qǐng)求。通過(guò)這樣,在駐留了后端資源的服務(wù)器處成功地確認(rèn)了這些個(gè)人數(shù)據(jù)之后,可以允許為該請(qǐng)求進(jìn)行訪問(wèn),并且可以使用受到密碼保護(hù)的資源。
在結(jié)束了該資源的使用之后,優(yōu)選地,刪除該標(biāo)記,而不留下恢復(fù)它的痕跡。這減少了濫用這種安全標(biāo)記的風(fēng)險(xiǎn)。對(duì)于新請(qǐng)求,將在門(mén)戶服務(wù)器處生成相應(yīng)的新標(biāo)記。
本發(fā)明能夠用硬件、軟件或者硬件和軟件的組合來(lái)實(shí)現(xiàn)。根據(jù)本發(fā)明的工具能夠以集中方式在一臺(tái)計(jì)算機(jī)中實(shí)現(xiàn),或者以分布方式實(shí)現(xiàn),其中不同的單元散布在若干互連的計(jì)算機(jī)系統(tǒng)之間。適于執(zhí)行在此所描述的方法的任何種類(lèi)的計(jì)算機(jī)系統(tǒng)或其它設(shè)備都是合適的。硬件和軟件的典型組合可以是帶有計(jì)算機(jī)程序的通用計(jì)算機(jī)系統(tǒng),其中,當(dāng)被裝載和執(zhí)行時(shí),該計(jì)算機(jī)程序控制該計(jì)算機(jī)系統(tǒng),以便使其執(zhí)行在此描述的方法。
本發(fā)明還可以被嵌入到計(jì)算機(jī)程序產(chǎn)品中,其包括使得能夠?qū)崿F(xiàn)在此描述的方法的所有特征,并且當(dāng)被裝載到計(jì)算機(jī)系統(tǒng)中時(shí),其能夠執(zhí)行這些方法。
本上下文中的計(jì)算機(jī)程序裝置或計(jì)算機(jī)程序意味著采用任何語(yǔ)言、代碼或表示法的一組指令的任何表達(dá),該組指令旨在使具有信息處理能力的系統(tǒng)直接地或者在以下操作的任一個(gè)或兩者之后執(zhí)行特定的功能a)轉(zhuǎn)換成另一語(yǔ)言、代碼或表示法;b)以不同的材料形式再現(xiàn)。
權(quán)利要求
1.一種連網(wǎng)環(huán)境中基于請(qǐng)求的通信方法,所述連網(wǎng)環(huán)境在以下各方之間-終端用戶相關(guān)客戶端,具有客戶端URL,并且通過(guò)萬(wàn)維網(wǎng)瀏覽器(1)實(shí)現(xiàn)用戶接口,-第一萬(wàn)維網(wǎng)服務(wù)器(4),具有第一服務(wù)器URL,并且與客戶端的萬(wàn)維網(wǎng)瀏覽器(1)進(jìn)行通信,以及至少-第二萬(wàn)維網(wǎng)服務(wù)器(5),具有不同于第一服務(wù)器URL的第二服務(wù)器URL,并且與所述第一萬(wàn)維網(wǎng)服務(wù)器(4)進(jìn)行通信,其中,第二萬(wàn)維網(wǎng)服務(wù)器(5)運(yùn)行擔(dān)當(dāng)后端內(nèi)容資源(13)的萬(wàn)維網(wǎng)應(yīng)用(6),-其中,當(dāng)執(zhí)行從所述第一萬(wàn)維網(wǎng)服務(wù)器下載的可執(zhí)行代碼以便訪問(wèn)所述第二萬(wàn)維網(wǎng)服務(wù)器上的所述后端內(nèi)容資源(13)時(shí),由于安全限制有效,因此在被聚集萬(wàn)維網(wǎng)應(yīng)用(2)的運(yùn)行中,由所述終端用戶相關(guān)客戶端(1)萬(wàn)維網(wǎng)瀏覽器訪問(wèn)所述內(nèi)容資源(13)受到限制,其特征在于使用程序裝置(10),其用于通過(guò)執(zhí)行以下步驟來(lái)克服所述安全限制a)將從客戶端進(jìn)入第一服務(wù)器并且被定向?yàn)樵L問(wèn)所述后端內(nèi)容資源(13)的請(qǐng)求中的請(qǐng)求者地址改變(650)為所述第一服務(wù)器URL,b)將所述改變的請(qǐng)求轉(zhuǎn)發(fā)到第二萬(wàn)維網(wǎng)服務(wù)器(5),c)從第二萬(wàn)維網(wǎng)服務(wù)器(5)接收(710)對(duì)所轉(zhuǎn)發(fā)請(qǐng)求的響應(yīng),所述響應(yīng)包括所述第二服務(wù)器URL作為響應(yīng)地址,d)將該響應(yīng)地址改變(720)為第一服務(wù)器URL,e)將改變后的請(qǐng)求轉(zhuǎn)發(fā)回到(750)最初發(fā)布該請(qǐng)求的客戶端。
2.根據(jù)權(quán)利要求1所述的方法,還包括以下步驟生成(660)所述重定向的請(qǐng)求和所述內(nèi)容資源(13)之間的唯一關(guān)聯(lián),以便控制萬(wàn)維網(wǎng)應(yīng)用的不同狀態(tài)。
3.根據(jù)權(quán)利要求1所述的方法,其中步驟b)包括將所述內(nèi)容資源(13)的地址作為參數(shù)嵌入到所述重定向的請(qǐng)求中。
4.根據(jù)權(quán)利要求1所述的方法,其中,所述內(nèi)容資源(13)將由將在所述終端用戶相關(guān)客戶端瀏覽器(1)處執(zhí)行的可執(zhí)行代碼(8)使用。
5.根據(jù)權(quán)利要求1所述的方法,還包括以下步驟a)接收用戶相關(guān)安全數(shù)據(jù),b)將所述安全數(shù)據(jù)存儲(chǔ)到安全數(shù)據(jù)庫(kù)(12)中,c)在請(qǐng)求受到安全保護(hù)的內(nèi)容資源(13)時(shí),在所述數(shù)據(jù)庫(kù)(12)中查詢所述安全數(shù)據(jù),d)將所述安全數(shù)據(jù)包括到所述重定向的請(qǐng)求中以便訪問(wèn)所述內(nèi)容資源。
6.一種用于連網(wǎng)環(huán)境中基于請(qǐng)求的通信方法的網(wǎng)絡(luò)服務(wù)器計(jì)算機(jī)系統(tǒng)(4),包括-終端用戶相關(guān)客戶端,具有客戶端URL,并且通過(guò)萬(wàn)維網(wǎng)瀏覽器(1)實(shí)現(xiàn)用戶接口,-第一萬(wàn)維網(wǎng)服務(wù)器(4),具有第一服務(wù)器URL,并且與客戶端的萬(wàn)維網(wǎng)瀏覽器(1)進(jìn)行通信,以及至少-第二萬(wàn)維網(wǎng)服務(wù)器(5),具有不同于第一服務(wù)器URL的第二服務(wù)器URL,并且與所述第一萬(wàn)維網(wǎng)服務(wù)器(4)進(jìn)行通信,其中,第二萬(wàn)維網(wǎng)服務(wù)器(5)運(yùn)行擔(dān)當(dāng)后端內(nèi)容資源(13)的萬(wàn)維網(wǎng)應(yīng)用(6),-其中,當(dāng)執(zhí)行從所述第一萬(wàn)維網(wǎng)服務(wù)器下載的可執(zhí)行代碼以便訪問(wèn)所述第二萬(wàn)維網(wǎng)服務(wù)器上的所述后端內(nèi)容資源(13)時(shí),由于安全限制有效,因此在被聚集萬(wàn)維網(wǎng)應(yīng)用(2)的運(yùn)行中,由所述終端用戶相關(guān)客戶端(1)萬(wàn)維網(wǎng)瀏覽器訪問(wèn)所述內(nèi)容資源(13)受到限制,所述系統(tǒng)(4)的特征在于程序裝置(10),其具有用于通過(guò)執(zhí)行以下步驟來(lái)克服所述安全限制的功能組件a)將從客戶端進(jìn)入第一服務(wù)器并且被定向?yàn)樵L問(wèn)所述后端內(nèi)容資源(13)的請(qǐng)求中的請(qǐng)求者地址改變(650)為所述第一服務(wù)器URL,b)將所述改變的請(qǐng)求轉(zhuǎn)發(fā)到第二萬(wàn)維網(wǎng)服務(wù)器(5),c)從第二萬(wàn)維網(wǎng)服務(wù)器(5)接收(710)對(duì)所轉(zhuǎn)發(fā)請(qǐng)求的響應(yīng),所述響應(yīng)包括所述第二服務(wù)器URL作為響應(yīng)地址,d)將該響應(yīng)地址改變(720)為第一服務(wù)器URL,e)將改變后的請(qǐng)求轉(zhuǎn)發(fā)回到(750)最初發(fā)布該請(qǐng)求的客戶端。
7.一種在用于參與連網(wǎng)環(huán)境中基于請(qǐng)求的通信方法的網(wǎng)絡(luò)服務(wù)器系統(tǒng)(4)中執(zhí)行的計(jì)算機(jī)程序,所述連網(wǎng)環(huán)境在以下各方之間-終端用戶相關(guān)客戶端,具有客戶端URL,并且通過(guò)萬(wàn)維網(wǎng)瀏覽器(1)實(shí)現(xiàn)用戶接口,-第一萬(wàn)維網(wǎng)服務(wù)器(4),具有第一服務(wù)器URL,并且與客戶端的萬(wàn)維網(wǎng)瀏覽器(1)進(jìn)行通信,以及至少-第二萬(wàn)維網(wǎng)服務(wù)器(5),具有不同于第一服務(wù)器URL的第二服務(wù)器URL,并且與所述第一萬(wàn)維網(wǎng)服務(wù)器(4)進(jìn)行通信,其中,第二萬(wàn)維網(wǎng)服務(wù)器(5)運(yùn)行擔(dān)當(dāng)后端內(nèi)容資源(13)的萬(wàn)維網(wǎng)應(yīng)用(6),-其中,當(dāng)執(zhí)行從所述第一萬(wàn)維網(wǎng)服務(wù)器下載的可執(zhí)行代碼以便訪問(wèn)所述第二萬(wàn)維網(wǎng)服務(wù)器上的所述后端內(nèi)容資源(13)時(shí),由于安全限制有效,因此在被聚集萬(wàn)維網(wǎng)應(yīng)用(2)的運(yùn)行中,由所述終端用戶相關(guān)客戶端(1)萬(wàn)維網(wǎng)瀏覽器訪問(wèn)所述內(nèi)容資源(13)受到限制,其特征在于具有通過(guò)當(dāng)在計(jì)算機(jī)上執(zhí)行所述計(jì)算機(jī)程序代碼部分時(shí)執(zhí)行以下步驟來(lái)克服所述安全限制的功能組件a)將從客戶端進(jìn)入第一服務(wù)器并且被定向?yàn)樵L問(wèn)所述后端內(nèi)容資源(13)的請(qǐng)求中的請(qǐng)求者地址改變(650)為所述第一服務(wù)器URL,b)將所述改變的請(qǐng)求轉(zhuǎn)發(fā)到第二萬(wàn)維網(wǎng)服務(wù)器(5),c)從第二萬(wàn)維網(wǎng)服務(wù)器(5)接收(710)對(duì)所轉(zhuǎn)發(fā)請(qǐng)求的響應(yīng),所述響應(yīng)包括所述第二服務(wù)器URL作為響應(yīng)地址,d)將該響應(yīng)地址改變(720)為第一服務(wù)器URL,e)將改變后的請(qǐng)求轉(zhuǎn)發(fā)回到(750)最初發(fā)布該請(qǐng)求的客戶端。
8.一種存儲(chǔ)在計(jì)算機(jī)可用介質(zhì)上的計(jì)算機(jī)程序產(chǎn)品,包括用于使計(jì)算機(jī)執(zhí)行連網(wǎng)環(huán)境中基于請(qǐng)求的通信方法,所述連網(wǎng)環(huán)境在以下各方之間-終端用戶相關(guān)客戶端,具有客戶端URL,并且通過(guò)萬(wàn)維網(wǎng)瀏覽器(1)實(shí)現(xiàn)用戶接口,-第一萬(wàn)維網(wǎng)服務(wù)器(4),具有第一服務(wù)器URL,并且與客戶端的萬(wàn)維網(wǎng)瀏覽器(1)進(jìn)行通信,以及至少-第二萬(wàn)維網(wǎng)服務(wù)器(5),具有不同于第一服務(wù)器URL的第二服務(wù)器URL,并且與所述第一萬(wàn)維網(wǎng)服務(wù)器(4)進(jìn)行通信,其中,第二萬(wàn)維網(wǎng)服務(wù)器(5)運(yùn)行擔(dān)當(dāng)后端內(nèi)容資源(13)的萬(wàn)維網(wǎng)應(yīng)用(6),-其中,當(dāng)執(zhí)行從所述第一萬(wàn)維網(wǎng)服務(wù)器下載的可執(zhí)行代碼以便訪問(wèn)所述第二萬(wàn)維網(wǎng)服務(wù)器上的所述后端內(nèi)容資源(13)時(shí),由于安全限制有效,因此在被聚集萬(wàn)維網(wǎng)應(yīng)用(2)的運(yùn)行中,由所述終端用戶相關(guān)客戶端(1)萬(wàn)維網(wǎng)瀏覽器訪問(wèn)所述內(nèi)容資源(13)受到限制,其特征在于所述程序產(chǎn)品具有通過(guò)當(dāng)在計(jì)算機(jī)上執(zhí)行所述計(jì)算機(jī)程序產(chǎn)品時(shí)執(zhí)行以下步驟來(lái)克服所述安全限制的功能組件a)將從客戶端進(jìn)入第一服務(wù)器并且被定向?yàn)樵L問(wèn)所述后端內(nèi)容資源(13)的請(qǐng)求中的請(qǐng)求者地址改變(650)為所述第一服務(wù)器URL,b)將所述改變的請(qǐng)求轉(zhuǎn)發(fā)到第二萬(wàn)維網(wǎng)服務(wù)器(5),c)從第二萬(wàn)維網(wǎng)服務(wù)器(5)接收(710)對(duì)所轉(zhuǎn)發(fā)請(qǐng)求的響應(yīng),所述響應(yīng)包括所述第二服務(wù)器URL作為響應(yīng)地址,d)將該響應(yīng)地址改變(720)為第一服務(wù)器URL,e)將改變后的請(qǐng)求轉(zhuǎn)發(fā)回到(750)最初發(fā)布該請(qǐng)求的客戶端。
全文摘要
公開(kāi)一種在終端用戶相關(guān)客戶端、第一萬(wàn)維網(wǎng)服務(wù)器、以及至少第二萬(wàn)維網(wǎng)服務(wù)器之間的連網(wǎng)環(huán)境中基于請(qǐng)求的通信方法,其中,當(dāng)執(zhí)行從第一萬(wàn)維網(wǎng)服務(wù)器下載的可執(zhí)行代碼以便訪問(wèn)第二萬(wàn)維網(wǎng)服務(wù)器上的后端內(nèi)容資源時(shí),在被聚集萬(wàn)維網(wǎng)應(yīng)用的運(yùn)行中由終端用戶相關(guān)客戶端萬(wàn)維網(wǎng)瀏覽器訪問(wèn)內(nèi)容資源受到限制,其特征在于使用程序裝置執(zhí)行以下步驟來(lái)克服安全限制將從客戶端進(jìn)入第一服務(wù)器并被定向?yàn)樵L問(wèn)后端內(nèi)容資源的請(qǐng)求中的請(qǐng)求者地址改變?yōu)榈谝环?wù)器URL;將改變的請(qǐng)求轉(zhuǎn)發(fā)到第二萬(wàn)維網(wǎng)服務(wù)器;從第二萬(wàn)維網(wǎng)服務(wù)器接收對(duì)所轉(zhuǎn)發(fā)請(qǐng)求的響應(yīng),所述響應(yīng)包括第二服務(wù)器URL作為響應(yīng)地址;將該響應(yīng)地址改變?yōu)榈谝环?wù)器URL;將改變后的請(qǐng)求轉(zhuǎn)發(fā)回到最初發(fā)布該請(qǐng)求的客戶端。
文檔編號(hào)G06F17/30GK1798037SQ20051009997
公開(kāi)日2006年7月5日 申請(qǐng)日期2005年9月12日 優(yōu)先權(quán)日2004年12月29日
發(fā)明者尤爾斯·豪克, 蘇里格·安德雷亞斯 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司