專利名稱:企業(yè)用戶對(duì)主存的虛擬機(jī)的遠(yuǎn)程訪問的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及遠(yuǎn)程呈現(xiàn)系統(tǒng),尤其涉及企業(yè)用戶對(duì)主存的虛擬機(jī)的遠(yuǎn)程訪問。
背景技術(shù):
聯(lián)網(wǎng)的一種日益流行的形式一般被稱為遠(yuǎn)程呈現(xiàn)系統(tǒng),其能使用諸如遠(yuǎn)程桌面協(xié)議(遠(yuǎn)程呈現(xiàn))以及獨(dú)立計(jì)算架構(gòu)(ICA)等協(xié)議來與遠(yuǎn)程客戶端共享桌面和在服務(wù)器上執(zhí)行的其他應(yīng)用。這樣的計(jì)算系統(tǒng)通常將來自客戶端的鍵盤按壓和鼠標(biāo)點(diǎn)擊或選擇傳送到服務(wù)器,通過網(wǎng)絡(luò)連接在另一方向?qū)⑵聊桓罗D(zhuǎn)播回去。由此,當(dāng)實(shí)際上僅僅向客戶端設(shè)備發(fā)送如在服務(wù)器側(cè)上顯現(xiàn)的桌面或應(yīng)用的屏幕截圖時(shí),用戶具有好像他的或她的機(jī)器正在完全地本地操作的體驗(yàn)。許多向其用戶提供虛擬機(jī)的企業(yè)正在從公共云提供者購買計(jì)算容量。云提供者 (也被稱為公共主存者(public hoster))出售虛擬機(jī)形式的計(jì)算容量,最終用戶在“即用即付(pay as you go) ”的基礎(chǔ)上為計(jì)算容量付費(fèi)。類似地,企業(yè)也能夠從這些云提供者購買計(jì)算容量以擴(kuò)展其計(jì)算容量。云提供者可使用虛擬化主機(jī)來部署虛擬機(jī)并向企業(yè)承租人出售虛擬機(jī)。云提供者的數(shù)據(jù)中心中的虛擬化主機(jī)可被聯(lián)結(jié)到云提供者的域,而承租人 (云服務(wù)的計(jì)算容量的購買者)擁有實(shí)際的虛擬機(jī)。企業(yè)承租人通常有許多用戶。承租人可進(jìn)一步將計(jì)算容量細(xì)分并將從云租賃的個(gè)體虛擬機(jī)分配給來自他的企業(yè)的個(gè)體用戶。這些用戶需要以類似于他們?cè)L問他們的本地計(jì)算機(jī)的方式訪問那些虛擬機(jī)。例如,遠(yuǎn)程桌面協(xié)議可被用來訪問虛擬機(jī)。在服務(wù)提供者處, 該基礎(chǔ)結(jié)構(gòu)可以以對(duì)虛擬機(jī)的所有遠(yuǎn)程桌面訪問是通過主計(jì)算機(jī)完成的方式來被設(shè)置。通過云提供者提供遠(yuǎn)程服務(wù)可提供一些好處,諸如1.即使承租人虛擬機(jī)不具有聯(lián)網(wǎng)設(shè)置也可提供訪問。2.可為諸如Windows、Linux等多操作系統(tǒng)(OS)虛擬機(jī)工作負(fù)荷提供訪問。3.在虛擬機(jī)上執(zhí)行人工/網(wǎng)絡(luò)操作系統(tǒng)安裝的能力。4.云提供者的網(wǎng)關(guān)和客虛擬機(jī)之間的網(wǎng)絡(luò)連通性是不需要的,從而使得云提供者的網(wǎng)絡(luò)和承租人的網(wǎng)絡(luò)能夠隔離(客虛擬機(jī)可進(jìn)一步駐留于它們自己的隔離網(wǎng)絡(luò)中)。
發(fā)明內(nèi)容
上述情形的一個(gè)問題是,通過云提供者的虛擬化主機(jī)對(duì)云中的虛擬機(jī)的遠(yuǎn)程呈現(xiàn)訪問必須對(duì)承租人的企業(yè)的最終用戶是安全的。在各實(shí)施例中,公開了用于使得企業(yè)的最終用戶能夠通過云提供者的虛擬化主機(jī)和遠(yuǎn)程呈現(xiàn)網(wǎng)關(guān)接收對(duì)主存(hosted)的公共云中的分配的虛擬機(jī)的安全遠(yuǎn)程呈現(xiàn)訪問的方法和系統(tǒng)。因此企業(yè)管理員可從云提供者購買計(jì)算容量并進(jìn)一步將購買的計(jì)算容量在企業(yè)最終用戶間細(xì)分。云提供者不需要為作為計(jì)算容量的消費(fèi)者的企業(yè)的每個(gè)最終用戶創(chuàng)建影子賬戶。云提供者也不需要將主機(jī)信息暴露給承租人。云提供者也不需要將主機(jī)信息暴露給互聯(lián)網(wǎng)。在一實(shí)施例中,用X. 509證書簽署的定制令牌可被用來保護(hù)遠(yuǎn)程呈現(xiàn)訪問。在
4其它實(shí)施例中,可使用具有用于身份聯(lián)盟的安全令牌服務(wù)(STS)的SAML令牌。在一個(gè)實(shí)施例中,通過使用終端服務(wù)網(wǎng)關(guān)處的定制授權(quán)插件和虛擬化主機(jī)處的間接監(jiān)聽器組件的組合,可提供授權(quán)。因此企業(yè)管理員可以能夠進(jìn)一步細(xì)分購買的公共云容量并將承租人虛擬機(jī)在最終用戶間分配,而不需要公共云提供者(被稱為“主存者”)為每個(gè)企業(yè)最終用戶創(chuàng)建影子賬戶。當(dāng)客戶端連接于遠(yuǎn)程呈現(xiàn)網(wǎng)關(guān)時(shí)主機(jī)細(xì)節(jié)還可以被抽象, 以保護(hù)結(jié)構(gòu)(fabric)免受攻擊并使承租人虛擬機(jī)能夠跨云提供者的虛擬化主機(jī)自由移動(dòng)而不影響遠(yuǎn)程呈現(xiàn)訪問。除了上述方面,構(gòu)成本公開的一部分的權(quán)利要求、附圖、以及文本還描述了其他方面。本領(lǐng)域技術(shù)人員之一可理解,本公開的一個(gè)或更多個(gè)方面可包括但不限于用于實(shí)現(xiàn)本公開的本文所提及的電路和/或編程;該電路和/或編程實(shí)質(zhì)上可以是配置成實(shí)現(xiàn)本文所提及的方面的硬件、軟件和/或固件的任何組合,這取決于系統(tǒng)設(shè)計(jì)者的設(shè)計(jì)選擇。以上是概述,并且因此必然包含細(xì)節(jié)的簡化、一般化及省略。本領(lǐng)域技術(shù)人員將明白,本概述只是說明性的并且決不旨在是限制性的。
參考附圖來進(jìn)一步描述根據(jù)本說明書的用于圖形數(shù)據(jù)傳輸?shù)竭h(yuǎn)程計(jì)算設(shè)備的系統(tǒng)、方法和計(jì)算機(jī)可讀介質(zhì),在附圖中圖1和2描繪了其中可實(shí)現(xiàn)本公開的各方面的示例計(jì)算機(jī)系統(tǒng)。圖3描繪了用于實(shí)施本公開的各方面的虛擬化操作環(huán)境。圖4描繪了用于實(shí)施本公開的各方面的虛擬化操作環(huán)境。圖5示出了包括用于實(shí)現(xiàn)遠(yuǎn)程桌面服務(wù)的電路的計(jì)算機(jī)系統(tǒng)。圖6描繪了用于實(shí)施本公開的各方面的操作環(huán)境。圖7描繪了用于實(shí)施本公開的各方面的操作環(huán)境。圖8描繪了用于實(shí)施本公開的各方面的操作環(huán)境。圖9-11描繪了用于實(shí)施本公開的各方面的示例性操作過程。圖12描繪了用于實(shí)施本公開的各方面的示例性操作過程。圖13描繪了用于實(shí)施本公開的各方面的示例性系統(tǒng)和操作過程。
具體實(shí)施例方式概括的計(jì)算環(huán)境在以下描述和附圖中闡明了某些具體細(xì)節(jié),以提供對(duì)本公開的各個(gè)實(shí)施例的全面理解。通常與計(jì)算和軟件技術(shù)相關(guān)聯(lián)的某些公知細(xì)節(jié)不在以下公開中描述,以避免不必要地使本公開的各實(shí)施例晦澀難懂。此外,相關(guān)領(lǐng)域的普通技術(shù)人員會(huì)理解,他們可以無需以下描述的細(xì)節(jié)中的一個(gè)或多個(gè)而實(shí)現(xiàn)本公開的其它實(shí)施例。最后,盡管在以下公開中參考了步驟和序列來描述各個(gè)方法,但是如此的描述是為了提供本公開的實(shí)施例的清楚實(shí)現(xiàn), 且步驟以及步驟序列不應(yīng)被認(rèn)為是實(shí)現(xiàn)本公開所必需的。應(yīng)該理解,此處描述的各種技術(shù)可以結(jié)合硬件或軟件,或在適當(dāng)時(shí)結(jié)合兩者的組合來實(shí)現(xiàn)。因此,本公開的方法和裝置或其某些方面或部分,可以采用包含在諸如軟盤、 CD-ROM、硬盤驅(qū)動(dòng)器或任何其它機(jī)器可讀存儲(chǔ)介質(zhì)等有形介質(zhì)中的程序代碼(S卩,指令)的形式,其中,當(dāng)程序代碼被加載至諸如計(jì)算機(jī)等機(jī)器并由其執(zhí)行時(shí),該機(jī)器成為用于實(shí)踐本公開的裝置。在程序代碼在可編程計(jì)算機(jī)上執(zhí)行的情況下,計(jì)算設(shè)備通常包括處理器、該處理器可讀的存儲(chǔ)介質(zhì)(包括易失性和非易失性存儲(chǔ)器和/或存儲(chǔ)元件)、至少一個(gè)輸入設(shè)備、以及至少一個(gè)輸出設(shè)備。一個(gè)或多個(gè)程序可以例如通過使用應(yīng)用編程接口(API)、可重用控件等來實(shí)現(xiàn)或利用結(jié)合本公開描述的過程。這樣的程序優(yōu)選地用高級(jí)過程語言或面向?qū)ο蟮木幊陶Z言來實(shí)現(xiàn),以與計(jì)算機(jī)系統(tǒng)通信。然而,如果需要,程序可以用匯編語言或機(jī)器語言來實(shí)現(xiàn)。在任何情形中,語言可以是編譯的語言或解釋的語言,且與硬件實(shí)現(xiàn)相結(jié) 合。
遠(yuǎn)程桌面系統(tǒng)是維護(hù)可由客戶端計(jì)算機(jī)系統(tǒng)遠(yuǎn)程地執(zhí)行的應(yīng)用和操作系統(tǒng)的計(jì)算機(jī)系統(tǒng)。輸入是在客戶端計(jì)算機(jī)系統(tǒng)處被輸入的,并通過網(wǎng)絡(luò)(例如,使用基于國際電信聯(lián)盟(ITU)T. 120系列協(xié)議等協(xié)議,如遠(yuǎn)程桌面協(xié)議(遠(yuǎn)程呈現(xiàn)))傳送到終端服務(wù)器上的應(yīng)用。該應(yīng)用如同該輸入是在終端服務(wù)器處被輸入那樣來處理該輸入。該應(yīng)用響應(yīng)于所接收到的輸入來生成輸出,并且通過網(wǎng)絡(luò)將該輸出傳送到客戶端。各實(shí)施例可在一個(gè)或多個(gè)計(jì)算機(jī)上執(zhí)行。圖1和2以及下面的討論旨在提供其中可實(shí)現(xiàn)本公開的合適的計(jì)算環(huán)境的簡要概括描述。本領(lǐng)域的技術(shù)人員可以理解,計(jì)算機(jī)系統(tǒng)200、300可具有參照?qǐng)D1和2的計(jì)算機(jī)100描述的組件中的一部分或全部。貫穿本公開使用的術(shù)語電路可包括諸如硬件中斷控制器、硬盤驅(qū)動(dòng)器、網(wǎng)絡(luò)適配器、圖形處理器、基于硬件的視頻/音頻編解碼器等硬件組件,以及用于操作這些硬件的固件/軟件。術(shù)語電路還可包括被配置成通過固件或通過開關(guān)集來以特定方式執(zhí)行功能的微處理器,或一個(gè)或多個(gè)邏輯處理器,例如,多核通用處理單元的一個(gè)或多個(gè)核。此示例中的邏輯處理器可以通過從存儲(chǔ)器,例如,RAM、ROM、固件和/或虛擬存儲(chǔ)器中加載的體現(xiàn)可操作以執(zhí)行功能的邏輯的軟件指令來配置。在其中電路包括硬件和軟件的組合的示例實(shí)施例中,實(shí)現(xiàn)者可以編寫具體化邏輯的源代碼,該源代碼隨后被編譯成可由邏輯處理器執(zhí)行的機(jī)器可讀代碼。因?yàn)楸绢I(lǐng)域技術(shù)人員可以明白現(xiàn)有技術(shù)已經(jīng)進(jìn)化到硬件、軟件或硬件/ 軟件的組合之間幾乎沒有差別的地步,因而選擇硬件還是軟件來實(shí)現(xiàn)功能只是一個(gè)設(shè)計(jì)選擇。因此,由于本領(lǐng)域的技術(shù)人員可以理解軟件進(jìn)程可被變換成等效的硬件結(jié)構(gòu),且硬件結(jié)構(gòu)本身可被變換成等效的軟件進(jìn)程,因此選擇硬件實(shí)現(xiàn)或是軟件實(shí)現(xiàn)是無足輕重的且留給了實(shí)現(xiàn)者。圖1描繪了以本公開的各方面來配置的計(jì)算系統(tǒng)的示例。計(jì)算系統(tǒng)可包括計(jì)算機(jī) 20等等,其中包括處理單元21、系統(tǒng)存儲(chǔ)器22,以及將包括系統(tǒng)存儲(chǔ)器在內(nèi)的各種系統(tǒng)組件耦合到處理單元21的系統(tǒng)總線23。系統(tǒng)總線23可以是若干類型的總線結(jié)構(gòu)中的任一種,包括使用各種總線體系結(jié)構(gòu)中的任一種的存儲(chǔ)器總線或存儲(chǔ)器控制器、外圍總線、以及局部總線。系統(tǒng)存儲(chǔ)器包括只讀存儲(chǔ)器(ROM) M和隨機(jī)存取存儲(chǔ)器(RAM) 25?;据斎? 輸出系統(tǒng)沈(BIOS)被存儲(chǔ)在ROM M中,該基本輸入/輸出系統(tǒng)沈包含了諸如在啟動(dòng)期間幫助在計(jì)算機(jī)20內(nèi)的元件之間傳輸信息的基本例程。計(jì)算機(jī)20還可以包括用于讀寫硬盤 (未示出)的硬盤驅(qū)動(dòng)器27、用于讀寫可移動(dòng)磁盤四的磁盤驅(qū)動(dòng)器28,以及用于讀寫諸如 CD ROM或其他光學(xué)介質(zhì)之類的可移動(dòng)光盤31的光盤驅(qū)動(dòng)器30。在一些示例實(shí)施例中,實(shí)施本公開的各方面的計(jì)算機(jī)可執(zhí)行指令可存儲(chǔ)在ROM 24、硬盤(未示出)、RAM 25、可移動(dòng)磁盤四、光盤31和/或處理單元21的高速緩存中。硬盤驅(qū)動(dòng)器27、磁盤驅(qū)動(dòng)器28,以及光盤驅(qū)動(dòng)器30分別通過硬盤驅(qū)動(dòng)器接口 32、磁盤驅(qū)動(dòng)器接口 33,以及光盤驅(qū)動(dòng)器接口 34連接到系統(tǒng)總線23。驅(qū)動(dòng)器以及它們相關(guān)聯(lián)的計(jì)算機(jī)可讀介質(zhì)為計(jì)算機(jī)20提供了對(duì)計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊,及其他數(shù)據(jù)的非易失性存儲(chǔ)。雖然此處所描述的環(huán)境使用了硬盤、可移動(dòng)磁盤29、以及可移動(dòng)光盤31,但是,那些本領(lǐng)域普通技術(shù)人員應(yīng)該理解,在操作環(huán)境中也可以使用諸如盒式磁帶、閃存卡、數(shù)字視頻盤、伯努利磁帶盒、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)等等之類的可以存儲(chǔ)可由計(jì)算機(jī)進(jìn)行訪問的數(shù)據(jù)的其他類型的計(jì)算機(jī)可讀介質(zhì)??梢杂腥舾蓚€(gè)程序模塊存儲(chǔ)在硬盤、磁盤四、光盤31、ROM 24或RAM 25上,包括操作系統(tǒng)35、一個(gè)或多個(gè)應(yīng)用程序36、其他程序模塊37、以及程序數(shù)據(jù)38。用戶可以通過諸如鍵盤40和定點(diǎn)設(shè)備42之類的輸入設(shè)備向計(jì)算機(jī)20中輸入命令和信息。其他輸入設(shè)備(未示出)可包括話筒、游戲桿、游戲手柄、圓盤式衛(wèi)星天線、掃描儀等等。這些及其他輸入設(shè)備常常通過耦合到系統(tǒng)總線的串行端口接口 46連接到處理單元21,但是,也可以通過諸如并行端口、游戲端口、通用串行總線(USB)端口之類的其他接口來連接。顯示器47或其他類型的顯示設(shè)備也可以通過諸如視頻適配器48之類的接口連接到系統(tǒng)總線23。除了顯示器47之外,計(jì)算機(jī)通常還包括其他外圍輸出設(shè)備(未示出),如揚(yáng)聲器和打印機(jī)。圖1 的系統(tǒng)也包括主機(jī)適配器55、小型計(jì)算機(jī)系統(tǒng)接口(SCSI)總線56,以及連接到SCSI總線 56的外部存儲(chǔ)設(shè)備62。計(jì)算機(jī)20可以使用到一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī)(如遠(yuǎn)程計(jì)算機(jī)49)的邏輯連接, 以在聯(lián)網(wǎng)環(huán)境中操作。遠(yuǎn)程計(jì)算機(jī)49可以是另一計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對(duì)等設(shè)備或其他常見的網(wǎng)絡(luò)節(jié)點(diǎn)、虛擬機(jī),并通常包括上文相對(duì)于計(jì)算機(jī)20所描述的許多或全部元件,但是在圖1中只示出了存儲(chǔ)器存儲(chǔ)設(shè)備50。圖1中所描繪的邏輯連接可包括局域網(wǎng) (LAN) 51和廣域網(wǎng)(WAN) 52。這樣的聯(lián)網(wǎng)環(huán)境在辦公室、企業(yè)范圍的計(jì)算機(jī)網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)中是普遍的。當(dāng)用于LAN網(wǎng)絡(luò)環(huán)境中時(shí),計(jì)算機(jī)20可通過網(wǎng)絡(luò)接口或適配器53連接到LAN 51。 當(dāng)用于WAN網(wǎng)絡(luò)環(huán)境中時(shí),計(jì)算機(jī)20通常包括調(diào)制解調(diào)器M,或用于通過諸如因特網(wǎng)之類的廣域網(wǎng)52建立通信的其他手段??梢允莾?nèi)置的或外置的調(diào)制解調(diào)器討可通過串行端口接口 46連接到系統(tǒng)總線23。在聯(lián)網(wǎng)環(huán)境中,相對(duì)于計(jì)算機(jī)20所描述的程序模塊或其部分可被存儲(chǔ)在遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中??梢岳斫?,所示出的網(wǎng)絡(luò)連接只是示例,也可以使用用于在計(jì)算機(jī)之間建立通信鏈路的其他手段。此外,雖然可構(gòu)想本發(fā)明的許多實(shí)施例尤其適用于計(jì)算機(jī)系統(tǒng),然而在本文中不意味著將本公開限于這些實(shí)施例?,F(xiàn)在參考圖2,描繪了示例性計(jì)算系統(tǒng)100的另一實(shí)施例。計(jì)算機(jī)系統(tǒng)100可包括邏輯處理器102,如執(zhí)行核。盡管示出了一個(gè)邏輯處理器102,但在其他實(shí)施例中,計(jì)算機(jī)系統(tǒng)100可具有多個(gè)邏輯處理器,例如每一處理器基板有多個(gè)執(zhí)行核,和/或各自可具有多個(gè)執(zhí)行核的多個(gè)處理器基板。如圖所示,各種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)110可由一個(gè)或多個(gè)系統(tǒng)總線互聯(lián),系統(tǒng)總線將各種系統(tǒng)組件耦合到邏輯處理器102。系統(tǒng)總線可以是幾種類型的總線結(jié)構(gòu)中的任何一種,包括存儲(chǔ)器總線或存儲(chǔ)器控制器、外圍總線、以及使用各種總線體系結(jié)構(gòu)中的任一種的局部總線。在示例實(shí)施例中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)110可以包括例如隨機(jī)存取存儲(chǔ)器(RAM) 104、存儲(chǔ)設(shè)備106(例如電機(jī)硬盤驅(qū)動(dòng)器、固態(tài)硬盤驅(qū)動(dòng)器等)、固件108 (例如閃速RAM或ROM)、以及可移動(dòng)存儲(chǔ)設(shè)備118 (例如⑶-ROM、軟盤、DVD、閃速驅(qū)動(dòng)器、外部存儲(chǔ)設(shè)備等)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可使用其他類型的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),如磁帶盒、閃存卡、數(shù)字視頻盤、柏努利盒式磁帶。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)為計(jì)算機(jī)100提供了對(duì)處理器可執(zhí)行指令122、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其他數(shù)據(jù)的非易失性存儲(chǔ)?;据斎?輸出系統(tǒng)(BIOS) 120可被存儲(chǔ)在固件108 中,它包含幫助在諸如啟動(dòng)期間在計(jì)算機(jī)系統(tǒng)100內(nèi)的各元件之間傳遞信息的基本例程。 若干個(gè)程序可被存儲(chǔ)在固件108、存儲(chǔ)設(shè)備106、RAM 104和/或可移動(dòng)存儲(chǔ)設(shè)備118上,并且可由邏輯處理器102來執(zhí)行,包括操作系統(tǒng)和/或應(yīng)用程序。命令和信息可由計(jì)算機(jī)100通過輸入設(shè)備116來接收,輸入設(shè)備可包括但不限于鍵盤和定點(diǎn)設(shè)備。其他輸入設(shè)備可以包括話筒、操縱桿、游戲手柄、掃描儀等等。這些和其他輸入設(shè)備常通過耦合到系統(tǒng)總線的串行端口接口連接到邏輯處理器102,但也可通過其他接口連接,如并行端口、游戲端口或通用串行總線(USB)。顯示器或其他類型的顯示設(shè)備也可經(jīng)由諸如視頻適配器等可以是圖形處理器112的一部分或可連接到圖形處理器112的接口來連接到系統(tǒng)總線。除了顯示器之外,計(jì)算機(jī)通常包括其他外圍輸出設(shè)備(未示出), 如揚(yáng)聲器和打印機(jī)。圖1的示例性系統(tǒng)還可包括主適配器、小型計(jì)算機(jī)系統(tǒng)接口(SCSI)總線和連接到SCSI總線的外部存儲(chǔ)設(shè)備。計(jì)算機(jī)系統(tǒng)100可使用至一個(gè)或多個(gè)遠(yuǎn)程計(jì)算機(jī),如遠(yuǎn)程計(jì)算機(jī),的邏輯連接在網(wǎng)絡(luò)化環(huán)境中操作。遠(yuǎn)程計(jì)算機(jī)可以是另一計(jì)算機(jī)、服務(wù)器、路由器、網(wǎng)絡(luò)PC、對(duì)等設(shè)備或其他常見的網(wǎng)絡(luò)節(jié)點(diǎn),并且通常包括上面關(guān)于計(jì)算機(jī)系統(tǒng)100所述的許多或全部元件。當(dāng)在LAN或WAN聯(lián)網(wǎng)環(huán)境中使用時(shí),計(jì)算機(jī)系統(tǒng)100可通過網(wǎng)絡(luò)接口卡114連接至LAN或WAN。NIC 114(可以是內(nèi)部或外部的)可以連接到系統(tǒng)總線。在聯(lián)網(wǎng)環(huán)境中,相對(duì)于計(jì)算機(jī)系統(tǒng)100所描述的程序模塊或其部分可被儲(chǔ)存在遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中??梢岳斫?,所描述的網(wǎng)絡(luò)連接是示例性的,且可以使用在計(jì)算機(jī)之間建立通信鏈路的其他手段。 此外,雖然可構(gòu)想本公開的許多實(shí)施例尤其適用于計(jì)算機(jī)化的系統(tǒng),然而在本文中沒有任何表述旨在將本公開限于那些實(shí)施例。遠(yuǎn)程桌面系統(tǒng)是維護(hù)可由客戶端計(jì)算機(jī)系統(tǒng)遠(yuǎn)程地執(zhí)行的應(yīng)用的計(jì)算機(jī)系統(tǒng)。輸入是在客戶端計(jì)算機(jī)系統(tǒng)處被輸入的,并通過網(wǎng)絡(luò)(例如,使用基于國際電信聯(lián)盟(ITU) T. 120系列協(xié)議等協(xié)議,如遠(yuǎn)程桌面協(xié)議(遠(yuǎn)程呈現(xiàn)))傳送到終端服務(wù)器上的應(yīng)用。該應(yīng)用如同該輸入是在終端服務(wù)器處輸入的那樣來處理該輸入。該應(yīng)用響應(yīng)于所接收到的輸入生成輸出,并且該輸出通過網(wǎng)絡(luò)傳送到客戶端計(jì)算機(jī)系統(tǒng)??蛻舳擞?jì)算機(jī)系統(tǒng)呈現(xiàn)輸出數(shù)據(jù)。由此,在客戶端計(jì)算機(jī)系統(tǒng)處接收輸入并呈現(xiàn)輸出,而處理實(shí)際上是在終端服務(wù)器處發(fā)生的。會(huì)話可包括命令行界面(shell)和諸如桌面之類的用戶界面、跟蹤該桌面內(nèi)的鼠標(biāo)移動(dòng)的子系統(tǒng)、將圖標(biāo)上的鼠標(biāo)點(diǎn)擊轉(zhuǎn)換成實(shí)現(xiàn)程序?qū)嵗拿畹淖酉到y(tǒng)等等。在另一示例實(shí)施例中,會(huì)話可包括應(yīng)用。在該示例中,當(dāng)呈現(xiàn)應(yīng)用時(shí),桌面環(huán)境仍可被生成并對(duì)用戶隱藏。應(yīng)當(dāng)理解,前述討論是示例性的,且當(dāng)前公開的主題可以在各種客戶端/服務(wù)器環(huán)境中實(shí)現(xiàn)且不限于特定終端服務(wù)產(chǎn)品。即使不是全部也是在大多數(shù)遠(yuǎn)程桌面環(huán)境中,輸入數(shù)據(jù)(在客戶端計(jì)算機(jī)系統(tǒng)處輸入)通常包括表示對(duì)應(yīng)用的命令的鼠標(biāo)和鍵盤數(shù)據(jù),且輸出數(shù)據(jù)(由終端服務(wù)器處的應(yīng)用生成)通常包括用于在視頻輸出設(shè)備上顯示的視頻數(shù)據(jù)。許多遠(yuǎn)程桌面環(huán)境也包括擴(kuò)展到傳輸其他類型的數(shù)據(jù)的功能。
通過允許插件經(jīng)由遠(yuǎn)程呈現(xiàn)連接傳輸數(shù)據(jù),可使用通信信道來來擴(kuò)展遠(yuǎn)程呈現(xiàn)協(xié)議。存在許多這樣的擴(kuò)展。諸如打印機(jī)重定向、剪貼板重定向、端口重定向等特征使用通信信道技術(shù)。由此,除了輸入和輸出數(shù)據(jù)之外,可以有許多需要傳輸數(shù)據(jù)的通信信道。因此, 可能有傳輸輸出數(shù)據(jù)的偶然請(qǐng)求和傳輸其他數(shù)據(jù)的一個(gè)或多個(gè)信道請(qǐng)求爭用可用的網(wǎng)絡(luò)帶寬。轉(zhuǎn)向圖3,示出了可被用來生成虛擬機(jī)的示例性虛擬機(jī)服務(wù)器。在該實(shí)施例中,系統(tǒng)管理程序(hypervisor)微內(nèi)核302可被配置成控制并仲裁對(duì)計(jì)算機(jī)系統(tǒng)300的硬件的訪問。系統(tǒng)管理程序微內(nèi)核302可以隔離一個(gè)分區(qū)中的進(jìn)程,使其不能訪問另一分區(qū)的資源。例如,系統(tǒng)管理程序微內(nèi)核302可以生成稱為分區(qū)的執(zhí)行環(huán)境,如子分區(qū)1到子分區(qū) N(其中N是大于1的整數(shù))。在該實(shí)施例中,子分區(qū)是系統(tǒng)管理程序微內(nèi)核302支持的基本隔離單元。每一子分區(qū)可被映射到在系統(tǒng)管理程序微內(nèi)核302控制之下的一組硬件資源, 例如,存儲(chǔ)器、設(shè)備、邏輯處理器周期等。在各實(shí)施例中,系統(tǒng)管理程序微內(nèi)核302可以是獨(dú)立的軟件產(chǎn)品、操作系統(tǒng)的一部分、嵌入在主板的固件中、專用集成電路、或其組合。系統(tǒng)管理程序微內(nèi)核302可以通過限制客操作系統(tǒng)對(duì)物理計(jì)算機(jī)系統(tǒng)中的存儲(chǔ)器的視圖來實(shí)施分區(qū)劃分。當(dāng)系統(tǒng)管理程序微內(nèi)核302實(shí)例化一虛擬機(jī)時(shí),它可以將系統(tǒng)物理存儲(chǔ)器(SPM)的頁(例如,具有開始和結(jié)束地址的固定長度存儲(chǔ)器塊)分配給虛擬機(jī)作為客物理存儲(chǔ)器(GPM)。在該實(shí)施例中,客機(jī)對(duì)系統(tǒng)存儲(chǔ)器的受限視圖受系統(tǒng)管理程序微內(nèi)核302控制。術(shù)語“客物理存儲(chǔ)器”是從虛擬機(jī)的觀點(diǎn)描述存儲(chǔ)器頁的簡寫方式,且術(shù)語 “系統(tǒng)物理存儲(chǔ)器”是從物理系統(tǒng)的觀點(diǎn)描述存儲(chǔ)器頁的簡寫方式。因此,被分配給虛擬機(jī)的存儲(chǔ)器頁會(huì)有客物理地址(虛擬機(jī)所使用的地址)和系統(tǒng)物理地址(頁的實(shí)際地址)??筒僮飨到y(tǒng)可以虛擬化客物理存儲(chǔ)器。虛擬存儲(chǔ)器是一種管理技術(shù),其允許操作系統(tǒng)過度提交存儲(chǔ)器,并且給予應(yīng)用對(duì)連續(xù)工作存儲(chǔ)器的唯一訪問。在虛擬化環(huán)境中,客操作系統(tǒng)可以使用一個(gè)或多個(gè)頁表來將被稱為虛擬客地址的虛擬地址轉(zhuǎn)換成客物理地址。在該示例中,存儲(chǔ)器地址可以具有客虛擬地址、客物理地址以及系統(tǒng)物理地址。在所描繪的示例中,父分區(qū)組件(也可被認(rèn)為是類似于Xen的開源系統(tǒng)管理程序的域0)可以包括主機(jī)304。主機(jī)304可以是操作系統(tǒng)(或一組配置實(shí)用程序),并且主機(jī) 304可以被配置成通過使用虛擬化服務(wù)提供者328 (VSP)向在子分區(qū)1_N中執(zhí)行的客操作系統(tǒng)提供資源。VSP 328(—般在開源社區(qū)中被稱為后端驅(qū)動(dòng)程序)可用來通過虛擬化服務(wù)客戶端(VSC)(在開源社區(qū)或類虛擬化設(shè)備中一般稱為前端驅(qū)動(dòng)程序)對(duì)到硬件資源的接口進(jìn)行多路復(fù)用。如圖所示,虛擬化服務(wù)客戶端可以在客操作系統(tǒng)的上下文中執(zhí)行。然而,這些驅(qū)動(dòng)程序不同于客機(jī)中的其余驅(qū)動(dòng)程序,因?yàn)橄蛩鼈兲峁┝讼到y(tǒng)管理程序而非客機(jī)。在一示例性實(shí)施例中,虛擬化服務(wù)提供者328與虛擬化服務(wù)客戶端316和318通信所使用的路徑可以被認(rèn)為是虛擬化路徑。如圖所示,仿真器334(例如虛擬化IDE設(shè)備、虛擬化視頻適配器、虛擬化NIC等) 可被配置成在主機(jī)304中運(yùn)行并被附連到對(duì)客操作系統(tǒng)330和322可用的資源。例如,當(dāng)客操作系統(tǒng)接觸被映射到設(shè)備的寄存器的所處位置的存儲(chǔ)器位置或接觸被映射到設(shè)備的存儲(chǔ)器時(shí),微內(nèi)核系統(tǒng)管理程序302可截取該請(qǐng)求并將客機(jī)試圖寫入的值傳遞給相關(guān)聯(lián)的仿真器。在該示例中,資源可被認(rèn)為是虛擬設(shè)備所處的位置。仿真器的以這種方式的使用可以被認(rèn)為是仿真路徑。仿真路徑與虛擬化路徑相比是低效的,因?yàn)榕c在VSP和VSC之間
9傳遞消息相比,它需要更多的CPU資源來仿真設(shè)備。例如,可以將經(jīng)由仿真路徑把值寫入盤所需的、被映射至寄存器的存儲(chǔ)器上的幾百個(gè)動(dòng)作減少為在虛擬化路徑中從VSC被傳遞至 VSP的單個(gè)消息。每一子分區(qū)可包括一個(gè)或多個(gè)虛擬處理器(320和32 ,客操作系統(tǒng)(320和322) 可管理并調(diào)度線程以在這些虛擬處理器上執(zhí)行。一般而言,虛擬處理器是提供具有特定架構(gòu)的物理處理器的表示的可執(zhí)行指令以及相關(guān)聯(lián)的狀態(tài)信息。例如,一個(gè)虛擬機(jī)可具有帶有英特爾x86處理器特性的虛擬處理器,而另一虛擬處理器可具有PowerPC處理器的特性。 本示例中的虛擬處理器可被映射到計(jì)算機(jī)系統(tǒng)的邏輯處理器,使得實(shí)現(xiàn)虛擬處理器的指令將受到邏輯處理器的支持。由此,在包括多個(gè)邏輯處理器的實(shí)施例中,各虛擬處理器可以由各邏輯處理器同時(shí)執(zhí)行,同時(shí)例如其他邏輯處理器執(zhí)行系統(tǒng)管理程序指令。分區(qū)中虛擬處理器和存儲(chǔ)器的組合可被認(rèn)為是虛擬機(jī)??筒僮飨到y(tǒng)(320和322)可以是任何操作系統(tǒng),如來自微軟 、蘋果 、開源社區(qū)等的操作系統(tǒng)??筒僮飨到y(tǒng)可包括用戶/內(nèi)核操作模式,并且可具有能包括調(diào)度器、存儲(chǔ)器管理器等的內(nèi)核。一般而言,內(nèi)核模式可包括邏輯處理器中的執(zhí)行模式,該執(zhí)行模式授予對(duì)至少特權(quán)處理器指令的訪問權(quán)。每一客操作系統(tǒng)可具有相關(guān)聯(lián)的文件系統(tǒng),該文件系統(tǒng)上存儲(chǔ)有諸如終端服務(wù)器、電子商務(wù)服務(wù)器、電子郵件服務(wù)器等應(yīng)用以及客操作系統(tǒng)本身??筒僮飨到y(tǒng)可調(diào)度線程來在虛擬處理器上執(zhí)行,并且可實(shí)現(xiàn)此類應(yīng)用的實(shí)例?,F(xiàn)在參考圖4,示出的是基于一種替代架構(gòu)的虛擬機(jī)服務(wù)器。圖4描繪了與圖3的組件相類似的組件;然而,在本示例實(shí)施方式中,系統(tǒng)管理程序402可包括微內(nèi)核組件以及和圖3的主機(jī)304中的組件(如虛擬化服務(wù)提供者3 和設(shè)備驅(qū)動(dòng)程序324)相類似的組件,而管理操作系統(tǒng)404可包含例如用于配置系統(tǒng)管理程序402的配置實(shí)用程序。在本架構(gòu)中,系統(tǒng)管理程序402可以執(zhí)行與圖3的系統(tǒng)管理程序微內(nèi)核302相同或相似的功能 ’然而,在本架構(gòu)中,系統(tǒng)管理程序404可被配置成向在子分區(qū)中執(zhí)行的客操作系統(tǒng)提供資源。 圖4的系統(tǒng)管理程序402可以是獨(dú)立的軟件產(chǎn)品、操作系統(tǒng)的一部分、嵌入在主板的固件內(nèi),或者系統(tǒng)管理程序402的一部分可以由專用集成電路來實(shí)現(xiàn)。現(xiàn)在參考圖5,示出的是虛擬桌面服務(wù)器500的高層次框圖。在一實(shí)施例中,虛擬桌面服務(wù)器500可以被配置成將虛擬桌面會(huì)話(VDQ部署到客戶端,例如,諸如智能電話等移動(dòng)設(shè)備、具有和圖1所示組件相似的組件的計(jì)算機(jī)系統(tǒng)等等。簡言之,虛擬桌面技術(shù)使用戶能與虛擬機(jī)中運(yùn)行的客操作系統(tǒng)遠(yuǎn)程地交互。不同于遠(yuǎn)程桌面會(huì)話,在虛擬桌面會(huì)話中, 只有一個(gè)用戶登錄到客操作系統(tǒng)中并且對(duì)其具有總控制,例如,用戶可以作為管理員運(yùn)行并且在該客機(jī)上具有完全權(quán)限。在所示示例中,虛擬桌面服務(wù)器500可以具有與圖3或圖4 的計(jì)算機(jī)系統(tǒng)300或400類似的組件。在所示示例中,虛擬化平臺(tái)502是如上在圖3和圖4 中所述的虛擬化基礎(chǔ)結(jié)構(gòu)組件的邏輯抽象。在以下章節(jié)中被描述為在虛擬化平臺(tái)502 “以內(nèi)”的功能可以在圖3或圖4中描繪的一個(gè)或多個(gè)元件中實(shí)現(xiàn)。例如,虛擬桌面管理器530 可以在圖3的主機(jī)304中實(shí)現(xiàn)。更具體而言,虛擬桌面管理器530可以在虛擬化環(huán)境的父分區(qū)中運(yùn)行的主操作系統(tǒng)中實(shí)現(xiàn)。啟動(dòng)虛擬桌面會(huì)話要求在虛擬機(jī)內(nèi)對(duì)客操作系統(tǒng)進(jìn)行實(shí)例化。在一示例性實(shí)施例中,虛擬桌面管理器530(例如,處理器可執(zhí)行指令的模塊)可以響應(yīng)于請(qǐng)求而啟動(dòng)虛擬機(jī) 514 (連同客操作系統(tǒng)528)。虛擬桌面管理器530可以在邏輯處理器上執(zhí)行,并且可以指示虛擬化平臺(tái)502(例如微內(nèi)核系統(tǒng)管理程序20 為分區(qū)分配存儲(chǔ)器。虛擬化平臺(tái)502可以在虛擬機(jī)514內(nèi)執(zhí)行并設(shè)置虛擬設(shè)備,并且將引導(dǎo)加載程序加載到虛擬機(jī)存儲(chǔ)器中。引導(dǎo)加載程序可以在虛擬處理器上執(zhí)行并且加載客操作系統(tǒng)528。例如,可以加載會(huì)話管理器 508,會(huì)話管理器508可以實(shí)例化諸如運(yùn)行時(shí)子系統(tǒng)5 等環(huán)境子系統(tǒng),運(yùn)行時(shí)子系統(tǒng)5 可以包括諸如操作系統(tǒng)核510等內(nèi)核模式部分。例如,在一實(shí)施例中,環(huán)境子系統(tǒng)可以被配置成將服務(wù)的子集暴露給應(yīng)用程序并提供到內(nèi)核520的接入點(diǎn)。當(dāng)加載客操作系統(tǒng)5 時(shí), 引導(dǎo)加載程序可以退出,并將對(duì)虛擬機(jī)的控制轉(zhuǎn)交給客操作系統(tǒng)528。客操作系統(tǒng)5 可以執(zhí)行圖5所示的各個(gè)模塊,并且將其自身配置為主存虛擬桌面會(huì)話。例如,客操作系統(tǒng)528 可以包括使遠(yuǎn)程呈現(xiàn)引擎506和/或配置服務(wù)534在引導(dǎo)時(shí)啟動(dòng)的注冊(cè)表值。虛擬桌面會(huì)話可以在客操作系統(tǒng)5 通過網(wǎng)絡(luò)從客戶端接收到連接請(qǐng)求時(shí)啟動(dòng)。 連接請(qǐng)求首先可由遠(yuǎn)程呈現(xiàn)引擎506處理。遠(yuǎn)程呈現(xiàn)引擎506可以被配置成監(jiān)聽連接消息并將它們轉(zhuǎn)發(fā)至?xí)捁芾砥?08。如圖3所示,當(dāng)會(huì)話被生成時(shí),遠(yuǎn)程呈現(xiàn)引擎506可以運(yùn)行該會(huì)話的協(xié)議棧實(shí)例。一般而言,協(xié)議棧實(shí)例可被配置成將用戶界面輸出路由到相關(guān)聯(lián)的客戶端、以及將從相關(guān)聯(lián)的客戶端接收到的用戶輸入路由到操作系統(tǒng)核510。簡言之,操作系統(tǒng)核510可以被配置成管理屏幕輸出;收集來自鍵盤、鼠標(biāo)和其它設(shè)備的輸入。用戶憑證(如用戶名/密碼組合)可由遠(yuǎn)程呈現(xiàn)引擎506接收并被傳遞至?xí)捁芾砥?08。會(huì)話管理器508可以將憑證傳遞至登錄過程,登錄過程可以將憑證路由至認(rèn)證引擎524以進(jìn)行驗(yàn)證。認(rèn)證引擎5M可以生成系統(tǒng)令牌,系統(tǒng)令牌可以在每當(dāng)用戶嘗試執(zhí)行一進(jìn)程時(shí)使用以確定用戶是否具有運(yùn)行該進(jìn)程或線程的安全憑證。例如,當(dāng)進(jìn)程或線程嘗試獲得訪問時(shí)(例如,打開、關(guān)閉、刪除和/或修改例如文件、設(shè)置或應(yīng)用等對(duì)象),線程或進(jìn)程可由安全子系統(tǒng)522來認(rèn)證。安全子系統(tǒng)522可以對(duì)照與對(duì)象相關(guān)聯(lián)的訪問控制列表來檢查系統(tǒng)令牌,并且基于系統(tǒng)令牌中的信息與訪問控制列表的比較來確定線程是否具有許可。如果安全子系統(tǒng)522確定線程被授權(quán),則允許該線程訪問對(duì)象。繼續(xù)對(duì)圖5的描述,在一實(shí)施例中,操作系統(tǒng)核510可以包括圖形顯示接口 516(⑶I)和輸入子系統(tǒng)512。在一示例實(shí)施例中,輸入子系統(tǒng)512可以被配置成經(jīng)由虛擬桌面會(huì)話的協(xié)議棧實(shí)例從客戶端接收用戶輸入,并將該輸入發(fā)送至操作系統(tǒng)核510。在一些實(shí)施例中,用戶輸入可包括指示絕對(duì)和/或相對(duì)鼠標(biāo)移動(dòng)命令、鼠標(biāo)坐標(biāo)、鼠標(biāo)點(diǎn)擊、鍵盤信號(hào)、操縱桿移動(dòng)信號(hào)等的信號(hào)。例如在圖標(biāo)上的鼠標(biāo)雙擊等用戶輸入可被操作系統(tǒng)核510 接收,并且輸入子系統(tǒng)512可被配置成確定圖標(biāo)位于與該雙擊相關(guān)聯(lián)的坐標(biāo)處。輸入子系統(tǒng)512隨后可被配置成向可執(zhí)行與該圖標(biāo)相關(guān)聯(lián)的應(yīng)用的進(jìn)程的運(yùn)行時(shí)子系統(tǒng)5 發(fā)送通知。繪制命令可從應(yīng)用和/或桌面被接收,并由⑶I 516處理。⑶I 516 —般可包括能生成圖形對(duì)象繪制命令的進(jìn)程。在本示例實(shí)施例中,GDI 516可以被配置成將命令傳遞給遠(yuǎn)程顯示子系統(tǒng)518,該遠(yuǎn)程顯示子系統(tǒng)518可為該會(huì)話實(shí)例化顯示驅(qū)動(dòng)程序。在一示例實(shí)施例中,遠(yuǎn)程顯示子系統(tǒng)518可被配置成包括虛擬顯示驅(qū)動(dòng)程序,該虛擬顯示驅(qū)動(dòng)程序可被配置成接收繪制命令并將它們發(fā)送至客戶端。圖5中還示出配置服務(wù)534。在一示例性實(shí)施例中,配置服務(wù)534可被用來設(shè)置客操作系統(tǒng)528以便在客戶端連接前實(shí)施虛擬桌面會(huì)話。例如,配置服務(wù)534可以在客操作系統(tǒng)528內(nèi)運(yùn)行,并且在客操作系統(tǒng)5 引導(dǎo)時(shí)執(zhí)行。由于特定的配置設(shè)置需要管理特權(quán),因此可以將配置服務(wù)534配置成作為具有系統(tǒng)范圍特權(quán)的進(jìn)程來運(yùn)行。配置服務(wù)534可采取的一些示例性動(dòng)作包括但不限于以下動(dòng)作將用戶的帳戶標(biāo)識(shí)符添加至客操作系統(tǒng)5 的管理用戶列表,將帳戶標(biāo)識(shí)符添加至授權(quán)的虛擬桌面用戶列表,設(shè)置注冊(cè)表值,開啟客操作系統(tǒng)防火墻,以及將遠(yuǎn)程呈現(xiàn)引擎506監(jiān)聽連接的端口打開。在以下段落中更詳細(xì)地描述了配置服務(wù)534。在一示例性實(shí)施例中,可以在虛擬化平臺(tái)502和客操作系統(tǒng)5 之間建立通信信道以便配置和控制客操作系統(tǒng)528。由于遠(yuǎn)程用戶可以對(duì)虛擬機(jī)514具有完全控制,因此需要有安全性,以確保用于配置和控制客操作系統(tǒng)528的任何信道不能也用來攻擊虛擬化平臺(tái)502或連接到內(nèi)部網(wǎng)絡(luò)的其它計(jì)算機(jī)系統(tǒng)。傳統(tǒng)上,使用聯(lián)網(wǎng)的通信信道來設(shè)置和控制客操作系統(tǒng)528。然而,當(dāng)客操作系統(tǒng)5 不與虛擬化平臺(tái)502處于同一網(wǎng)絡(luò)域中時(shí),網(wǎng)絡(luò)信道難以部署,且虛擬化平臺(tái)502被配置成拒絕來自該域外的傳入的連接請(qǐng)求。在一示例性實(shí)施例中,可以使用分區(qū)間通信信道504來與配置服務(wù)器534通信,以便配置和/或管理虛擬桌面會(huì)話。分區(qū)間通信信道504可以被配置成由虛擬機(jī)514隱式地信任,而不被虛擬化平臺(tái)502所信任。在本示例中,可以將例如數(shù)據(jù)和/或命令等信息容易地路由至客操作系統(tǒng)528,而無需驗(yàn)證該信息。另一方面,可以在虛擬化平臺(tái)502采取動(dòng)作之前,驗(yàn)證和認(rèn)證從虛擬機(jī)514接收到的數(shù)據(jù)。而且,由于分區(qū)間通信信道504不使用聯(lián)網(wǎng), 所以客操作系統(tǒng)5 可以被排除在內(nèi)部網(wǎng)絡(luò)以外。分區(qū)間通信信道504可以被虛擬機(jī)514隱式地信任(即,經(jīng)由該信道接收到的信息是固有地已認(rèn)證/確認(rèn)的),因?yàn)橹挥刑摂M化平臺(tái)502可以創(chuàng)建分區(qū)間通信信道504。例如,在一實(shí)施例中,可以將分區(qū)間通信信道504至少部分地實(shí)現(xiàn)為在虛擬機(jī)514和虛擬化平臺(tái)502之間共享的存儲(chǔ)器區(qū)域。虛擬化平臺(tái)502可使指示環(huán)形緩沖區(qū)等等的數(shù)據(jù)結(jié)構(gòu)在可被用作虛擬化平臺(tái)502和虛擬機(jī)514之間的全雙工通信信道的共享的存儲(chǔ)器區(qū)域中被創(chuàng)建。在一示例性實(shí)施例中,分區(qū)間通信信道可以包括在題為“Partition Bus(分區(qū)總線)”、 專利號(hào)為7,689,800的美國專利中描述的特征,該專利的內(nèi)容通過引用被完全結(jié)合于此。虛擬化平臺(tái)502可以將信息寫至可由虛擬機(jī)514讀取的分區(qū)間通信信道504。在一示例性實(shí)施例中,分區(qū)間通信信道504可以是基于消息的。也就是說,虛擬化平臺(tái)502和虛擬機(jī)514可以被配置成將數(shù)據(jù)分組寫至分區(qū)間通信信道504。在同一個(gè)或另一個(gè)示例性實(shí)施例中,分區(qū)間通信信道504可以是事件驅(qū)動(dòng)的。在此配置中,當(dāng)信息被寫入該信道時(shí), 可以指示接收者通過例如圖3的系統(tǒng)管理程序302來從分區(qū)間通信信道504讀取信息?,F(xiàn)在參見圖6,示出的是數(shù)據(jù)中心的高層次框圖,數(shù)據(jù)中心包括虛擬桌面服務(wù)器 500、虛擬桌面服務(wù)器602、許可服務(wù)器604、代理服務(wù)器608、網(wǎng)關(guān)612和客戶端614。數(shù)據(jù)中心可被配置成向客戶端部署虛擬桌面會(huì)話。在所示例子中,虛擬化平臺(tái)502、虛擬桌面服務(wù)器602、許可服務(wù)器604、代理服務(wù)器608和網(wǎng)關(guān)612可以是內(nèi)聯(lián)網(wǎng)的一部分,用于登錄到這些計(jì)算機(jī)中的用戶憑證可以是同一域(即基礎(chǔ)結(jié)構(gòu)域520)的成員。基礎(chǔ)結(jié)構(gòu)域520以虛線示出,將虛擬桌面服務(wù)器500切成兩半,以說明在一示例性實(shí)施例中,虛擬機(jī)514可以是一個(gè)不同的域的一部分,或者不是任何域的部分。而且,虛擬機(jī)514可以是不同的網(wǎng)絡(luò)的一部分或者完全不是網(wǎng)絡(luò)的一部分。數(shù)據(jù)中心可以包括內(nèi)部網(wǎng)絡(luò),該內(nèi)部網(wǎng)絡(luò)將多個(gè)虛擬桌面服務(wù)器(602和500)耦合到代理服務(wù)器608和許可服務(wù)器604,其中虛擬桌面服務(wù)器可包括類似于圖3或4所示
12組件的組件。如本領(lǐng)域的技術(shù)人員可理解的,盡管示出了兩個(gè)虛擬桌面服務(wù)器,但數(shù)據(jù)中心可具有更多個(gè)虛擬桌面服務(wù)器。而且,盡管虛擬桌面服務(wù)器500被示出為運(yùn)行一個(gè)虛擬機(jī) (514),但是每個(gè)虛擬桌面服務(wù)器可以同時(shí)主存許多虛擬機(jī)。或者換句話說,數(shù)據(jù)中心可以有M個(gè)虛擬桌面服務(wù)器(其中M是大于1的整數(shù)),該M個(gè)虛擬化主機(jī)的每一個(gè)可以主存N 個(gè)虛擬機(jī)(其中N也是大于1的整數(shù))。代理服務(wù)器608可以充當(dāng)客戶端614到內(nèi)聯(lián)網(wǎng)的接口。簡言之,代理服務(wù)器608 可以包括與針對(duì)圖2所述的組件相似的組件。代理服務(wù)器608可以具有將其接口到諸如因特網(wǎng)等公共網(wǎng)絡(luò)的網(wǎng)絡(luò)適配器,以及將其接口到內(nèi)部網(wǎng)絡(luò)(即,內(nèi)聯(lián)網(wǎng))的另一網(wǎng)絡(luò)適配器。在本示例中,代理服務(wù)器608可以充當(dāng)內(nèi)部網(wǎng)絡(luò)的網(wǎng)關(guān),從而允許虛擬桌面服務(wù)器和許可服務(wù)器604保持在公共網(wǎng)絡(luò)之外。當(dāng)客戶端614的用戶想要虛擬桌面會(huì)話時(shí),他或她可以點(diǎn)擊圖標(biāo),而客戶端614可以將一個(gè)或多個(gè)信息分組發(fā)送至代理服務(wù)器608。代理服務(wù)器608可以包括軟件指令模塊, 軟件指令在執(zhí)行時(shí)使邏輯處理器選擇適當(dāng)?shù)奶摂M化主機(jī)來實(shí)例化一虛擬機(jī)以主存虛擬桌面會(huì)話??梢允占脩魬{證(例如用戶名和密碼組合),而代理服務(wù)器608可以檢查會(huì)話數(shù)據(jù)庫610以確定數(shù)據(jù)中心是否包括與諸如用戶名/密碼組合這樣的用戶憑證相關(guān)聯(lián)的任何斷開的虛擬桌面會(huì)話。如果會(huì)話數(shù)據(jù)庫610包括與用戶憑證相關(guān)聯(lián)的斷開的虛擬桌面會(huì)話,則代理服務(wù)器608可以向具有該斷開的會(huì)話的虛擬化主機(jī)發(fā)送信號(hào)并指示它執(zhí)行該虛擬機(jī)。如果會(huì)話數(shù)據(jù)庫610不具有指示關(guān)于用戶的斷開的會(huì)話的信息,則代理服務(wù)器608 可以選擇適當(dāng)?shù)奶摂M桌面服務(wù)器,例如,一個(gè)具有可用來實(shí)例化虛擬機(jī)以主存虛擬桌面會(huì)話的資源的服務(wù)器。虛擬化平臺(tái)502可以實(shí)例化虛擬機(jī)514,并且在虛擬處理器上執(zhí)行客操作系統(tǒng) 528?;剡^頭參考圖5,客操作系統(tǒng)5 可以運(yùn)行遠(yuǎn)程呈現(xiàn)引擎506;將虛擬NIC 616的網(wǎng)際協(xié)議(IP)地址返回至代理服務(wù)器608;并且等待來自客戶端614的連接。代理服務(wù)器608 可以在信息分組中將虛擬NIC 616的IP地址返回至客戶端614,該信息分組使客戶端614 的邏輯處理器將客戶端重定向至IP地址虛擬機(jī)514。網(wǎng)關(guān)612可以接收該連接請(qǐng)求并將它轉(zhuǎn)發(fā)至虛擬NIC 616。在至少一個(gè)示例性實(shí)施例中,會(huì)話管理器508可以被配置成檢查客戶端614在啟動(dòng)虛擬桌面會(huì)話之前是否與有效的許可證相關(guān)聯(lián)。遠(yuǎn)程呈現(xiàn)引擎506可以從客戶端614接收許可證(或與許可證相關(guān)聯(lián)的信息),并將該信息發(fā)送至虛擬化平臺(tái)502,虛擬化平臺(tái)502 可以將許可證(或與許可證相關(guān)聯(lián)的信息)發(fā)送至許可服務(wù)器604。許可服務(wù)器604可以包括許可證確認(rèn)引擎606,許可證確認(rèn)引擎606可以被配置成確定與客戶端614相關(guān)聯(lián)的許可證是否有效。如果許可證是有效的,許可證確認(rèn)引擎606可以將信號(hào)發(fā)回虛擬桌面服務(wù)器500,而虛擬桌面會(huì)話可被啟動(dòng)。在這一點(diǎn)上,遠(yuǎn)程呈現(xiàn)引擎506可以將指示客操作系統(tǒng) 5 的圖形用戶界面的一個(gè)或多個(gè)信息分組流式傳送到客戶端614,并且從客戶端614接收指示用戶輸入的一個(gè)或多個(gè)信息分組。在一示例性實(shí)施例中,當(dāng)虛擬化平臺(tái)502從代理服務(wù)器608接收請(qǐng)求以實(shí)例化虛擬機(jī)時(shí),虛擬桌面管理器530可以執(zhí)行命令和/或信息,并且經(jīng)由分區(qū)間通信信道504將命令和/或信息發(fā)送至虛擬機(jī)514以使客操作系統(tǒng)5 被配置成進(jìn)行虛擬桌面會(huì)話。配置服務(wù)534可以接收該命令和/或信息,并且相應(yīng)地配置客操作系統(tǒng)528。例如,虛擬桌面管理器530可以發(fā)送嘗試連接的用戶的身份、保護(hù)客操作系統(tǒng)528的防火墻的所需設(shè)置、注冊(cè)表值、允許用戶操作的應(yīng)用的列表、用來啟用虛擬桌面會(huì)話并且用來將用戶的身份添加至授權(quán)的虛擬桌面用戶列表的命令等等。配置服務(wù)534可以在虛擬處理器上執(zhí)行并且改變適當(dāng)?shù)脑O(shè)置。一旦虛擬桌面會(huì)話在運(yùn)行時(shí),虛擬桌面管理器530就可以經(jīng)由分區(qū)間通信信道 504來管理運(yùn)行的虛擬桌面會(huì)話。例如,虛擬桌面管理器530可以向虛擬機(jī)514發(fā)布命令, 諸如使客操作系統(tǒng)5 關(guān)閉、斷開用戶、重置客操作系統(tǒng)5 等的命令。在同一個(gè)或另一個(gè)實(shí)施例中,虛擬桌面管理器530可以管理虛擬桌面會(huì)話,接收虛擬機(jī)514的狀態(tài)信息、來自遠(yuǎn)程呈現(xiàn)引擎506的狀況信息,并且/或者將控制虛擬桌面會(huì)話的命令發(fā)送至配置服務(wù) 534。例如,虛擬桌面管理器530可以接收虛擬機(jī)514的指示虛擬機(jī)514是否在運(yùn)行、暫停、 就緒、引導(dǎo)的狀態(tài)信息,以及可被發(fā)送至客戶端的IP地址列表。此外,虛擬桌面管理器530 可以接收客操作系統(tǒng)528的狀況信息,諸如登錄到虛擬桌面會(huì)話的用戶的身份,并且可以將該信息的一些或全部傳送至代理服務(wù)器608。圖7描繪了其中客戶端具有包括與多個(gè)服務(wù)器的遠(yuǎn)程會(huì)話的工作空間的示例系統(tǒng)。圖7中所描繪的計(jì)算機(jī)可與圖1中所描繪的計(jì)算機(jī)類似。在圖7中,客戶端702 與部署700通信,部署700包括認(rèn)證服務(wù)器704、連接代理706、網(wǎng)關(guān)708、遠(yuǎn)程應(yīng)用服務(wù)器場(chǎng)714(遠(yuǎn)程應(yīng)用服務(wù)器場(chǎng)進(jìn)一步包括兩個(gè)同樣配置的服務(wù)器遠(yuǎn)程應(yīng)用服務(wù)器716a-b)、 以及VM服務(wù)器場(chǎng)710 (VM服務(wù)器場(chǎng)進(jìn)一步包括兩個(gè)同樣配置的VM =VM 712a-b)。客戶端702具有包括由遠(yuǎn)程應(yīng)用服務(wù)器716和VM 712中的一個(gè)或多個(gè)供應(yīng)的多個(gè)遠(yuǎn)程資源的工作空間。客戶端702可通過認(rèn)證服務(wù)器704登入其工作空間。一旦被認(rèn)證,客戶端的連接至其工作空間的請(qǐng)求被從認(rèn)證服務(wù)器704發(fā)送至連接代理706。連接代理706被配置成代理客戶端702與應(yīng)用服務(wù)器716和VM 712之間的將向客戶端702供應(yīng)遠(yuǎn)程資源的連接,并且為此,連接代理706被配置成與應(yīng)用服務(wù)器716和VM 712通信以確定它們當(dāng)前正供應(yīng)什么資源(包括客戶端702的用戶的斷開的遠(yuǎn)程資源)??蛻舳?02可具有包括多個(gè)遠(yuǎn)程資源——包括來自遠(yuǎn)程應(yīng)用服務(wù)器716a的遠(yuǎn)程應(yīng)用的遠(yuǎn)程資源以及包括來自VM 71 的VM的遠(yuǎn)程資源——的工作空間。如所描繪的,客戶端702不具有關(guān)于遠(yuǎn)程應(yīng)用服務(wù)器716b或VM 712b的遠(yuǎn)程資源。這些遠(yuǎn)程資源可各自服務(wù)于不同應(yīng)用或桌面、各版本的應(yīng)用、或其它置換。例如,遠(yuǎn)程應(yīng)用服務(wù)器716a可向客戶端702供應(yīng)遠(yuǎn)程文字處理應(yīng)用,而VM 712可向客戶端702供應(yīng)遠(yuǎn)程桌面。通過這一說明可知,當(dāng)用戶想要重新連接回他或她的工作空間時(shí),他可能想要通過一條命令重新連接至遠(yuǎn)程應(yīng)用服務(wù)器716a和VM 71 兩者的遠(yuǎn)程資源,而不是通過執(zhí)行三次的一條命令。用戶可從客戶端702或從另一客戶端計(jì)算機(jī)執(zhí)行這一重新連接操作(諸如當(dāng)客戶端702是用戶在工作場(chǎng)所的計(jì)算機(jī),而用戶想要在周末時(shí)從家中的計(jì)算機(jī)重新連接)。圖8描繪了用于客戶端重新連接至工作空間的遠(yuǎn)程資源的示例通信流。圖8描繪了一系統(tǒng)中的示例通信流,其中客戶端重新連接包括與多個(gè)服務(wù)器的遠(yuǎn)程會(huì)話的工作空間。這一通信流可實(shí)現(xiàn)在諸如圖7中所描繪的計(jì)算機(jī)系統(tǒng)之類的系統(tǒng)中。 即,圖8的遠(yuǎn)程部署800、客戶端802、認(rèn)證服務(wù)器804、連接代理806、網(wǎng)關(guān)808、VM場(chǎng)810和VM 81 可分別與圖7的遠(yuǎn)程部署200、客戶端202、認(rèn)證服務(wù)器204、連接代理206、網(wǎng)關(guān) 208、VM 場(chǎng) 210 和 VM 212a 類似??蛻舳?02的用戶之前已具有到遠(yuǎn)程服務(wù)器場(chǎng)800的工作空間,該工作空間涉及訪問來自VM 81 的遠(yuǎn)程資源,并且該工作空間現(xiàn)在被斷開。在客戶端802嘗試重新連接至部署800之前,認(rèn)證服務(wù)器804(經(jīng)由通信(1))向客戶端802發(fā)布文檔,該文檔標(biāo)識(shí)客戶端802可用來訪問部署800的遠(yuǎn)程資源的、關(guān)于部署800的信息??蛻舳?02稍后通過將通信( 發(fā)送給認(rèn)證服務(wù)器804來重新連接。認(rèn)證服務(wù)器804驗(yàn)證用戶和/或客戶端的憑證 (諸如賬戶和密碼)。若憑證被驗(yàn)證,認(rèn)證服務(wù)器804與連接代理806通信以確定當(dāng)重新連接到客戶端802的工作空間時(shí)客戶端802將要重新連接到哪些遠(yuǎn)程資源(此處為VM812a)。 認(rèn)證服務(wù)器804通過向連接代理806發(fā)送通信C3)并作為響應(yīng)在通信(4)中接收回客戶端 802要重新連接到的服務(wù)器場(chǎng)(此處為VM場(chǎng)810)的列表來做出這一確定。在通信⑷中指示的這一信息由認(rèn)證服務(wù)器804在通信(5)中傳遞給客戶端802。當(dāng)客戶端802從認(rèn)證服務(wù)器804得到了要重新連接到的服務(wù)器的列表時(shí),客戶端 802與那些服務(wù)器場(chǎng)中的每一個(gè)重新建立通信。如圖8中所描繪的,該服務(wù)器場(chǎng)是VM場(chǎng) 810??蛻舳?02沒有直接接觸連接代理806或VM場(chǎng)810的能力。因此網(wǎng)關(guān)808被用在聯(lián)網(wǎng)環(huán)境的邊緣以協(xié)助該請(qǐng)求并越過網(wǎng)絡(luò)邊界。客戶端802與網(wǎng)關(guān)808通信(6)以訪問這些服務(wù)器場(chǎng)的遠(yuǎn)程資源。網(wǎng)關(guān)808處理通信(6),并進(jìn)而與通信代理806通信(7)以傳遞類似的信息。連接代理806從通信(7)獲取服務(wù)器場(chǎng)的標(biāo)識(shí),并從該標(biāo)識(shí)來標(biāo)識(shí)具有該斷開的遠(yuǎn)程資源的場(chǎng)810內(nèi)的機(jī)器(VM 812a)。連接代理806發(fā)送通信⑶至VM 812a,指示VM 81 將該遠(yuǎn)程資源重新連接至客戶端802。通過發(fā)送指示同一內(nèi)容的通信(9)至網(wǎng)關(guān)808, VM 81 與客戶端802重新連接,而網(wǎng)關(guān)808又進(jìn)而發(fā)送指示同一內(nèi)容的通信(10)至客戶端 802??梢岳斫猓@是用于突出本發(fā)明的簡化圖示,并且可存在和/或連接至更多或更少的服務(wù)器場(chǎng),并且可更多涉及所傳遞的通信(例如,示出的是通信(9)和(10)建立VM 812a和客戶端802之間的重新連接,而這也可涉及從客戶端802經(jīng)網(wǎng)關(guān)808發(fā)送給VM 81加的通信)。用于實(shí)現(xiàn)上面提到的虛擬機(jī)的所有這些變型只是示例性實(shí)現(xiàn),且本文沒有任何表述應(yīng)被解釋為將本公開限制于任何特定的虛擬化方面。企業(yè)用戶對(duì)主存虛擬機(jī)的遠(yuǎn)程訪問許多向其用戶提供虛擬機(jī)的企業(yè)正在從公共云提供者購買計(jì)算容量。云提供者 (也被稱為公共主存者(public hoster))出售虛擬機(jī)形式的計(jì)算容量,終端用戶在“即用即付(pay as you go) ”的基礎(chǔ)上為計(jì)算容量付費(fèi)。類似地,企業(yè)也能夠從這些云提供者購買計(jì)算容量以擴(kuò)展其計(jì)算容量。云提供者可使用虛擬化主機(jī)來部署虛擬機(jī)并向企業(yè)承租人出售虛擬機(jī)。云提供者的數(shù)據(jù)中心中的虛擬化主機(jī)可被聯(lián)結(jié)到云提供者的域,而承租人 (云服務(wù)的計(jì)算容量的購買者)擁有實(shí)際的虛擬機(jī)。企業(yè)承租人通常有許多用戶。承租人可進(jìn)一步將計(jì)算容量細(xì)分并將從云租賃的個(gè)體虛擬機(jī)分配給來自他的企業(yè)的個(gè)體用戶。這些用戶需要以類似于他們?cè)L問他們的本地計(jì)算機(jī)的方式訪問那些虛擬機(jī)。例如,遠(yuǎn)程桌面協(xié)議可被用來訪問虛擬機(jī)。在服務(wù)提供者處, 該基礎(chǔ)結(jié)構(gòu)可以以對(duì)虛擬機(jī)的所有遠(yuǎn)程桌面訪問都是通過主計(jì)算機(jī)來完成的方式被設(shè)置。
如上所述,域可以是共享中央目錄數(shù)據(jù)庫的計(jì)算機(jī)的邏輯分組。這個(gè)中央目錄 (例如,活動(dòng)目錄(Active Directory))含有用戶賬戶和用于那個(gè)域中的資源的安全信息。 域內(nèi)的每個(gè)用戶可接收唯一賬戶或用戶名。然后可向這個(gè)賬戶分配對(duì)該域內(nèi)的資源的訪問。根據(jù)位置、組織結(jié)構(gòu)或其它因素,可將域內(nèi)的計(jì)算機(jī)分配為組織單位。計(jì)算機(jī)可使用 VPN連接經(jīng)由LAN或經(jīng)由WAN連接到域。該域可為認(rèn)證機(jī)構(gòu)提供支持以確認(rèn)身份。通過云提供者提供遠(yuǎn)程服務(wù)可提供一些好處,諸如1.即使承租人虛擬機(jī)不具有聯(lián)網(wǎng)設(shè)置也可提供訪問。2.可為諸如Window、Linux等多操作系統(tǒng)(OS)虛擬機(jī)工作負(fù)荷提供訪問。3.在虛擬機(jī)上執(zhí)行人工/網(wǎng)絡(luò)操作系統(tǒng)安裝的能力。4.云提供者的網(wǎng)關(guān)和客虛擬機(jī)之間的網(wǎng)絡(luò)連通性是不需要的,從而使得云提供者的網(wǎng)絡(luò)和承租人的網(wǎng)絡(luò)能夠隔離(客虛擬機(jī)可在它們自己的隔離網(wǎng)絡(luò)中)。上述情形的一個(gè)問題是,通過云提供者的虛擬化主機(jī)對(duì)云中的虛擬機(jī)的遠(yuǎn)程呈現(xiàn)訪問必須對(duì)承租人企業(yè)的最終用戶是安全的。通常使用來自主存者的域的憑證來保護(hù)這些虛擬機(jī)。然而,虛擬機(jī)的實(shí)際消費(fèi)者(例如,客戶端)沒有對(duì)那些憑證的訪問權(quán),因?yàn)閷?duì)此虛擬機(jī)的訪問權(quán)是被分委托(sub-delegate)給它們的。在各實(shí)施例中,公開了用于使得企業(yè)的終端用戶能夠通過云提供者的虛擬化主機(jī)和遠(yuǎn)程呈現(xiàn)網(wǎng)關(guān)接收對(duì)主存(hosted)的公共云中的分配的虛擬機(jī)的安全遠(yuǎn)程呈現(xiàn)訪問的方法和系統(tǒng)。因此企業(yè)管理員可從云提供者購買計(jì)算容量并進(jìn)一步將購買的計(jì)算容量在企業(yè)最終用戶間細(xì)分。云提供者不需要為企業(yè)的每個(gè)最終用戶創(chuàng)建影子賬戶。云提供者也不需要將主機(jī)信息暴露給承租人。在一實(shí)施例中,可使用用X. 509證書簽署的定制令牌。在其它實(shí)施例中,可使用具有用于身份聯(lián)盟的STS的SAML令牌。在一個(gè)實(shí)施例中,通過使用終端服務(wù)網(wǎng)關(guān)處的定制授權(quán)插件和虛擬化主機(jī)處的間接監(jiān)聽器組件的組合,可提供授權(quán)。因此企業(yè)管理員可以能夠進(jìn)一步細(xì)分購買的公共云容量并將承租人虛擬機(jī)在最終用戶間分配,而不為每個(gè)最終用戶創(chuàng)建影子賬戶。當(dāng)客戶端連接于遠(yuǎn)程呈現(xiàn)網(wǎng)關(guān)時(shí)主機(jī)細(xì)節(jié)還可以被抽象,以保護(hù)主存者的結(jié)構(gòu)免受攻擊并使承租人虛擬機(jī)能夠跨云提供者的虛擬化主機(jī)自由移動(dòng)。在各實(shí)施例中,可并入下述特征。1.可使用SAML令牌/STS或定制令牌/X. 509證書。安全斷言標(biāo)記語言(SAML)是一種用于在安全域之間交換認(rèn)證和授權(quán)數(shù)據(jù)的基于XML的標(biāo)準(zhǔn)。安全域通常是身份提供者和服務(wù)提供者。X. 509是一種用于單點(diǎn)登錄(single sign-on(SSO))和特權(quán)管理基礎(chǔ)結(jié)構(gòu) (PMI)的公鑰基礎(chǔ)結(jié)構(gòu)的ITU-T標(biāo)準(zhǔn)。2.云提供者不需要為企業(yè)的每個(gè)最終用戶在云提供者的活動(dòng)目錄中創(chuàng)建影子賬戶。3.從云提供者購買容量的企業(yè)管理員可進(jìn)一步將云資源在企業(yè)的最終用戶間細(xì)分。每個(gè)最終用戶應(yīng)當(dāng)只能訪問由企業(yè)管理員分配給該用戶的虛擬機(jī)。云提供者將虛擬機(jī)分配給企業(yè)管理員而企業(yè)管理員進(jìn)而又將虛擬機(jī)在該企業(yè)的最終用戶間細(xì)分。最終用戶不能直接訪問虛擬機(jī)。4.云提供者不需要暴露主機(jī)信息。承租人虛擬機(jī)可在云提供者的虛擬化主機(jī)內(nèi)自由遷移。
5.云提供者的主機(jī)不直接暴露于互聯(lián)網(wǎng),而且將通過遠(yuǎn)程呈現(xiàn)網(wǎng)關(guān)被掩蔽。6.企業(yè)的最終用戶客戶端不使用代理通過企業(yè)服務(wù)器,但與云提供者的遠(yuǎn)程呈現(xiàn)網(wǎng)關(guān)直接通信。7.承租人虛擬機(jī)可以在它們自己的隔離網(wǎng)絡(luò)中,或者可以是任何其它的網(wǎng)絡(luò)配置,包括完全沒有網(wǎng)絡(luò)連接。8.遠(yuǎn)程桌面通信數(shù)據(jù)可以是SSL/TLS加密的。9.應(yīng)當(dāng)支持多承租人情形。遠(yuǎn)程呈現(xiàn)網(wǎng)關(guān)應(yīng)當(dāng)在不同承租人間共享。許多企業(yè)可從服務(wù)提供者購買容量并充當(dāng)承租人。而且,這些企業(yè)可以在它們各自的最終用戶間細(xì)分
該容量。10.該方案應(yīng)當(dāng)是可縮放的。自服務(wù)門戶可以是將虛擬機(jī)的管理擴(kuò)展到最終用戶的web組件。自服務(wù)門戶可以是在虛擬化系統(tǒng)之上構(gòu)建的可擴(kuò)展組件。自服務(wù)門戶可被用來統(tǒng)籌(pool)、分配和管理資源以提供基礎(chǔ)結(jié)構(gòu)作為服務(wù)并供應(yīng)用于企業(yè)內(nèi)的私有云平臺(tái)的基礎(chǔ)。自服務(wù)門戶將對(duì)虛擬機(jī)的分配擴(kuò)展到最終用戶。自服務(wù)門戶可包括基于web的用戶接口,該用戶接口包括用于數(shù)據(jù)中心管理員和商業(yè)單元IT消費(fèi)者的部分。自服務(wù)門戶可包括動(dòng)態(tài)供應(yīng)引擎(dynamic provisioning engine),并可通過為參與的(on-boarding)商業(yè)單元和基礎(chǔ)結(jié)構(gòu)提供請(qǐng)求和變化管理來減少供應(yīng)基礎(chǔ)結(jié)構(gòu)及其組件所需的時(shí)間。在一實(shí)施例中,終端服務(wù)網(wǎng)關(guān)可具有定制認(rèn)證和授權(quán)插件。當(dāng)客戶端請(qǐng)求遠(yuǎn)程桌面時(shí),客戶端可發(fā)送具有他們的憑證的cookie。該插件可認(rèn)證該cookie并授權(quán)該調(diào)用者。 可在虛擬化主機(jī)處需要附加的授權(quán)以授權(quán)對(duì)特定虛擬機(jī)的訪問。在一個(gè)實(shí)施例中,這可以用主機(jī)上的中間監(jiān)聽服務(wù)實(shí)現(xiàn)。所有上面這些都是安全連接所需的。在一實(shí)施例中,企業(yè)最終用戶可使用認(rèn)證機(jī)制來登入企業(yè)的自服務(wù)門戶。例如,企業(yè)用戶可使用Kerberos認(rèn)證來登入該自服務(wù)門戶。更一般而言,當(dāng)企業(yè)從云提供者購買容量時(shí),云提供者具有其自己的域和活動(dòng)目錄。企業(yè)具有其自己的域和活動(dòng)目錄。相應(yīng)地,企業(yè)和云提供者不需要他們之間的信任。因此,企業(yè)中的用戶期望連接到云提供者處的、用戶擁有的虛擬機(jī)。在一實(shí)施例中,進(jìn)一步期望利用現(xiàn)有企業(yè)組件和能力,諸如終端服務(wù)網(wǎng)關(guān)和諸如 RDP等現(xiàn)有遠(yuǎn)程呈現(xiàn)協(xié)議。在一實(shí)施例中,創(chuàng)建cookie,該cookie包括定制授權(quán)插件所需的聲明(claim)。一個(gè)問題在于一些系統(tǒng)可能是為直接對(duì)客OS的遠(yuǎn)程呈現(xiàn)訪問而設(shè)計(jì)的,而不是為對(duì)主機(jī)的遠(yuǎn)程呈現(xiàn)訪問而設(shè)計(jì)的。另一個(gè)問題在于如何實(shí)現(xiàn)通過非信任域?qū)μ摂M機(jī)的遠(yuǎn)程控制臺(tái)連接。在一個(gè)實(shí)施例中,終端服務(wù)網(wǎng)關(guān)可提供可插拔式認(rèn)證和授權(quán)模塊以支持認(rèn)證機(jī)制??蛻舳丝赏ㄟ^cookie發(fā)送隨意字節(jié)陣列到終端服務(wù)網(wǎng)關(guān)。在允許連接之前,終端服務(wù)網(wǎng)關(guān)可將目標(biāo)資源的名稱通知定制資源授權(quán)插件(可插拔式認(rèn)證和授權(quán)模塊的一部分)。 盡管這在到目標(biāo)機(jī)器的遠(yuǎn)程會(huì)話的情況下可以工作,然而當(dāng)被用于通過虛擬化主機(jī)的單端口監(jiān)聽器服務(wù)對(duì)客虛擬機(jī)的控制臺(tái)訪問時(shí),指定的目標(biāo)資源是該虛擬化主機(jī)。然而,真正的目標(biāo)是在該虛擬化主機(jī)上運(yùn)行的虛擬機(jī)。最終用戶能夠以至少兩種方式連接到他的虛擬機(jī)(a)通過使用到虛擬機(jī)中的遠(yuǎn)程桌面直接連接,或(b)通過利用單端口監(jiān)聽器(SPL)。如果最終用戶正在使用單端口監(jiān)聽器,則該用戶連接到主計(jì)算機(jī)端口。該主機(jī)使用CredSSP認(rèn)證并確認(rèn)此用戶能夠訪問他們想要連接到的虛擬機(jī)。然后該主機(jī)通過該主機(jī)上的私有接口將該遠(yuǎn)程桌面會(huì)話重定向到該虛擬機(jī)。執(zhí)行這些功能的組件被稱為單端口監(jiān)聽器。單端口監(jiān)聽器允許VMM通過主機(jī)連接來連接到任何虛擬機(jī)而不對(duì)虛擬機(jī)施加任何聯(lián)網(wǎng)要求。單端口監(jiān)聽器還可允許最終用戶使用諸如hternet Explorer等瀏覽器從客戶端計(jì)算機(jī)連接到門戶。然后最終用戶可選擇連接到虛擬機(jī)并查看控制臺(tái)會(huì)話。虛擬機(jī)ID可作為遠(yuǎn)程呈現(xiàn)協(xié)議的一部分被傳遞(例如,在預(yù)連接團(tuán)塊 (pre-connection blob)中)到目的地處的虛擬化主機(jī)的單端口監(jiān)聽器。因?yàn)轭A(yù)連接團(tuán)塊在定制資源授權(quán)插件處可不被暴露,所以使用作為cookie發(fā)送到終端服務(wù)網(wǎng)關(guān)的SAML令牌或定制證書令牌的完全的虛擬機(jī)水平的粒度的授權(quán)可能不是可能的。定制資源授權(quán)插件需要能夠訪問該連接的預(yù)連接團(tuán)塊以確認(rèn)它是該連接的資源授權(quán)的一部分。授權(quán)插件需要用被訪問的實(shí)際的目標(biāo)資源來確認(rèn)cookie中出現(xiàn)的信息。目標(biāo)虛擬機(jī)ID可通過cookie 被取回,但是關(guān)于來自網(wǎng)關(guān)的目標(biāo)連接實(shí)際上是那個(gè)虛擬機(jī)的授權(quán)仍然被需要。RD網(wǎng)關(guān)處的定制資源授權(quán)模塊僅意識(shí)到要訪問的目標(biāo)虛擬化主機(jī)和端口。然而, “真正的目標(biāo)”是在該虛擬化主機(jī)上運(yùn)行的客虛擬機(jī)。例如,惡意用戶可向終端服務(wù)網(wǎng)關(guān)的授權(quán)插件提交簽署的聲明,請(qǐng)求訪問在該主機(jī)中運(yùn)行的虛擬機(jī)。該用戶能夠指定預(yù)連接團(tuán)塊指向同一主機(jī)中運(yùn)行的另一虛擬機(jī)。網(wǎng)關(guān)的授權(quán)插件不能用在同一主機(jī)中運(yùn)行的實(shí)際的目標(biāo)虛擬機(jī)來“交叉檢查”該聲明。參考圖9到11,提供下面的示意性示例以描繪本公開的一個(gè)實(shí)施例。我們假定云域的虛擬機(jī)VMl和VM2被云提供者(“云(Cloud) ”)分配給企業(yè)(“企業(yè)(Enterprise) ”)。 企業(yè)管理員將VMl分配給企業(yè)\用戶1并將VM2分配給企業(yè)\用戶2。在本示例中,客戶端指的是企業(yè)遠(yuǎn)程呈現(xiàn)客戶端。企業(yè)遠(yuǎn)程呈現(xiàn)客戶端可以是管理員控制臺(tái)。在一實(shí)施例中,該控制臺(tái)可以是一進(jìn)程或加載到自服務(wù)門戶的頁面的 Active-X 控件。云提供者(CloudProvider)在其活動(dòng)目錄中為從它購買容量的每個(gè)企業(yè)創(chuàng)建兩個(gè)用戶賬戶。作為示例描繪,令“云\企業(yè)”是在云域中為企業(yè)的管理員創(chuàng)建的用戶賬戶?!霸?\企業(yè)”不被企業(yè)管理員共享到企業(yè)的所有最終用戶。令“云\企業(yè)T”是為該企業(yè)所擁有的所有虛擬機(jī)的控制臺(tái)訪問的唯一目的而在云域中創(chuàng)建的另一用戶賬戶“云\企業(yè)T”對(duì)云提供者的域中的這一特定企業(yè)所擁有的所有虛擬機(jī)只具有“控制臺(tái)訪問(consoleaccess),, 特權(quán)(由虛擬化主機(jī)(例如使用Azman的Hyper-V)實(shí)施)。虛擬化主機(jī)的虛擬機(jī)管理系統(tǒng)(單端口監(jiān)聽器)使用CredSSP協(xié)議來托管認(rèn)證進(jìn)入的連接。企業(yè)最終用戶的客戶端需要使用用戶賬戶“云\企業(yè)T”來使用CredSSP協(xié)議在云提供者的虛擬化主機(jī)處認(rèn)證。這個(gè)憑證和簽署的令牌一起被企業(yè)虛擬機(jī)管理系統(tǒng)轉(zhuǎn)交給客戶端。憑證SSP是提供單點(diǎn)登錄(SSO)的安全支持提供者。重要的是注意,最終用戶不顯式地輸入這一憑證,而是由客戶端在與企業(yè)虛擬機(jī)管理系統(tǒng)通信之后自動(dòng)處理。更重要的是,在我們的例子中,由單端口監(jiān)聽器施加的這一認(rèn)證機(jī)制是無用的,因?yàn)槲覀儾幌胍髽I(yè)的用戶獲得對(duì)屬于甚至同一企業(yè)的另一用戶的VM的訪問權(quán)。我們主要的認(rèn)證和授權(quán)機(jī)制是使用簽署的令牌。盡管如此,這的確充當(dāng)了對(duì)其它不同企業(yè)保護(hù)一個(gè)企業(yè)承租人的額外的防御層。1.參考圖9,在操作900中,企業(yè)\用戶1使用應(yīng)用編程接口(API)來與企業(yè)虛擬化管理器服務(wù)器通話以標(biāo)識(shí)它自己為企業(yè)\用戶1并出示請(qǐng)求訪問VMl的授權(quán)的聲明。 客戶端和企業(yè)虛擬化管理器服務(wù)器之間的通信是受保護(hù)信道。在一實(shí)施例中,API可以是 Windows通信基礎(chǔ)(WCF),WCF是.NET框架中用于構(gòu)建連接的、面向服務(wù)的應(yīng)用的API。2.在操作910中,企業(yè)虛擬化管理器服務(wù)器通過驗(yàn)證企業(yè)\用戶1的身份來執(zhí)行認(rèn)證。3.在操作920中,企業(yè)虛擬化管理器服務(wù)器通過驗(yàn)證企業(yè)\用戶1具有對(duì)VMl的訪問權(quán)來執(zhí)行授權(quán)。4.在操作930中,一旦經(jīng)認(rèn)證和授權(quán),企業(yè)虛擬化管理器服務(wù)器使用云服務(wù)提供者信任的證書(使用私鑰簽署)來簽署該聲明。該證書的私鑰不被企業(yè)管理員共享給該企業(yè)的所有用戶,且僅為該虛擬化管理器服務(wù)器所知。簽署的令牌被返回到客戶端。a.企業(yè)客戶端還從企業(yè)虛擬化管理器服務(wù)器檢索用于服務(wù)提供者的終端服務(wù)網(wǎng)關(guān)服務(wù)器。b.企業(yè)客戶端使用虛擬機(jī)ID作為主機(jī)別名。企業(yè)客戶端不知道真正的主機(jī)名稱 /IP地址。企業(yè)客戶端將此別名作為主機(jī)名稱轉(zhuǎn)發(fā)給終端服務(wù)網(wǎng)關(guān)。c.在一個(gè)實(shí)施例中,該令牌含有數(shù)據(jù)塊、簽名塊、以及僅帶有公鑰的承租人證書。 該令牌的數(shù)據(jù)塊含有承租人ID、令牌ID、令牌期滿時(shí)間、以及授權(quán)的目標(biāo)虛擬機(jī)ID。提供期滿時(shí)間和其它對(duì)策以避免被稱為重放攻擊的對(duì)服務(wù)提供者網(wǎng)絡(luò)的常見攻擊。簽名塊含有用承租人證書的私鑰簽署的數(shù)據(jù)塊的散列(hash)。承租人證書也被包括在內(nèi),但是僅含有公鑰。d.企業(yè)客戶端將令牌編碼。企業(yè)客戶端設(shè)置遠(yuǎn)程呈現(xiàn)連接的參數(shù),向網(wǎng)關(guān)指示它想要使用基于cookie的授權(quán)。在一實(shí)施例中,預(yù)連接團(tuán)塊含有串“〈Token ID> ;〈virtual machine ID> (〈令牌ID> ;〈虛擬機(jī)ID>) ”。遠(yuǎn)程呈現(xiàn)客戶端被設(shè)定為用“云/企業(yè)Τ”的憑證使用CredSSP。Cookie大體而言是包括文本的數(shù)據(jù)并由用戶的web瀏覽器存儲(chǔ)或在存儲(chǔ)器中存儲(chǔ)。Cookie能被用來認(rèn)證、存儲(chǔ)站點(diǎn)偏好、購物車內(nèi)容、基于服務(wù)器的會(huì)話的標(biāo)識(shí)符或可通過存儲(chǔ)文本數(shù)據(jù)實(shí)現(xiàn)的其它任何東西。5.在操作940中,企業(yè)客戶端通過HTTPS隧道連接到終端服務(wù)網(wǎng)關(guān),該HTTPS隧道指定目的地虛擬化服務(wù)器和中間監(jiān)聽器的目的地端口(例如8114)。企業(yè)客戶端還向網(wǎng)關(guān)發(fā)送簽署的令牌作為cookie。a.當(dāng)使用STS服務(wù)器方案時(shí),企業(yè)客戶端向網(wǎng)關(guān)發(fā)送SAML令牌。企業(yè)客戶端在企業(yè)和云提供者的STS服務(wù)器之間的認(rèn)證之后獲得SAML令牌。這需要在企業(yè)和云活動(dòng)目錄環(huán)境之間設(shè)置粒度化的信任水平。6.參考圖10,在操作1000中,終端服務(wù)網(wǎng)關(guān)的定制認(rèn)證插件接收簽署的令牌并驗(yàn)證令牌未被篡改。認(rèn)證插件使用證書的公鑰。a.當(dāng)使用STS服務(wù)器方案時(shí),STS服務(wù)器用云ADFS服務(wù)器驗(yàn)證簽署的SAML令牌。 ADFS是提供web單點(diǎn)登錄(SSO)技術(shù)以在單個(gè)在線會(huì)話的壽命期間向多個(gè)web應(yīng)用認(rèn)證用戶的組件。
19
7.在操作1010中,終端服務(wù)網(wǎng)關(guān)的定制認(rèn)證插件驗(yàn)證承租人證書映射到云提供者的域中的用戶賬戶。8.在操作1020中,終端服務(wù)網(wǎng)關(guān)的定制資源授權(quán)插件接收簽署的令牌。a.在一個(gè)實(shí)施例中,執(zhí)行主機(jī)層次的授權(quán)。b.在另一實(shí)施例中,授權(quán)插件查詢?cè)铺峁┱咛摂M化管理器服務(wù)器,以基于令牌中的聲明來檢查承租人是否對(duì)該虛擬機(jī)有訪問權(quán)。9.終端服務(wù)網(wǎng)關(guān)的定制資源授權(quán)插件將不能夠執(zhí)行完全的虛擬機(jī)層次的授權(quán),因?yàn)檫h(yuǎn)程呈現(xiàn)協(xié)議的預(yù)連接團(tuán)塊不被終端服務(wù)網(wǎng)關(guān)暴露,因?yàn)樗荒軌蛴脤?shí)際的目的地來交叉檢查簽署的令牌中的簽署的聲明。10.終端服務(wù)網(wǎng)關(guān)調(diào)用插件來解析別名化的主機(jī)名稱,因?yàn)樵搫e名不能被本地 windows DNS提供者解析。在操作1310中,聯(lián)系云提供者的虛擬化管理器服務(wù)器以找到在此時(shí)間點(diǎn)此虛擬機(jī)所駐留的真正的主機(jī)。11. 一旦主機(jī)被確定之后,定制授權(quán)插件可向目標(biāo)虛擬化主機(jī)中的中間監(jiān)聽服務(wù)通知有關(guān)要被授權(quán)的目標(biāo)虛擬機(jī)ID和令牌ID。Windows管理工具(WMI)提供者可被寫入該主機(jī)中。WMI提供者將控制授權(quán)和通信。a. 一旦終端服務(wù)網(wǎng)關(guān)執(zhí)行認(rèn)證和授權(quán)之后,網(wǎng)關(guān)現(xiàn)在變成客戶端連接和虛擬化主機(jī)處的目的地中間監(jiān)聽器之間的盲通道(blind pass through)。12.參考圖11,在操作1100中,虛擬化主機(jī)中的中間監(jiān)聽器從終端服務(wù)網(wǎng)關(guān)的定制授權(quán)插件接收“邊帶信息(side band information)”。13.在操作1110中,虛擬化主機(jī)中的中間監(jiān)聽器從終端服務(wù)網(wǎng)關(guān)接收遠(yuǎn)程呈現(xiàn)連接。中間監(jiān)聽器打開預(yù)連接團(tuán)塊(該連接的第一組字節(jié))并用從終端服務(wù)網(wǎng)關(guān)的定制資源授權(quán)插件作為邊帶通知而接收的授權(quán)的虛擬機(jī)ID來交叉檢查該團(tuán)塊中指定的目標(biāo)虛擬機(jī) ID。網(wǎng)關(guān)發(fā)送的授權(quán)的虛擬機(jī)ID和實(shí)際的目標(biāo)虛擬機(jī)ID的相關(guān)是使用兩者中出現(xiàn)的令牌 ID來執(zhí)行的。與典型虛擬桌面會(huì)話不同,最終用戶沒有為該會(huì)話而發(fā)送到該虛擬機(jī)的憑證。 相應(yīng)地,令牌被用來確認(rèn)通過中間服務(wù)的訪問。a.如果虛擬機(jī)ID不匹配,則該連接被舍棄。b.如果虛擬機(jī)ID相匹配,則該連接的剩余部分被盲目地轉(zhuǎn)發(fā)到同一主機(jī)中的虛擬化主機(jī)的單端口監(jiān)聽器(例如,端口 2179)。c.每個(gè)令牌含有期滿時(shí)間(例如,以秒計(jì))。中間監(jiān)聽服務(wù)還通過精減舊的通知來管理邊帶通知。14.然后虛擬化主機(jī)的單端口監(jiān)聽器基于授權(quán)存儲(chǔ)xml中的用戶角色策略來檢查云\企業(yè)T (使用CredSSP確定)是否具有對(duì)那個(gè)虛擬機(jī)的訪問權(quán)。15.如果成功,則企業(yè)用戶具有對(duì)那個(gè)虛擬機(jī)的控制臺(tái)訪問權(quán)。授權(quán)可在終端服務(wù)網(wǎng)關(guān)處或在目的地主機(jī)或兩者處執(zhí)行。然而,終端服務(wù)網(wǎng)關(guān)處的完全授權(quán)通常是不可能的。終端服務(wù)網(wǎng)關(guān)的定制資源授權(quán)插件需要對(duì)用于那個(gè)連接的預(yù)連接團(tuán)塊有訪問權(quán),且因此終端服務(wù)網(wǎng)關(guān)的定制資源授權(quán)插件不適于通過虛擬化主機(jī)的單端口監(jiān)聽器對(duì)客虛擬機(jī)的控制臺(tái)訪問。相應(yīng)地,在一實(shí)施例中,授權(quán)是在虛擬化主機(jī)處執(zhí)行的。因?yàn)椴荒茉谠铺峁┱叩幕顒?dòng)目錄中為企業(yè)的每個(gè)用戶創(chuàng)建影子賬戶,所以一個(gè)選項(xiàng)是在本地主機(jī)中為每個(gè)虛擬機(jī)創(chuàng)建本地賬戶。該本地賬戶會(huì)與企業(yè)最終用戶共享,且會(huì)只被授權(quán)為訪問虛擬機(jī)的控制臺(tái)會(huì)話。替代地,如果不期望管理多個(gè)本地用戶賬戶(這需要在主存者和企業(yè)虛擬機(jī)管理系統(tǒng)之間在帶外(out of band)管理),這會(huì)是云提供者的一個(gè)關(guān)注,那么可使用中間監(jiān)聽器方案。虛擬化系統(tǒng)主機(jī)中的中間監(jiān)聽器服務(wù)可以是獨(dú)立的服務(wù)(網(wǎng)絡(luò)服務(wù))或者是現(xiàn)有主機(jī)代理(本地系統(tǒng)賬戶)的一部分。為了保護(hù)從終端服務(wù)網(wǎng)關(guān)到該主機(jī)中的中間服務(wù)的邊帶通知,中間監(jiān)聽器可使用WMI提供者。如果惡意用戶改變了令牌ID,則該令牌上的簽名可被無效。簽署的令牌和預(yù)連接團(tuán)塊中的令牌ID必須相關(guān)。惡意用戶情形1 a.企業(yè)\用戶1被授權(quán)對(duì)虛擬機(jī)VMl的訪問。用戶的令牌ID是tl。b.企業(yè)中的惡意用戶不具有對(duì)那個(gè)虛擬機(jī)的訪問權(quán)。惡意用戶獲得用于某個(gè)其它虛擬機(jī)的令牌,但是隨后將預(yù)連接團(tuán)塊改變?yōu)橹赶蛱摂M機(jī)VMl并將預(yù)連接團(tuán)塊和cookie兩者中的令牌ID修改為tl并嘗試承載(piggy back)在應(yīng)早已由網(wǎng)關(guān)為企業(yè)\用戶1發(fā)送到虛擬化主機(jī)的邊帶授權(quán)通知上。c.緩和網(wǎng)關(guān)的認(rèn)證插件檢測(cè)到cookie中的簽名是無效的并舍棄該連接。惡意用戶情形2 a.企業(yè)\用戶1被授權(quán)對(duì)虛擬機(jī)VMl的訪問且該用戶的令牌ID是tl。b.企業(yè)中的惡意用戶不具有對(duì)那個(gè)虛擬機(jī)的訪問權(quán)。惡意用戶獲得用于某個(gè)其它虛擬機(jī)(比如說,具有令牌ID t2的虛擬機(jī)VM2)的令牌。惡意用戶將PCB改變?yōu)橹赶蛄钆艻D為tl的虛擬機(jī)VM1,但是將cookie中的令牌ID保持為t2。因?yàn)閻阂庥脩魶]有改變 cookie中的令牌,所以簽名仍然有效。網(wǎng)關(guān)向包含的主機(jī)發(fā)送令牌ID t2作為授權(quán)的令牌 ID。如果同一主機(jī)含有ID為虛擬機(jī)VMl的虛擬機(jī),且如果企業(yè)的另一用戶被授權(quán)給虛擬機(jī) VM1,那么該惡意用戶能承載在應(yīng)早已由網(wǎng)關(guān)為企業(yè)\用戶1發(fā)送到虛擬化主機(jī)的的邊帶授權(quán)通知上。c.緩和i.從遠(yuǎn)程呈現(xiàn)客戶端到承租人虛擬化管理器服務(wù)器的信道被加密,所以該用戶沒有辦法獲得為企業(yè)\用戶1授予的令牌ID tl。ii.預(yù)連接團(tuán)塊也可被承租人的私鑰簽署,從而云提供者可以用承租人的公鑰確認(rèn)該簽名。圖12描繪了允許第一域中主存的虛擬機(jī)和第二域中的客戶端計(jì)算機(jī)之間的遠(yuǎn)程呈現(xiàn)會(huì)話的示例性操作過程,包括操作1200、1202、1204和1206。參考圖12,操作1200開始該操作過程,而操作1202示出在第二域的服務(wù)器處建立與該客戶端計(jì)算機(jī)的通信會(huì)話。 在一個(gè)實(shí)施例中,第一域可以是云提供者或主存者,而第二域可以是企業(yè)。操作1204示出由該服務(wù)器接收指示該第一域中主存的虛擬機(jī)的虛擬機(jī)標(biāo)識(shí)符。操作1206示出從客戶端計(jì)算機(jī)接收包括簽署的令牌和公鑰的cookie。在一實(shí)施例中,cookie由該客戶端基于它從企業(yè)虛擬機(jī)管理系統(tǒng)接收的簽署的令牌來構(gòu)造。操作1208示出使用公鑰認(rèn)證該令牌并驗(yàn)證該令牌映射到第一域中的用戶賬戶。操作1210示出向第一域中的虛擬化系統(tǒng)發(fā)送該虛擬機(jī)標(biāo)識(shí)符。操作1212示出從第一域中的該虛擬化系統(tǒng)接收標(biāo)識(shí)的虛擬機(jī)是有效的的確認(rèn)和與標(biāo)識(shí)的虛擬機(jī)相關(guān)聯(lián)的目標(biāo)資源的身份。操作1214示出向該虛擬化系統(tǒng)中的中間監(jiān)聽服務(wù)發(fā)送該虛擬機(jī)標(biāo)識(shí)符和接收的令牌。操作1216示出將遠(yuǎn)程呈現(xiàn)會(huì)話數(shù)據(jù)轉(zhuǎn)發(fā)到中間監(jiān)聽器服務(wù)。圖13描繪了用于向如上所述的第二域中的客戶端計(jì)算機(jī)允許對(duì)第一域中主存的虛擬機(jī)的訪問的示例性系統(tǒng)。參考圖13,系統(tǒng)1300包括處理器1310和存儲(chǔ)器1320。存儲(chǔ)器1320進(jìn)一步包括被配置成向第二域中的客戶端計(jì)算機(jī)允許對(duì)第一域中主存的虛擬機(jī)的訪問的計(jì)算機(jī)指令???322示出接收第一虛擬機(jī)標(biāo)識(shí)符、用公鑰簽署的令牌、以及對(duì)與虛擬機(jī)標(biāo)識(shí)符相關(guān)聯(lián)的虛擬機(jī)主機(jī)的請(qǐng)求???3M示出實(shí)例化與客戶端計(jì)算機(jī)的遠(yuǎn)程呈現(xiàn)會(huì)話???3 示出經(jīng)由遠(yuǎn)程呈現(xiàn)會(huì)話接收目標(biāo)虛擬機(jī)標(biāo)識(shí)符并用第一虛擬機(jī)標(biāo)識(shí)符相關(guān)和授權(quán)目標(biāo)虛擬機(jī)標(biāo)識(shí)符???3 示出確定目標(biāo)和第一虛擬機(jī)標(biāo)識(shí)符匹配并將經(jīng)由遠(yuǎn)程呈現(xiàn)會(huì)話接收的數(shù)據(jù)轉(zhuǎn)發(fā)到目標(biāo)虛擬機(jī)。上文所提及的方面中的任何一個(gè)方面都可以以方法、系統(tǒng)、計(jì)算機(jī)可讀介質(zhì)或任何類型的產(chǎn)品來實(shí)現(xiàn)。例如,計(jì)算機(jī)可讀介質(zhì)上可存儲(chǔ)用于通過第二域中的客戶端計(jì)算機(jī)訪問第一域中主存的虛擬機(jī)的計(jì)算機(jī)可執(zhí)行指令。這種介質(zhì)可包括用于與第一域中的虛擬化主機(jī)建立通信會(huì)話的第一指令子集;用于向第一域中的虛擬化主機(jī)發(fā)送虛擬機(jī)標(biāo)識(shí)符和請(qǐng)求對(duì)標(biāo)識(shí)的虛擬機(jī)的訪問的授權(quán)的聲明的第二指令子集;用于從第二域中的虛擬化管理器接收簽署的令牌的第三指令子集;用于通過第一域中的虛擬化主機(jī)建立遠(yuǎn)程呈現(xiàn)會(huì)話以及發(fā)送基于cookie的授權(quán)將被執(zhí)行的指示的第四指令子集;用于向第一域中的虛擬化主機(jī)發(fā)送包括簽署的令牌和公鑰的cookie的第五指令子集;以及用于與請(qǐng)求的虛擬機(jī)建立遠(yuǎn)程呈現(xiàn)會(huì)話的第六指令子集。本領(lǐng)域技術(shù)人員可以理解,可以使用附加指令集來捕捉此處所公開的各其他方面,并且根據(jù)本發(fā)明,兩個(gè)目前所公開的指令子集可以在細(xì)節(jié)方面不同。上述詳細(xì)描述通過示例和/或操作圖闡明了系統(tǒng)和/或過程的各種實(shí)施例。就這些框圖和/或示例包含一個(gè)或多個(gè)功能和/或操作而言,本領(lǐng)域技術(shù)人員將理解,這些框圖或示例中的每一功能和/或操作都可由各種各樣的硬件、軟件、固件、或?qū)嶋H上其任意組合來單獨(dú)地和/或共同地實(shí)現(xiàn)。應(yīng)該理解,此處描述的各種技術(shù)可以結(jié)合硬件或軟件,或在適當(dāng)時(shí)結(jié)合兩者的組合來實(shí)現(xiàn)。因此,本公開的方法和裝置或其某些方面或部分,可以采用包含在諸如軟盤、 CD-ROM、硬盤驅(qū)動(dòng)器或任何其它機(jī)器可讀存儲(chǔ)介質(zhì)等有形介質(zhì)中的程序代碼(S卩,指令)的形式,其中,當(dāng)程序代碼被加載至諸如計(jì)算機(jī)等機(jī)器并由其運(yùn)行時(shí),該機(jī)器成為用于實(shí)現(xiàn)本公開的裝置。在程序代碼在可編程計(jì)算機(jī)上執(zhí)行的情況下,計(jì)算設(shè)備通常包括處理器、該處理器可讀的存儲(chǔ)介質(zhì)(包括易失性和非易失性存儲(chǔ)器和/或存儲(chǔ)元件)、至少一個(gè)輸入設(shè)備、以及至少一個(gè)輸出設(shè)備。一個(gè)或多個(gè)程序可以例如,通過使用API、可重用控件等來實(shí)現(xiàn)或利用結(jié)合本發(fā)明描述的過程。這樣的程序優(yōu)選地用高級(jí)過程語言或面向?qū)ο缶幊陶Z言來實(shí)現(xiàn),以與計(jì)算機(jī)系統(tǒng)通信。然而,如果需要,該程序可以用匯編語言或機(jī)器語言來實(shí)現(xiàn)。 在任何情形中,語言可以是編譯語言或解釋語言,且與硬件實(shí)現(xiàn)相結(jié)合。盡管具體地參考其優(yōu)選實(shí)施例來示出并描述了本發(fā)明,但本領(lǐng)域的技術(shù)人員可以理解,可以作出形式和細(xì)節(jié)上的各種改變而不脫離所附權(quán)利要求書中所述的本發(fā)明的范圍。此外,盡管本發(fā)明的各元素可以用單數(shù)來描述或要求保護(hù),但構(gòu)想了復(fù)數(shù),除非明確地
22規(guī)定了限于單數(shù)。
權(quán)利要求
1.一種用于允許第一域中主存的虛擬機(jī)和第二域中的客戶端計(jì)算機(jī)00)之間的遠(yuǎn)程呈現(xiàn)會(huì)話的方法,所述方法包括在所述第二域中的服務(wù)器處建立(120 與所述客戶端計(jì)算機(jī)的通信會(huì)話; 由所述服務(wù)器接收(1204)指示所述第一域中主存的所述虛擬機(jī)的虛擬機(jī)標(biāo)識(shí)符; 從所述第二域中的虛擬化管理器接收(1206)包括簽署的令牌和公鑰的cookie ; 使用所述公鑰認(rèn)證(1208)所述令牌并驗(yàn)證所述令牌映射到所述第一域中的用戶賬戶;向所述第一域中的虛擬化系統(tǒng)發(fā)送(1210)所述虛擬機(jī)標(biāo)識(shí)符; 從所述第一域中的所述虛擬化系統(tǒng)接收(121 所標(biāo)識(shí)的虛擬機(jī)是有效的的確認(rèn)和與所標(biāo)識(shí)的虛擬機(jī)相關(guān)聯(lián)的目標(biāo)資源的身份;向所述虛擬化系統(tǒng)中的中間監(jiān)聽服務(wù)發(fā)送(1214)所述虛擬機(jī)標(biāo)識(shí)符和所接收的令牌;以及將遠(yuǎn)程呈現(xiàn)會(huì)話數(shù)據(jù)轉(zhuǎn)發(fā)(1216)到所述中間監(jiān)聽器服務(wù)。
2.如權(quán)利要求1所述的方法,其特征在于,所述建立還包括通過HTTPS隧道建立與所述客戶端計(jì)算機(jī)的連接,其中所述HTTPS隧道指定目的地虛擬化服務(wù)器和所述中間監(jiān)聽服務(wù)的目的地端口。
3.如權(quán)利要求1所述的方法,其特征在于,還包括執(zhí)行主機(jī)層次的授權(quán)。
4.如權(quán)利要求1所述的方法,其特征在于,還包括通過在所述服務(wù)器上執(zhí)行的授權(quán)插件查詢所述虛擬化服務(wù)器,以基于所述令牌確定所述客戶端計(jì)算機(jī)是否被授權(quán)訪問所述虛擬機(jī)。
5.如權(quán)利要求1所述的方法,其特征在于,所述簽署的令牌包括承租人ID、令牌ID、令牌期滿時(shí)間以及授權(quán)的目標(biāo)虛擬機(jī)ID。
6.一種用于向第二域中的客戶端計(jì)算機(jī)允許對(duì)第一域中主存的虛擬機(jī)的訪問的系統(tǒng) (1300),包括包括至少一個(gè)處理器(1310)的計(jì)算設(shè)備;在所述系統(tǒng)操作時(shí)通信地耦合到所述處理器的存儲(chǔ)器(1320);所述存儲(chǔ)器具有存儲(chǔ)于其中的計(jì)算機(jī)指令,所述計(jì)算機(jī)指令在由所述至少一個(gè)處理器執(zhí)行時(shí)致使接收(132 第一虛擬機(jī)標(biāo)識(shí)符、用公鑰簽署的令牌、以及對(duì)與所述虛擬機(jī)標(biāo)識(shí)符相關(guān)聯(lián)的虛擬機(jī)主機(jī)的請(qǐng)求;實(shí)例化(1324)與所述客戶端計(jì)算機(jī)的遠(yuǎn)程呈現(xiàn)會(huì)話;經(jīng)由所述遠(yuǎn)程呈現(xiàn)會(huì)話接收(1326)目標(biāo)虛擬機(jī)標(biāo)識(shí)符并用所述第一虛擬機(jī)標(biāo)識(shí)符相關(guān)和授權(quán)所述目標(biāo)虛擬機(jī)標(biāo)識(shí)符;以及確定(1328)所述目標(biāo)和第一虛擬機(jī)標(biāo)識(shí)符匹配并將經(jīng)由所述遠(yuǎn)程呈現(xiàn)會(huì)話接收的數(shù)據(jù)轉(zhuǎn)發(fā)到所述目標(biāo)虛擬機(jī)。
7.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述轉(zhuǎn)發(fā)包括在所述第一域中的單端口監(jiān)聽器處經(jīng)由所述遠(yuǎn)程呈現(xiàn)會(huì)話轉(zhuǎn)發(fā)所述數(shù)據(jù)。
8.如權(quán)利要求6所述的系統(tǒng),其特征在于,所述相關(guān)和授權(quán)還包括基于授權(quán)存儲(chǔ)XML中的用戶角色策略確定所述第一虛擬機(jī)是否具有對(duì)所述目標(biāo)虛擬機(jī)的訪問權(quán)。
9.如權(quán)利要求8所述的系統(tǒng),其特征在于,所述確定是使用CredSSP執(zhí)行的。
10. 一種其上存儲(chǔ)用于由第二域中的客戶端計(jì)算機(jī)訪問第一域中主存的虛擬機(jī)的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述指令用于 與所述第一域中的虛擬化主機(jī)建立通信會(huì)話;向所述第一域中的虛擬化主機(jī)發(fā)送虛擬機(jī)標(biāo)識(shí)符和請(qǐng)求對(duì)所標(biāo)識(shí)的虛擬機(jī)的訪問的授權(quán)的聲明;從所述第二域中的虛擬化管理器接收簽署的令牌;通過所述第一域中的所述虛擬化主機(jī)建立遠(yuǎn)程呈現(xiàn)會(huì)話并發(fā)送基于cookie的授權(quán)將被執(zhí)行的指示;向所述第一域中的所述虛擬化主機(jī)發(fā)送包括簽署的令牌和公鑰的cookie ;以及建立與所請(qǐng)求的虛擬機(jī)的遠(yuǎn)程呈現(xiàn)會(huì)話。
全文摘要
本發(fā)明涉及企業(yè)用戶對(duì)主存的虛擬機(jī)的遠(yuǎn)程訪問。使企業(yè)的最終用戶能夠通過云提供者的虛擬化主機(jī)和遠(yuǎn)程呈現(xiàn)網(wǎng)關(guān)接收對(duì)公共云中的虛擬機(jī)的安全遠(yuǎn)程呈現(xiàn)訪問。企業(yè)管理員可從云提供者購買計(jì)算容量并將該計(jì)算容量在企業(yè)最終用戶間細(xì)分。云提供者不需要為每個(gè)最終用戶創(chuàng)建影子賬戶。云提供者AD和企業(yè)AD不需要彼此信任。云提供者也不需要將主機(jī)信息暴露給承租人。使用終端服務(wù)網(wǎng)關(guān)處的定制授權(quán)插件和虛擬化主機(jī)處的間接監(jiān)聽器組件的組合,可提供授權(quán)。當(dāng)客戶端連接于遠(yuǎn)程呈現(xiàn)網(wǎng)關(guān)時(shí)主機(jī)細(xì)節(jié)可以被抽象,以保護(hù)結(jié)構(gòu)免受攻擊并使承租人虛擬機(jī)能夠跨云提供者的虛擬化主機(jī)自由移動(dòng)。
文檔編號(hào)H04L29/08GK102420846SQ20111032903
公開日2012年4月18日 申請(qǐng)日期2011年10月14日 優(yōu)先權(quán)日2010年10月15日
發(fā)明者A·拉瑪拉鐵納姆, M·邁克爾, S·帕薩沙拉西 申請(qǐng)人:微軟公司