專(zhuān)利名稱(chēng):分布式服務(wù)授權(quán)管理的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及服務(wù)管理,尤其涉及分布式服務(wù)授權(quán)管理。
背景技術(shù):
分布式的基于web的服務(wù)通常被稱(chēng)為云服務(wù),并且它們按需提供共享的資源服務(wù)、軟件和信息。這些云服務(wù)通常分布在多個(gè)服務(wù)器、服務(wù)器群集和/和包括群集的數(shù)據(jù)中心中。用戶(hù)通過(guò)訪問(wèn)因特網(wǎng)并向特定的服務(wù)認(rèn)證自身來(lái)訪問(wèn)云服務(wù)。云服務(wù)通常需要伸縮到幾十萬(wàn)用戶(hù)和上百萬(wàn)個(gè)資源,這些用戶(hù)通常被分成能夠允許有效地訪問(wèn)(例如數(shù)據(jù)中心和/或簇中的)這些資源的標(biāo)度單位。對(duì)于大多數(shù)云服務(wù),開(kāi)發(fā)出使用遍布在安裝在多個(gè)數(shù)據(jù)中心中的多個(gè)分區(qū)的數(shù)據(jù)庫(kù)上的資源的方法。已為用戶(hù)開(kāi)發(fā)出定位資源的有效的算法和解決方案。當(dāng)用戶(hù)希望使用云服務(wù)時(shí),它們通常諸如通過(guò)使用共享的密鑰(例如用戶(hù)名和口令的組合或密碼密鑰等) 來(lái)向服務(wù)認(rèn)證。此外,通常授權(quán)用戶(hù)使用特定的服務(wù)特定的時(shí)間量,并且服務(wù)可訪問(wèn)授權(quán)信息以標(biāo)識(shí)用戶(hù)是否可使用感興趣的資源。
發(fā)明內(nèi)容
提供本發(fā)明內(nèi)容以便以簡(jiǎn)化形式介紹將在以下具體實(shí)施方式
中進(jìn)一步描述的一些概念。本發(fā)明內(nèi)容并不旨在標(biāo)識(shí)出所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在用于限定所要求保護(hù)的主題的范圍。有許多用于向諸如基于云的服務(wù)(例如基于web的應(yīng)用程序、數(shù)據(jù)庫(kù)等)的分布式服務(wù)認(rèn)證(例如用戶(hù)認(rèn)證)和授權(quán)事務(wù)的技術(shù)。某些要求用于密碼操作或數(shù)據(jù)庫(kù)輸入/ 輸出操作的大量的計(jì)算開(kāi)銷(xiāo)以確定訪問(wèn)權(quán)限,或者要求大量的帶寬或客戶(hù)機(jī)資源以維護(hù)和傳輸狀態(tài)(例如,經(jīng)簽署的令牌、cookies等)。對(duì)于某些系統(tǒng),改變?cè)L問(wèn)權(quán)限可能不是即時(shí)的,因?yàn)橄到y(tǒng)兌現(xiàn)訪問(wèn)令牌直至它們期滿(mǎn),有時(shí)是幾小時(shí)之后。密鑰管理是困難的,因?yàn)橛糜诖鎯?chǔ)、管理和解密這些類(lèi)型的密鑰的資源會(huì)是大量的。對(duì)于基于經(jīng)簽署的令牌的系統(tǒng),分布式服務(wù)的整體安全性可取決于保護(hù)私鑰,因?yàn)槿绻借€被盜用,則服務(wù)可能被泄漏。大多數(shù)基于云的服務(wù)是無(wú)狀態(tài)的,并且使用經(jīng)密碼簽署的令牌來(lái)進(jìn)行認(rèn)證和授權(quán)。這種方式允許控制對(duì)資源的訪問(wèn)的前端機(jī)器(例如web服務(wù)器、應(yīng)用程序服務(wù)器)是無(wú)狀態(tài)的。然而,這種方法有許多缺點(diǎn),諸如將管理授權(quán)令牌(cookie)的復(fù)雜負(fù)擔(dān)放置在執(zhí)行API請(qǐng)求的客戶(hù)機(jī)上;誤編碼(或誤行為)的客戶(hù)機(jī)可能通過(guò)有意地(或無(wú)意地)在 API請(qǐng)求上傳遞無(wú)效的令牌而使用大量的前端CPU資源;前端機(jī)器在允許訪問(wèn)之前必須確認(rèn)經(jīng)簽署的令牌,這消耗大量的CPU開(kāi)銷(xiāo)來(lái)執(zhí)行密碼操作,影響的服務(wù)的可伸縮性以及單個(gè)前端機(jī)器可管理的資源的量;驗(yàn)證經(jīng)簽署的授權(quán)令牌的前端機(jī)器必須共享用于保護(hù)和確認(rèn)這些令牌的密鑰,這是必須安全完成的困難的管理任務(wù);且令牌可能是較大的,由此造成帶寬問(wèn)題,并且可能有效較長(zhǎng)的時(shí)間段,造成難以撤消授權(quán)。有些云服務(wù)使用所標(biāo)識(shí)的隨機(jī)會(huì)話(會(huì)話ID)來(lái)訪問(wèn)它們的服務(wù)。在這些服務(wù)中,用戶(hù)通過(guò)某些挑戰(zhàn)來(lái)向服務(wù)認(rèn)證,但是接著收到發(fā)布的在后續(xù)請(qǐng)求中使用的會(huì)話ID。然而, 這種類(lèi)別的云服務(wù)僅管理單個(gè)資源(例如用戶(hù)的收件箱)或位于同處的資源(例如用戶(hù)的辦公室文檔)。此外,它們無(wú)法處理分布在許多位置上的多個(gè)不同的資源(每個(gè)具有額外的授權(quán)要求)。因此,公開(kāi)了提供對(duì)先前基于會(huì)話ID的授權(quán)的變化的一種或多種技術(shù)和/或系統(tǒng),其中使用位置感知、多級(jí)內(nèi)存儲(chǔ)來(lái)將認(rèn)證和授權(quán)數(shù)據(jù)高速緩存在多部分文檔中。例如, 可以在分布式服務(wù)使用的任一數(shù)據(jù)中心、群集或機(jī)器處快速檢索和高速緩存授權(quán)文檔。可以將文檔分成包含用于特定的分布式服務(wù)資源(例如基于web的應(yīng)用程序和服務(wù))的授權(quán)數(shù)據(jù)的各部分。此外,可隨著訪問(wèn)資源按需地添加或移除文檔部分。在向分布式存儲(chǔ)的用戶(hù)提供資源授權(quán)的一個(gè)實(shí)施例中,使用會(huì)話ID來(lái)訪問(wèn)存儲(chǔ)在分布式存儲(chǔ)中的授權(quán)文檔,該會(huì)話ID可在用戶(hù)認(rèn)證時(shí)提供給用戶(hù)機(jī)器(例如隨機(jī)分配的會(huì)話密鑰)。會(huì)話ID標(biāo)識(shí)用于授權(quán)文檔的位置,該文檔包括具有與用戶(hù)相關(guān)聯(lián)的主ID的全局部分。如果授權(quán)文檔有與主ID相關(guān)聯(lián)的帶有關(guān)于資源的授權(quán)數(shù)據(jù)的資源部分,則向用戶(hù)授權(quán)分布式服務(wù)的資源(例如云資源)。在該實(shí)施例中,如果授權(quán)文檔沒(méi)有對(duì)應(yīng)于資源的資源部分,則創(chuàng)建局部資源部分 (例如在本地應(yīng)用服務(wù)器或群集的高速緩存中),并且該局部資源部分由資源標(biāo)識(shí)符標(biāo)識(shí)。 資源授權(quán)數(shù)據(jù)諸如從(例如后端服務(wù)器上的)備份存儲(chǔ)加載到局部資源部分中,且?guī)в行聞?chuàng)建的資源部分的授權(quán)文檔被保存到用于資源的分布式存儲(chǔ)的本地高速緩存中。為實(shí)現(xiàn)上述及相關(guān)目的,下面的描述和附圖描繪某些說(shuō)明性方面和實(shí)現(xiàn)。這些方面僅指示了可以實(shí)現(xiàn)一個(gè)或多個(gè)方面的各種方式中的一些方式。結(jié)合附圖閱讀下面的詳細(xì)描述,則本發(fā)明的其他方面、優(yōu)點(diǎn)和新穎特征將變得清楚。
圖1是向分布式存儲(chǔ)的用戶(hù)提供資源授權(quán)的示例性方法的流程圖。圖2是示出包括授權(quán)文檔的分布式存儲(chǔ)的示例性實(shí)施例的圖示。圖3是授權(quán)文檔的細(xì)節(jié)的示例性實(shí)施例。圖4是其中示出用于生成會(huì)話ID和授權(quán)文檔的方法的一個(gè)或多個(gè)部分的一個(gè)實(shí)施例的圖示。圖5是其中可使用會(huì)話ID來(lái)為用戶(hù)授權(quán)資源的方法的一個(gè)或多個(gè)部分的示例性實(shí)施例的流程圖。圖6是向分布式存儲(chǔ)的用戶(hù)提供資源授權(quán)的示例性系統(tǒng)的組件框圖。圖7是示出其中可實(shí)現(xiàn)此處所描述的一個(gè)或多個(gè)系統(tǒng)的一個(gè)實(shí)施例的組件框圖。圖8是包括被配置成體現(xiàn)此處所述的配置中的一個(gè)或多個(gè)的處理器可執(zhí)行指令的示例性計(jì)算機(jī)可讀介質(zhì)的圖示。圖9示出了其中可實(shí)現(xiàn)此處所述的配置中的一個(gè)或多個(gè)的示例性計(jì)算環(huán)境。
具體實(shí)施例方式現(xiàn)在參考附圖描述所要求保護(hù)的主題,所有附圖中使用相同的附圖標(biāo)記來(lái)指代相同的元素。在以下描述中,為解釋起見(jiàn),闡明了眾多具體細(xì)節(jié)以提供對(duì)所要求保護(hù)的主題的全面理解。然而,很明顯,所要求保護(hù)的主題可以在沒(méi)有這些具體細(xì)節(jié)的情況下實(shí)施。在其它情況下,以框圖形式示出了結(jié)構(gòu)和設(shè)備以便于描述所要求保護(hù)的主題。圖1是向分布式存儲(chǔ)的用戶(hù)提供資源授權(quán)的示例性方法100的流程圖。示例性方法100在102處開(kāi)始并且在104處涉及訪問(wèn)包括包括與用戶(hù)相關(guān)聯(lián)的主ID的全局部分。授權(quán)文檔存儲(chǔ)在分布式存儲(chǔ)中并且由標(biāo)識(shí)授權(quán)文檔的位置的會(huì)話ID訪問(wèn)??梢岳斫馊绱颂幩峁┑男g(shù)語(yǔ)“用戶(hù)” 一般指最終用戶(hù),但不限于人類(lèi),因?yàn)樽罱K用戶(hù)也可以包括機(jī)器或設(shè)備。例如,最終用戶(hù)可包括(例如經(jīng)由名稱(chēng)和口令認(rèn)證的)人和/或(;例如經(jīng)由X. 509證書(shū)和公鑰簽名認(rèn)證的)設(shè)備。此外,用戶(hù)(例如,最終用戶(hù))諸如通過(guò)從事在線銀行業(yè)務(wù)、 股票服務(wù)、文件同步服務(wù)、在線零售和/或利用分布式存儲(chǔ)的其他基于web的服務(wù)/資源間接的使用分布式存儲(chǔ)。由此,在此處可提供將資源授權(quán)提供給分布式存儲(chǔ)的用戶(hù)的指示的情況下,一般不將該授權(quán)提供給實(shí)際利用分布式存儲(chǔ)來(lái)向最終用戶(hù)提供基于web的服務(wù)/ 資源的一個(gè)或多個(gè)實(shí)體,而是相反地在最終用戶(hù)試圖訪問(wèn)一個(gè)或多個(gè)(在線)服務(wù)/資源 (由于分布式存儲(chǔ)的存在或使用而變得可能)的上下文中屬于該用戶(hù)。作為示例,分布式存儲(chǔ)可以包括用于設(shè)置在分布式存儲(chǔ)位置上提供統(tǒng)一的全局高速緩存的一種或多種技術(shù)和/或組件。作為一個(gè)示例,web農(nóng)場(chǎng)通常包括多個(gè)服務(wù)器,其中的一些服務(wù)器被用作web或應(yīng)用程序服務(wù)器(例如用于與用戶(hù)交互的前端服務(wù)器),而其他服務(wù)器被用作數(shù)據(jù)庫(kù)服務(wù)器(例如用于存儲(chǔ)數(shù)據(jù)的后端服務(wù)器)。在一個(gè)實(shí)施例中,可以在例如其上安裝網(wǎng)格服務(wù)的前端服務(wù)器上設(shè)置分布式數(shù)據(jù)網(wǎng)格。例如當(dāng)網(wǎng)格中的這些服務(wù)器的存儲(chǔ)器的全局試圖包括統(tǒng)一的存儲(chǔ)器時(shí),網(wǎng)格服務(wù)允許相應(yīng)的服務(wù)器在分布式數(shù)據(jù)網(wǎng)格中協(xié)同工作。這樣,在該示例中,可提供分布式存儲(chǔ),其中物理存儲(chǔ)器可以是不同的(例如在不同的機(jī)器上),但是擔(dān)當(dāng)統(tǒng)一的存儲(chǔ)。在一個(gè)實(shí)施例中,可以將分布式存儲(chǔ)(例如可以是分布式字典或分布式散列表) 組織成具有共享的庫(kù)內(nèi)存儲(chǔ)器的多個(gè)級(jí)別。作為一個(gè)示例,云服務(wù)(例如在云計(jì)算環(huán)境中運(yùn)行的服務(wù))可以在前端機(jī)器、機(jī)器群集和/或包括機(jī)器群集的數(shù)據(jù)中心之間共享。由此, 在一個(gè)實(shí)施例中,用于云服務(wù)的分布式存儲(chǔ)例如可以包括本地高速緩存(例如對(duì)前端機(jī)器而言是本地的)、群集主高速緩存(例如分布在包括群集的多個(gè)前端機(jī)器上)和/或數(shù)據(jù)中心主高速緩存(例如分布在多個(gè)群集上)。此外,在一個(gè)實(shí)施例中,授權(quán)文檔可以包括位置感知的、多級(jí)別的、高速緩存的存儲(chǔ)文檔,該文檔包括與特定的資源(例如諸如電子郵件的云資源)相關(guān)聯(lián)的授權(quán)數(shù)據(jù)的個(gè)別部分。在該實(shí)施例中,可以將授權(quán)文檔高速緩存在各自的位置(例如數(shù)據(jù)中心)處,而可以將文檔部分僅高速緩存在相關(guān)的群集或機(jī)器處(例如分割相關(guān)聯(lián)的資源處)。授權(quán)文檔包括子在所有分布式存儲(chǔ)中全局相同的全局部分,其中其他文檔部分對(duì)于資源可以是本地的。在該實(shí)施例中,使用標(biāo)識(shí)授權(quán)文檔的位置的會(huì)話ID來(lái)訪問(wèn)授權(quán)文檔。在一個(gè)實(shí)施例中,會(huì)話ID僅是標(biāo)識(shí)使用云服務(wù)例如期望的時(shí)間段的用戶(hù)(例如人或機(jī)器的少量數(shù)據(jù)。 當(dāng)用戶(hù)被認(rèn)證(例如使用用戶(hù)名和口令登陸)并且被連接到(例如通過(guò)索引)包括僅鏈接到用戶(hù)的主ID的會(huì)話文檔(僅該用戶(hù)與主ID相關(guān)聯(lián),且由此與授權(quán)文檔相關(guān)聯(lián))時(shí),可隨機(jī)生成會(huì)話ID。在該實(shí)施例中,主ID是僅鏈接到授權(quán)文檔的標(biāo)識(shí),例如由此標(biāo)識(shí)了文檔的位置。
圖2是示出包括授權(quán)文檔的分布式存儲(chǔ)的示例性實(shí)施例200的圖示。在該實(shí)施例 200中,相應(yīng)的群集214A-214C由例如諸如可由基于web的云服務(wù)的用戶(hù)通過(guò)公共的應(yīng)用程序編程接口 218(API)訪問(wèn)的機(jī)器220(例如前端服務(wù)器)組成。此外,群集214A和214B可包括在一個(gè)數(shù)據(jù)中心中-數(shù)據(jù)中心位置A 212A,而群集214C可包括在另一數(shù)據(jù)中心中-數(shù)據(jù)位置B 212B ;示出了與分布式存儲(chǔ)相關(guān)聯(lián)的系統(tǒng)的可能不同的性質(zhì)。此外,在圖2中,授權(quán)文檔222被存儲(chǔ)在若干個(gè)位置上,群集A. 1 214A的分布式存儲(chǔ)位置216A中、群集A.2 214B的分布式存儲(chǔ)位置216B中以及群集A.2 214C的分布式存儲(chǔ)位置216C中。在該示例200中,授權(quán)文檔222包括全局部分206,該全局部分包括為文檔標(biāo)識(shí)用戶(hù)的主ID、全局認(rèn)證數(shù)據(jù)以及其他全局?jǐn)?shù)據(jù)。同樣地,授權(quán)文檔222包括用于相應(yīng)的位置216A-216C的資源部分208A-208C。在示例性實(shí)施例200中,會(huì)話ID 202與主ID 204相關(guān)聯(lián),該主ID為用戶(hù)標(biāo)識(shí)授權(quán)文檔222。會(huì)話ID 202可索引存儲(chǔ)在分布式存儲(chǔ)216中的會(huì)話文檔224,且會(huì)話文檔224 可包括例如關(guān)于多個(gè)用戶(hù)的授權(quán)文檔的主ID 204。這樣,在一個(gè)實(shí)施例中,希望使用遠(yuǎn)程服務(wù)(例如基于云的服務(wù))的用戶(hù)(例如人或機(jī)器)僅可以認(rèn)證并接收會(huì)話ID 202,接著使用該會(huì)話ID來(lái)定位主ID 204,主ID 204進(jìn)而提供對(duì)授權(quán)文檔222的訪問(wèn)。返回到圖1,在106處,如果在授權(quán)文檔中存在對(duì)應(yīng)于主ID的包括資源授權(quán)數(shù)據(jù)的資源部分,則就將資源授權(quán)給用戶(hù)。如上所述,授權(quán)文檔可包括全局部分(例如圖2的206) 和資源部分(例如圖2的208A-208C)。全局部分包括與用戶(hù)相關(guān)的主ID (例如將用戶(hù)關(guān)聯(lián)于授權(quán)文檔),而資源部分提供標(biāo)識(shí)授權(quán)用戶(hù)訪問(wèn)的資源的授權(quán)數(shù)據(jù)。如圖2中所示,高速緩存在群集A. 1 214A的分布式存儲(chǔ)216A處的授權(quán)文檔222包括資源部分208A。在該示例200中,群集A. 1 214A包括資源Rl和R2 210A,諸如基于web 的用戶(hù)訪問(wèn)的基于云的服務(wù)(例如電子郵件、在線文檔存儲(chǔ)等)。此外,在該示例中,授權(quán)文檔222的資源部分208A包括提供對(duì)資源210A Rl和R2的訪問(wèn)的資源授權(quán)數(shù)據(jù)。由此,在該實(shí)施例中,如果在授權(quán)文檔222的資源部分中存在由主ID標(biāo)識(shí)的關(guān)于用戶(hù)的資源數(shù)據(jù), 則可授權(quán)用戶(hù)使用該資源(例如210A)。返回到圖1,在108處,如果在授權(quán)文檔中不存在對(duì)應(yīng)于資源的資源部分,則可以在110處為資源標(biāo)識(shí)符標(biāo)識(shí)的資源在授權(quán)文檔中創(chuàng)建局部資源部分。如上所述,可例如在分布式存儲(chǔ)中以分布式的方式高速緩存授權(quán)文檔,這樣使得對(duì)應(yīng)于相應(yīng)資源的資源部分被本地地存儲(chǔ)(例如在本地服務(wù)器或群集中,其中資源駐留在系統(tǒng)中),而全局部分被高速緩存在另一位置中。在該實(shí)施例中,可以在分布式存儲(chǔ)中本地地(對(duì)資源本地的)為資源創(chuàng)建由主ID 關(guān)于用戶(hù)標(biāo)識(shí)的授權(quán)文檔的新的資源部分。在112處,資源授權(quán)數(shù)據(jù)被加載到對(duì)應(yīng)于資源的局部資源部分。在一個(gè)實(shí)施例中,可以將授權(quán)數(shù)據(jù)存儲(chǔ)在與分布式存儲(chǔ)相關(guān)聯(lián)的備份存儲(chǔ)中(例如備份存儲(chǔ)可包括與遠(yuǎn)程服務(wù)耦合的后端服務(wù)器)。在該實(shí)施例中,可以將關(guān)于 (例如用戶(hù)試圖訪問(wèn)的)資源的適當(dāng)?shù)氖跈?quán)數(shù)據(jù)從備份存儲(chǔ)加載到授權(quán)文檔的新創(chuàng)建的資源部分中。圖3是授權(quán)文檔302的細(xì)節(jié)的示例性實(shí)施例300。授權(quán)文檔302包括全局部分304 和兩個(gè)資源部分310和312。在該示例300中,關(guān)于本地機(jī)器312的資源部分包括資源授權(quán)數(shù)據(jù)。資源授權(quán)數(shù)據(jù)包括例如資源標(biāo)識(shí)密鑰314C,它可以是標(biāo)識(shí)該資源(例如群集或機(jī)器)的唯一的密鑰。資源授權(quán)數(shù)據(jù)還包括標(biāo)識(shí)授權(quán)數(shù)據(jù)何時(shí)期滿(mǎn)(例如用戶(hù)不再有權(quán)訪問(wèn)資源除非重新認(rèn)證和重新授權(quán))的期滿(mǎn)時(shí)間316C。版本數(shù)據(jù)318B、318C標(biāo)識(shí)數(shù)據(jù)的版本, 而設(shè)置320B、320C標(biāo)識(shí)由授權(quán)數(shù)據(jù)覆蓋的服務(wù)的部分(例如群集或機(jī)器)。在圖1的示例性方法100的114處,包括全局部分和由資源標(biāo)識(shí)符指示的局部資源部分的授權(quán)文檔被本地地保存(例如高速緩存)在用于資源的分布式存儲(chǔ)中。例如,如上所述,如果用戶(hù)試圖訪問(wèn)的資源位于特定的群集或群集中的機(jī)器上,則可將授權(quán)文檔中包括為該資源新創(chuàng)建的資源部分的本地地存儲(chǔ)在分布式存儲(chǔ)中,諸如機(jī)器或群集的內(nèi)存儲(chǔ)器中。在將授權(quán)文檔本地地保存在分布式存儲(chǔ)中之后,示例性方法100在116處結(jié)束。圖4是其中示出用于生成會(huì)話ID和授權(quán)文檔的方法的一個(gè)或多個(gè)部分的一個(gè)實(shí)施例400的圖示。在402處,用戶(hù)450向諸如基于云的服務(wù)的分布式服務(wù)認(rèn)證。作為示例, 用戶(hù)的認(rèn)證通常包括將用戶(hù)名和口令(例如共享的密鑰)輸入到系統(tǒng)中,以進(jìn)行認(rèn)證??梢岳斫猓颂幩龅?不僅是關(guān)于圖4所述的)技術(shù)和/或系統(tǒng)不限于任何特定的認(rèn)證。例如,可使用認(rèn)證設(shè)備(例如電子密鑰),加密密鑰、公-私密鑰對(duì)或任何其他可用的認(rèn)證技術(shù)或系統(tǒng)。此外,可以理解屬于“用戶(hù)”不限于任何特定的實(shí)施例。例如,用戶(hù)可以是通過(guò)客戶(hù)機(jī)(例如個(gè)人計(jì)算機(jī))或(例如經(jīng)由X. 509證書(shū)和公鑰簽名認(rèn)證的)設(shè)備與分布式系統(tǒng)交互的個(gè)人。在該實(shí)施例400中,用戶(hù)450使用計(jì)算機(jī)452來(lái)向分布式服務(wù)妨4認(rèn)證(在402 處)。在驗(yàn)證時(shí),在404處,為用戶(hù)450創(chuàng)建授權(quán)文檔456。如上所述,授權(quán)文檔456包括全局部分,該全局部分包括關(guān)于分布式服務(wù)妨4與用戶(hù)450相關(guān)聯(lián)的主ID。此外,全局部分可以包括用戶(hù)相關(guān)信息。作為示例,如圖3中所示,全局部分304的用戶(hù)相關(guān)信息部分308可以包括有關(guān)用戶(hù)的信息。例如,用戶(hù)相關(guān)信息可以包括名和姓、電子郵件地址以及關(guān)于分布式服務(wù)的內(nèi)部標(biāo)識(shí)號(hào)。在一個(gè)實(shí)施例中,在創(chuàng)建授權(quán)文檔時(shí)創(chuàng)建全局部分,這樣使得它可以被傳播以請(qǐng)求分布式存儲(chǔ)的存儲(chǔ)器組件。換而言之,例如,如圖3中所示,全局部分304可包括全局授權(quán)數(shù)據(jù)306,諸如主ID 314A、期滿(mǎn)316A、版本318A和類(lèi)型320A,該全局授權(quán)數(shù)據(jù)306可以在整個(gè)包括分布式存儲(chǔ)的系統(tǒng)上全局地傳播和相關(guān)。在創(chuàng)建時(shí),可以將授權(quán)文檔存儲(chǔ)在用于分布式服務(wù)的分布式存儲(chǔ)中。在圖4中的406處,也可以在認(rèn)證時(shí)創(chuàng)建按照會(huì)話ID 460在分布式存儲(chǔ)的存儲(chǔ)器中索引的會(huì)話文檔458。作為示例,會(huì)話文檔可包括關(guān)于用戶(hù)用于分布式服務(wù)的主ID,其中主ID是按照會(huì)話ID索引的。這樣,例如,當(dāng)用戶(hù)向分布式服務(wù)妨4認(rèn)證時(shí),可以為用戶(hù)創(chuàng)建會(huì)話文檔458,這樣使得會(huì)話文檔包括用于服務(wù)的用戶(hù)的主ID,且會(huì)話ID索引會(huì)話文檔中的主ID。由此,在該實(shí)施例中,可能僅需要用隨機(jī)生成的會(huì)話ID來(lái)訪問(wèn)分布式服務(wù),因?yàn)榭梢允褂脮?huì)話ID從會(huì)話文檔中檢索主ID。在408處,可以將會(huì)話ID 460返回給用戶(hù)的機(jī)器452。這樣,作為示例,在會(huì)話ID的生命設(shè)置期間(例如通常由期滿(mǎn)設(shè)置限于使用二十四小時(shí)),用戶(hù)的機(jī)器可將會(huì)話ID用于對(duì)分布式服務(wù)454中的服務(wù)的后續(xù)請(qǐng)求。圖5是其中可使用會(huì)話ID來(lái)為用戶(hù)授權(quán)資源的方法的一個(gè)或多個(gè)部分的示例性實(shí)施例500的流程圖。在該實(shí)施例500中,可以將使用分布式服務(wù)的請(qǐng)求從用戶(hù)的機(jī)器452
8發(fā)送到分布式服務(wù)454,其中請(qǐng)求包括會(huì)話ID 460,且資源可以位于云和/或群集中。作為示例,在會(huì)話ID的有效生命期間(例如在其過(guò)期時(shí)間之前),可以將會(huì)話ID與訪問(wèn)諸如基于云的服務(wù)的分布式服務(wù)的任何請(qǐng)求一起轉(zhuǎn)發(fā)。在502處,訪問(wèn)會(huì)話文檔。作為示例,可以將會(huì)話ID 460用作到分布式內(nèi)存儲(chǔ)中的密鑰以獲取會(huì)話文檔。在504處,如果會(huì)話文檔不是本地地高速緩存的(例如在用戶(hù)的機(jī)器訪問(wèn)的前端機(jī)器中),則分布式存儲(chǔ)可查看包括本地機(jī)器的群集的主高速緩存(在504 處為NO)。在506處,如果會(huì)話文檔不是高速緩存在群集主高速緩存中的,則分布式存儲(chǔ)可以查看包括群集的數(shù)據(jù)中心中的主高速緩存(在506處為NO)。在508處,如果會(huì)話文檔不是高速緩存在數(shù)據(jù)中心中的(在508處為NO),則就在510處作為未經(jīng)授權(quán)地來(lái)拒絕請(qǐng)求?;蛘撸绻诜植际酱鎯?chǔ)中找到會(huì)話文檔(在504、506或508處為YEQ,則就使用會(huì)話ID來(lái)標(biāo)識(shí)主ID,并由此在512處將會(huì)話ID用于標(biāo)識(shí)授權(quán)文檔的位置。在一個(gè)實(shí)施例中,會(huì)話文檔可僅包括重定向會(huì)話ID的重定向點(diǎn),該重定向點(diǎn)是指向會(huì)話文檔、指向主ID 的指針,主ID指向授權(quán)文檔。在514處,可以諸如通過(guò)使用主ID來(lái)訪問(wèn)授權(quán)文檔。在一個(gè)實(shí)施例中,如果授權(quán)文檔是本地存儲(chǔ)的,則從用戶(hù)處接收授權(quán)請(qǐng)求的機(jī)器(例如服務(wù)器)例如可僅要求訪問(wèn)授權(quán)文檔。否則,在該實(shí)施例中,如果授權(quán)文檔不是對(duì)于資源而言本地高速緩存的,則機(jī)器可請(qǐng)求將包括全局部分的授權(quán)文檔本地地傳播給分布式存儲(chǔ)中的資源。在516處,如果授權(quán)文檔不是本地高速緩存的(在516處為NO),則分布式存儲(chǔ)可以查看用于包括本地機(jī)器的群集的主高速緩存。在518處,如果授權(quán)文檔不是高速緩存在包括本地機(jī)器的群集中的(在518處為NO),則分布式存儲(chǔ)可以查看數(shù)據(jù)中心的主高速緩存。如果授權(quán)文檔不是高速緩存在數(shù)據(jù)中心中的(520處為N0),則就在510處作為未經(jīng)授權(quán)地來(lái)拒絕請(qǐng)求?;蛘?,如果在分布式存儲(chǔ)中找到了會(huì)話文檔(在504、506或508處為YES),則就可以進(jìn)行例如將資源授權(quán)給用戶(hù)。如果在授權(quán)訪問(wèn)資源之前,授權(quán)檢查可能需要或可能不需要更多的信息。例如,在5M處,諸如當(dāng)授權(quán)文檔僅鏈接到一個(gè)資源以獲取分布式服務(wù)時(shí), 僅提供主ID以訪問(wèn)授權(quán)文檔(在522處為N0)可能足以訪問(wèn)該資源。然而,如果授權(quán)文檔包括關(guān)于多于一個(gè)資源(例如圖3的310、312)的資源部分,則可能需要更多的信息以將該資源授權(quán)給用戶(hù)(在522處為YES)。在5 處,可使用資源ID來(lái)訪問(wèn)授權(quán)文檔的資源部分以獲取所請(qǐng)求的資源。資源 ID例如可以是資源特有的標(biāo)識(shí)(例如圖3的314B、314C)。這樣,在該示例中,資源ID可以標(biāo)識(shí)資源部分,該資源部分包括將資源授權(quán)給用戶(hù)所需的資源數(shù)據(jù)。在5 處,如果存在由資源ID標(biāo)識(shí)的資源部分(在5 處為YES),則可在5 處將資源授權(quán)給主ID。在5 處,如果在授權(quán)文檔中不存在資源部分(在5 處為N0),則可用從備份存儲(chǔ)中檢索授權(quán)數(shù)據(jù)。例如,當(dāng)授權(quán)文檔是傳播自與包括請(qǐng)求機(jī)器的群集不同的群集時(shí)(例如接收用戶(hù)請(qǐng)求的web服務(wù)器),則僅可將全局部分傳播給分布式存儲(chǔ)的本地部分。例如, 這可能在用戶(hù)未曾在有效期內(nèi)試圖從本地群集訪問(wèn)分布式服務(wù)以獲取授權(quán)文檔的情況下發(fā)生。在530處,可加載資源授權(quán)數(shù)據(jù)的版本作為來(lái)自備份存儲(chǔ)的更新,并且在532處將其寫(xiě)入到授權(quán)文檔中由資源標(biāo)識(shí)來(lái)標(biāo)識(shí)的新創(chuàng)建的資源部分中。作為示例,備份存儲(chǔ)可在數(shù)據(jù)中心中包括用于分布式服務(wù)的后端服務(wù)器,該后端服務(wù)器用于存儲(chǔ)諸如客戶(hù)相關(guān)消息的通常需要長(zhǎng)期存儲(chǔ)的操作數(shù)據(jù)。這樣,作為示例,授權(quán)數(shù)據(jù)被寫(xiě)入到由用于相關(guān)聯(lián)的資源的資源ID標(biāo)識(shí)的資源部分中。在一個(gè)實(shí)施例中,可以將期滿(mǎn)時(shí)間添加到局部資源部分中, 期滿(mǎn)時(shí)間包括用戶(hù)訪問(wèn)資源的時(shí)間(例如圖3的316B、316C)。在534處,授權(quán)數(shù)據(jù)被本地地高速緩存在諸如從用戶(hù)處接收授權(quán)請(qǐng)求的本地機(jī)器上。在一個(gè)實(shí)施例中,可將授權(quán)文檔推入到分布式存儲(chǔ)的下一主高速緩存級(jí)別。例如,可將授權(quán)文檔從本地機(jī)器高速緩存推入到用于包括本地機(jī)器的群集的主高速緩存;或者可以將其從用于群集的主高速緩存推入到用于數(shù)據(jù)中心的主高速緩存。在一個(gè)實(shí)施例中,可以諸如用分布式存儲(chǔ)更新進(jìn)程相對(duì)于主高速緩存版本來(lái)檢查經(jīng)更新的(例如,更新自備份存儲(chǔ)的)授權(quán)文檔的版本。在該實(shí)施例中,如果經(jīng)更新的版本是較近的版本,則也更新該級(jí)別處的主高速緩存。然而,如果經(jīng)更新的版本不是比主高速緩存更近的版本(例如在將經(jīng)更新的版本推入到主高速緩存之前到來(lái)的后續(xù)更新),則就不更新主版本。在該實(shí)施例中,可以在更新中返回經(jīng)更新的文檔部分。這樣,例如,主高速緩存可以包括任何經(jīng)更新的文檔部分的最近的版本,并且高速緩存更新可提供最近的版本。在一個(gè)實(shí)施例中,可以將期滿(mǎn)時(shí)間添加到授權(quán)文檔中,期滿(mǎn)時(shí)間包括用于訪問(wèn)授權(quán)文檔的時(shí)間。 這樣,例如,分布式服務(wù)可以在所需的時(shí)間段之后為用戶(hù)提供重新認(rèn)證和重新授權(quán)。在高速緩存了經(jīng)更新的授權(quán)文檔之后,可以在5M處向用戶(hù)授權(quán)。一方面,可能希望修改分布式服務(wù)中資源對(duì)用戶(hù)的授權(quán)(例如云網(wǎng)絡(luò)環(huán)境)。例如,用戶(hù)關(guān)于特定服務(wù)的活動(dòng)可提示管理員阻止他們進(jìn)行進(jìn)一步的訪問(wèn)(例如使用電子郵件服務(wù)的垃圾郵件發(fā)送者)。然而,授權(quán)數(shù)據(jù)可包括允許用戶(hù)繼續(xù)他們的授權(quán)的期滿(mǎn)時(shí)間。 在這方面,在一個(gè)實(shí)施例中,可修改(例如移除、改變期滿(mǎn)時(shí)間等)授權(quán)文檔的資源部分中的授權(quán)。在一個(gè)實(shí)施例中修改授權(quán)文檔中的資源部分中的授權(quán)可包括接收修改授權(quán)的請(qǐng)求,該請(qǐng)求指示關(guān)于預(yù)定資源的資源ID以及關(guān)于用戶(hù)的主ID。在該實(shí)施例中,可使用主ID 來(lái)訪問(wèn)授權(quán)文檔,并且可使用資源ID來(lái)訪問(wèn)資源部分。作為示例,可以重置關(guān)于資源的期滿(mǎn)信息或者移除對(duì)應(yīng)于資源的資源部分。在該實(shí)施例中,例如,可以將包括經(jīng)修改的資源部分的授權(quán)文檔保存在分布式存儲(chǔ)的存儲(chǔ)器中,由此訪問(wèn)(例如或擴(kuò)展)用戶(hù)的訪問(wèn)。可設(shè)計(jì)處使用位置感知的、多級(jí)的、高速緩存的存儲(chǔ)文檔來(lái)將例如特定的分布式服務(wù)(例如云計(jì)算服務(wù))授權(quán)給用戶(hù)的系統(tǒng)。圖6是向分布式存儲(chǔ)的用戶(hù)提供資源授權(quán)的示例性系統(tǒng)600的組件框圖。分布式存儲(chǔ)602包括被配置成存儲(chǔ)資源授權(quán)數(shù)據(jù)的存儲(chǔ)器組件 652。用戶(hù)授權(quán)組件604在操作上與分布式存儲(chǔ)602耦合,以便在用戶(hù)認(rèn)證時(shí)創(chuàng)建授權(quán)文檔650。授權(quán)文檔650由與用戶(hù)相關(guān)的主ID標(biāo)識(shí),并且它包括被配置成在請(qǐng)求時(shí)被傳播到分布式存儲(chǔ)602的存儲(chǔ)器組件652處的全局部分。用戶(hù)授權(quán)組件604包括如果在授權(quán)文檔650中存在用于主ID的包括資源授權(quán)數(shù)據(jù)的資源部分,則就將資源授權(quán)給用戶(hù)的資源檢查組件606。用戶(hù)授權(quán)組件604還包括在授權(quán)文檔650中創(chuàng)建用于由資源標(biāo)識(shí)符指示的資源的局部資源部分的資源部分創(chuàng)建組件608。如果在授權(quán)文檔650中不存在對(duì)應(yīng)于資源的資源部分,則就通過(guò)將資源授權(quán)數(shù)據(jù)加載到對(duì)應(yīng)于資源的局部資源部分中來(lái)創(chuàng)建局部資源部分。用戶(hù)授權(quán)組件604也包括為分布式存儲(chǔ)602中的資源本地地保存包括全局部分和由資源標(biāo)識(shí)符指示的局部資源部分的資源文檔650。 圖7是示出其中可實(shí)現(xiàn)此處所描述的一個(gè)或多個(gè)系統(tǒng)的一個(gè)實(shí)施例700的組件框圖。在用戶(hù)認(rèn)證時(shí),用戶(hù)認(rèn)證組件可在分布式存儲(chǔ)602中創(chuàng)建按照會(huì)話ID索引的會(huì)話文檔,會(huì)話文檔包括對(duì)關(guān)于經(jīng)認(rèn)證的用戶(hù)的授權(quán)文檔722的引用。在該實(shí)施例中,用戶(hù)750可 (例如使用共享的密鑰、密碼密鑰或某種其他認(rèn)證技術(shù))來(lái)認(rèn)證,使用對(duì)授權(quán)文檔722的引用7 來(lái)創(chuàng)建會(huì)話文檔720,且索引引用726的會(huì)話ID被發(fā)送回用戶(hù)750處。
此外,會(huì)話文檔720被存儲(chǔ)在分布式存儲(chǔ)602的存儲(chǔ)器中,并且包括授權(quán)文檔訪問(wèn)組件(參考編號(hào)726),其中按照用于用戶(hù)的會(huì)話的會(huì)話ID來(lái)訪問(wèn)授權(quán)文檔訪問(wèn)組件。換而言之,當(dāng)用戶(hù)試圖訪問(wèn)使用分布式存儲(chǔ)602的分布式服務(wù)時(shí),用戶(hù)的計(jì)算設(shè)備可以與授權(quán)請(qǐng)求一起發(fā)送會(huì)話ID。這樣,在該示例中,可使用會(huì)話ID來(lái)訪問(wèn)授權(quán)文檔引用726,后者進(jìn)而允許用戶(hù)訪問(wèn)分布式存儲(chǔ)602上的授權(quán)文檔722。備份存儲(chǔ)7M在操作上與分布式存儲(chǔ)602耦合,并且它為授權(quán)文檔722中的資源部分730提供資源授權(quán)數(shù)據(jù)。例如,備份存儲(chǔ)可包括在服務(wù)器農(nóng)場(chǎng)的后端服務(wù)器中,并且可將用于給出用戶(hù)授權(quán)的授權(quán)數(shù)據(jù)存儲(chǔ)在授權(quán)文檔的資源部分中。在一個(gè)實(shí)施例中,當(dāng)授權(quán)文檔722是本地存儲(chǔ)時(shí)(例如在對(duì)于用戶(hù)訪問(wèn)的資源而言是本地的服務(wù)器),它可以包括全局部分7 和資源部分730,全局部分7 包括主ID和用戶(hù)相關(guān)信息,資源部分730包括用于本地資源的資源授權(quán)數(shù)據(jù)。換而言之,例如,用戶(hù)750 可能試圖通過(guò)鏈接到諸如web服務(wù)器農(nóng)場(chǎng)的提供服務(wù)的應(yīng)用程序服務(wù)器來(lái)訪問(wèn)分布式資源服務(wù)(例如在線文字處理器)。授權(quán)文檔可以本地地存儲(chǔ)在應(yīng)用程序服務(wù)器上或包括該服務(wù)器的本地群集中,并且它可以包括關(guān)于用戶(hù)授權(quán)信息的全局部分7 和標(biāo)識(shí)授權(quán)用戶(hù)訪問(wèn)的資源(例如文字處理器)的資源部分730。在一個(gè)實(shí)施例中,分布式存儲(chǔ)602可包括諸如本地機(jī)器的本地高速緩存(例如向 web用戶(hù)提供內(nèi)容的前端web服務(wù)器或應(yīng)用程序服務(wù)器)。此外,在一個(gè)實(shí)施例中,分布式存儲(chǔ)602可包括用于包括分布式存儲(chǔ)的群集的主高速緩存。例如,群集可以包括向用戶(hù)供應(yīng)web內(nèi)容的多個(gè)前端機(jī)器,并且分布式存儲(chǔ)可以在群集中實(shí)現(xiàn),其中群集包括主高速緩存。在一個(gè)實(shí)施例中,分布式存儲(chǔ)602可包括用于包括分布式存儲(chǔ)的一個(gè)或多個(gè)群集的主數(shù)據(jù)中心高速緩存。再一實(shí)施例涉及包括被配置成實(shí)現(xiàn)此處所呈現(xiàn)的技術(shù)中的一種或多種的處理器可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)??梢杂眠@些方式設(shè)計(jì)的一種示例性計(jì)算機(jī)可讀介質(zhì)在圖8 中示出,其中實(shí)現(xiàn)800包括其上編碼有計(jì)算機(jī)可讀數(shù)據(jù)808的計(jì)算機(jī)可讀介質(zhì)806(例如, CD-R、DVD-R、或硬盤(pán)驅(qū)動(dòng)器盤(pán)片)。該計(jì)算機(jī)可讀數(shù)據(jù)806又包括被配置成根據(jù)此次闡述的原理中的一個(gè)或多個(gè)來(lái)操作的一組計(jì)算機(jī)指令804。在一個(gè)這樣的實(shí)施例802中,處理器可執(zhí)行指令804可被配置成執(zhí)行一種方法,諸如例如,圖1的示例性方法100。在另一個(gè)這樣的實(shí)施例中,處理器可執(zhí)行指令804可被配置成實(shí)現(xiàn)一種系統(tǒng),諸如例如,圖6的示例性系統(tǒng)600。本領(lǐng)域普通技術(shù)人員可以設(shè)計(jì)可被配置成根據(jù)此處描述的技術(shù)操作的許多這樣的計(jì)算機(jī)可讀介質(zhì)。盡管用專(zhuān)門(mén)描述結(jié)構(gòu)特征和/或方法動(dòng)作的語(yǔ)言描述了主題,但是應(yīng)當(dāng)理解,在所附權(quán)利要求書(shū)中限定的主題并不一定局限于上述特定的特征或動(dòng)作。更確切而言,上述具體特征和動(dòng)作是作為實(shí)現(xiàn)權(quán)利要求的示例形式公開(kāi)的。如在本申請(qǐng)中所使用的,術(shù)語(yǔ)“組件”、“模塊”、“系統(tǒng)”、“接口 ”等等一般旨在表示計(jì)算機(jī)相關(guān)的實(shí)體,其可以是硬件、硬件和軟件的組合、軟件、或運(yùn)行中的軟件。例如,組件可以是,但不限于是,在處理器上運(yùn)行的進(jìn)程、處理器、對(duì)象、可執(zhí)行碼、執(zhí)行的線程、程序和 /或計(jì)算機(jī)。作為說(shuō)明,運(yùn)行在控制器上的應(yīng)用程序和控制器都可以是組件。一個(gè)或多個(gè)組件可以駐留在進(jìn)程和/或執(zhí)行線程中,并且組件可以位于一個(gè)計(jì)算機(jī)內(nèi)和/或分布在兩個(gè)或更多的計(jì)算機(jī)之間。此外,所要求保護(hù)的主題可以使用產(chǎn)生控制計(jì)算機(jī)以實(shí)現(xiàn)所公開(kāi)的主題的軟件、 固件、硬件或其任意組合的標(biāo)準(zhǔn)編程和/或工程技術(shù)而被實(shí)現(xiàn)為方法、裝置或制品。如這里所使用的術(shù)語(yǔ)“制品”可以包含可以從任何計(jì)算機(jī)可讀的設(shè)備、載體或介質(zhì)進(jìn)行訪問(wèn)的計(jì)算機(jī)程序。當(dāng)然,本領(lǐng)域的技術(shù)人員將會(huì)認(rèn)識(shí)到,在不背離所要求保護(hù)的主題的范圍或精神的前提下可以對(duì)這一配置進(jìn)行許多修改。圖9以及下面的討論提供了用于實(shí)現(xiàn)這里所闡述的供應(yīng)中的一個(gè)或多個(gè)的實(shí)施方式的合適計(jì)算環(huán)境的簡(jiǎn)要概括描述。圖9的操作環(huán)境只是合適的操作環(huán)境的一個(gè)示例, 并且不旨在對(duì)操作環(huán)境的使用范圍或功能提出任何限制。示例計(jì)算設(shè)備包括,但不限于,個(gè)人計(jì)算機(jī)、服務(wù)器計(jì)算機(jī)、手提式或膝上型設(shè)備、移動(dòng)設(shè)備(諸如移動(dòng)電話、個(gè)人數(shù)字助理 (PDA)、媒體播放器等等)、多處理器系統(tǒng)、消費(fèi)電子產(chǎn)品、小型計(jì)算機(jī)、大型計(jì)算機(jī)、包括上面的系統(tǒng)或設(shè)備的中的任何一種的分布式計(jì)算環(huán)境等等。盡管并非必需,但各實(shí)施例在由一個(gè)或多個(gè)計(jì)算設(shè)備執(zhí)行的“計(jì)算機(jī)可讀指令”的一般上下文中描述。計(jì)算機(jī)可讀指令可以通過(guò)計(jì)算機(jī)可讀介質(zhì)來(lái)分發(fā)(下面將討論)。計(jì)算機(jī)可讀指令可被實(shí)現(xiàn)為執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類(lèi)型的程序模塊,諸如函數(shù)、 對(duì)象、應(yīng)用程序編程接口(API)、數(shù)據(jù)結(jié)構(gòu)等等。通常,計(jì)算機(jī)可讀指令的功能可按需在各個(gè)環(huán)境中組合或分布。圖9示出了包括被配置成實(shí)現(xiàn)此處所提供的一個(gè)或多個(gè)實(shí)施例的計(jì)算設(shè)備910的系統(tǒng)912的示例。在一種配置中,計(jì)算設(shè)備912包括至少一個(gè)處理單元916和存儲(chǔ)器918。 取決于計(jì)算設(shè)備的確切配置和類(lèi)型,存儲(chǔ)器918可以是易失性的(如RAM)、非易失性的(如 ROM、閃存等)或是兩者的某種組合。該配置在圖9中由虛線914來(lái)例示。在其它實(shí)施例中,設(shè)備912可以包括附加特征和/或功能。例如,設(shè)備912還可以包括附加存儲(chǔ)(例如,可移動(dòng)和/或不可移動(dòng)),其中包括但不限于磁存儲(chǔ)、光存儲(chǔ)等等。這樣的附加存儲(chǔ)在圖9中由存儲(chǔ)920示出。在一個(gè)實(shí)施例中,用于實(shí)現(xiàn)此處所提供的一個(gè)或多個(gè)實(shí)施例的計(jì)算機(jī)可讀指令可以在存儲(chǔ)920中。存儲(chǔ)920還可以?xún)?chǔ)存實(shí)現(xiàn)操作系統(tǒng)、應(yīng)用程序等的其它計(jì)算機(jī)可讀指令??梢栽诖鎯?chǔ)器918中加載計(jì)算機(jī)可讀指令以供例如處理單元916執(zhí)行。此處所使用的術(shù)語(yǔ)“計(jì)算機(jī)可讀介質(zhì)”包括計(jì)算機(jī)存儲(chǔ)介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括以用于存儲(chǔ)諸如計(jì)算機(jī)可讀指令或其他數(shù)據(jù)之類(lèi)的信息的任何方法或技術(shù)實(shí)現(xiàn)的易失性和非易失性、可移動(dòng)和不可移動(dòng)介質(zhì)。存儲(chǔ)器918和存儲(chǔ)920都是計(jì)算機(jī)存儲(chǔ)介質(zhì)的示例。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括,但不限于,RAM、R0M、EEPR0M、閃存或其他存儲(chǔ)技術(shù),CD-ROM、數(shù)字多功能盤(pán)(DVD)或其他光存儲(chǔ)、磁帶盒、磁帶、磁盤(pán)存儲(chǔ)或其他磁存儲(chǔ)設(shè)備,或可以用來(lái)存儲(chǔ)所需信息并可以被計(jì)算設(shè)備912訪問(wèn)的任何其他介質(zhì)。任何這樣的計(jì)算機(jī)存儲(chǔ)介質(zhì)可以是設(shè)備912的一部分。設(shè)備912還可以包括允許設(shè)備912與其他設(shè)備進(jìn)行通信的通信連接926。通信連接擬6可以包括,但不限于,調(diào)制解調(diào)器、網(wǎng)絡(luò)接口卡(NIC)、集成網(wǎng)絡(luò)接口、射頻發(fā)射機(jī)/接收機(jī)、紅外線端口、USB連接,或用于將計(jì)算設(shè)備912連接到其他計(jì)算設(shè)備的其他接口。通信連接擬6可以包括有線連接或無(wú)線連接。通信連接擬6可以發(fā)送和/或接收通信介質(zhì)。術(shù)語(yǔ)“計(jì)算機(jī)可讀介質(zhì)”可以包括通信介質(zhì)。通信介質(zhì)通常以諸如載波或其他傳輸機(jī)制等“已調(diào)制數(shù)據(jù)信號(hào)”來(lái)體現(xiàn)計(jì)算機(jī)可讀指令或其他數(shù)據(jù),并包括任何信息傳送介質(zhì)。 術(shù)語(yǔ)“已調(diào)制數(shù)據(jù)信號(hào)”可以包括以對(duì)信號(hào)中的信息進(jìn)行編碼的方式設(shè)置或改變其一個(gè)或多個(gè)特征的信號(hào)。設(shè)備912可以包括輸入設(shè)備924,諸如鍵盤(pán)、鼠標(biāo)、筆、語(yǔ)音輸入設(shè)備、觸摸輸入設(shè)備、紅外照相機(jī)、視頻輸入設(shè)備、和/或任何其他輸入設(shè)備。設(shè)備912還可以包括輸出設(shè)備 922,諸如一個(gè)或多個(gè)顯示器、揚(yáng)聲器、打印機(jī)、和/或任何其他輸出設(shè)備。輸入設(shè)備擬4和輸出設(shè)備922可以通過(guò)有線連接、無(wú)線連接、或其任何組合來(lái)連接到設(shè)備912。在一個(gè)實(shí)施方式中,可以使用來(lái)自另一計(jì)算設(shè)備的輸入設(shè)備或輸出設(shè)備作為計(jì)算設(shè)備912的輸入設(shè)備 924或輸出設(shè)備922。計(jì)算設(shè)備912的組件可通過(guò)多種互連來(lái)連接,例如總線。這樣的互連可以包括諸如PCIExpress之類(lèi)的外圍部件互連(PCI)、通用串行總線(USB)、火線(IEEE1384)、光學(xué)總線結(jié)構(gòu)等等。在另一實(shí)施方式中,計(jì)算設(shè)備912的組件可以通過(guò)網(wǎng)絡(luò)互連。例如,存儲(chǔ)器 918可以包括位于通過(guò)網(wǎng)絡(luò)互連的不同物理位置的多個(gè)物理存儲(chǔ)器單元。本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,用來(lái)存儲(chǔ)計(jì)算機(jī)可讀指令的存儲(chǔ)設(shè)備可以分布在網(wǎng)絡(luò)上。例如,可經(jīng)由網(wǎng)絡(luò)930訪問(wèn)的計(jì)算設(shè)備擬8可以存儲(chǔ)計(jì)算機(jī)可讀指令來(lái)實(shí)現(xiàn)這里所提供的一個(gè)或多個(gè)實(shí)施方式。計(jì)算設(shè)備912可以訪問(wèn)計(jì)算設(shè)備930,并下載計(jì)算機(jī)可讀指令的一部分或全部以便執(zhí)行?;蛘撸?jì)算設(shè)備912可以根據(jù)需要下載計(jì)算機(jī)可讀指令的一部分,或者一些指令可以在計(jì)算設(shè)備912上執(zhí)行而一些指令則在計(jì)算設(shè)備930上執(zhí)行。這里提供了實(shí)施方式的各種操作。在一個(gè)實(shí)施方式中,所描述的操作中的一個(gè)或多個(gè)可以組成存儲(chǔ)在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)上的計(jì)算機(jī)可讀指令,這些指令如果由計(jì)算設(shè)備執(zhí)行則使得計(jì)算設(shè)備執(zhí)行所描述的操作。描述一些或所有操作的順序不應(yīng)該被解釋為暗示這些操作一定是依賴(lài)于順序的。從本說(shuō)明書(shū)獲益的本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到替換順序。此外,應(yīng)該理解,并非所有的操作都一定存在于這里所提供的每一個(gè)實(shí)施方式中。此外,在此使用詞語(yǔ)“示例性”意指用作示例、實(shí)例或說(shuō)明。這里作為“示例性”所描述的任何方面或設(shè)計(jì)不必被解釋為有利于其他方面或設(shè)計(jì)。相反,使用詞語(yǔ)“示例性”旨在以具體的方式呈現(xiàn)各個(gè)概念。如本申請(qǐng)中所使用的,術(shù)語(yǔ)“或”意指包括性“或”而非互斥性“或”。即,除非另有指定或從上下文可以清楚,“X使用A或B”意指任何自然的包括性排列。即,如果X使用A ;X使用B^X使用A和B兩者,則在任何以上情況下,都滿(mǎn)足“X使用A或B”。此外,本申請(qǐng)中和所附權(quán)利要求書(shū)所使用的冠詞“一”和“一個(gè)” 一般可以解釋為“一個(gè)或多個(gè)”,除非另有指定或從上下文可以清楚是指單數(shù)形式。同樣,雖然參考一個(gè)或多個(gè)實(shí)現(xiàn)示出并描述了本發(fā)明,但本領(lǐng)域技術(shù)人員基于對(duì)本說(shuō)明書(shū)和附圖閱讀和理解,可以想到各種等效更改和修改。本發(fā)明包括所有這樣的修改
13和更改,并且僅由所附權(quán)利要求書(shū)的范圍來(lái)限定。特別地,對(duì)于由上述組件(例如,元素、資源等)執(zhí)行的各種功能,除非另外指明,否則用于描述這些組件的術(shù)語(yǔ)旨在對(duì)應(yīng)于執(zhí)行所描述的執(zhí)行此處在本發(fā)明的示例性實(shí)現(xiàn)中所示的功能的組件的指定功能(例如,功能上等效)的任何組件,即使這些組件在結(jié)構(gòu)上不等效于所公開(kāi)的結(jié)構(gòu)。此外,盡管可相對(duì)于若干實(shí)現(xiàn)中的僅一個(gè)實(shí)現(xiàn)來(lái)公開(kāi)本發(fā)明的一個(gè)特定特征,但這一特征可以如對(duì)任何給定或特定應(yīng)用所需且有利地與其他實(shí)現(xiàn)的一個(gè)或多個(gè)其他特征相組合。此外,就在“具體實(shí)施方式
” 或者權(quán)利要求書(shū)中使用術(shù)語(yǔ)“包括”、“具有”、“帶有”或其變體而言,這些術(shù)語(yǔ)旨在以與術(shù)語(yǔ) “包括”相似的方式為包含性的。
權(quán)利要求
1.一種向分布式存儲(chǔ)的用戶(hù)提供資源授權(quán)的方法(100),包括使用標(biāo)識(shí)授權(quán)文檔位置的會(huì)話ID來(lái)訪問(wèn)存儲(chǔ)在分布式存儲(chǔ)中的授權(quán)文檔,所述授權(quán)文檔包括全局部分,所述全局部分包括與用戶(hù)相關(guān)的主ID(104);如果在所述授權(quán)文檔中存在對(duì)應(yīng)于主ID的包括資源授權(quán)數(shù)據(jù)的資源部分,則將資源授權(quán)給所述用戶(hù)(106);以及如果在所述授權(quán)文檔中不存在對(duì)應(yīng)于所述資源的資源部分(108),則 在所述授權(quán)文檔中為由資源標(biāo)識(shí)符指示的資源創(chuàng)建局部資源部分(110); 將資源授權(quán)數(shù)據(jù)加載到對(duì)應(yīng)于所述資源的局部資源部分中(11 ;以及將包括所述全局部分和由所述資源標(biāo)識(shí)符指示的局部資源部分的所述授權(quán)文檔對(duì)所述資源而言本地地保存在所述分布式存儲(chǔ)中(114)。
2.如權(quán)利要求1所述的方法,其特征在于,包括在用戶(hù)認(rèn)證時(shí) 創(chuàng)建對(duì)應(yīng)于所述用戶(hù)會(huì)話的會(huì)話ID ;以及將所述會(huì)話ID提供給所述用戶(hù)。
3.如權(quán)利要求2所述的方法,其特征在于,在所述分布式存儲(chǔ)的存儲(chǔ)器中創(chuàng)建按照所述會(huì)話ID索引的會(huì)話文檔,所述會(huì)話文檔包括引用所述授權(quán)文檔的主ID。
4.如權(quán)利要求1所述的方法,其特征在于,包括在用戶(hù)認(rèn)證時(shí) 創(chuàng)建所述授權(quán)文檔,其中所述全局部分包括用戶(hù)相關(guān)信息;以及將所述授權(quán)文檔存儲(chǔ)在所述分布式存儲(chǔ)的存儲(chǔ)器中。
5.如權(quán)利要求4所述的方法,其特征在于,包括創(chuàng)建所述授權(quán)文檔的全局部分,以使其被傳播到所述分布式存儲(chǔ)的作出請(qǐng)求的存儲(chǔ)器組件。
6.如權(quán)利要求1所述的方法,其特征在于,使用所述會(huì)話ID來(lái)訪問(wèn)所述授權(quán)文檔包括如果所述授權(quán)文檔對(duì)于所述資源而言是本地高速緩存的,則請(qǐng)求訪問(wèn)所述授權(quán)文檔;以及如果所述授權(quán)文檔對(duì)于所述資源而言不是本地高速緩存的,則請(qǐng)求將包括所述全局部分的授權(quán)文檔本地地傳播給所述分布式存儲(chǔ)中的資源。
7.如權(quán)利要求1所述的方法,其特征在于,包括如果滿(mǎn)足以下條件之一就拒絕授權(quán)請(qǐng)求無(wú)法在所述分布式存儲(chǔ)中找到會(huì)話文檔;以及無(wú)法在所述分布式存儲(chǔ)中找到所述授權(quán)文檔。
8.如權(quán)利要求1所述的方法,其特征在于,將資源授權(quán)給所述用戶(hù)包括使用所述資源標(biāo)識(shí)符來(lái)訪問(wèn)所述授權(quán)文檔中對(duì)應(yīng)于所述資源的資源部分中的授權(quán)數(shù)據(jù)。
9.如權(quán)利要求1所述的方法,其特征子在于,加載資源授權(quán)數(shù)據(jù)包括加載所述所述資源授權(quán)數(shù)據(jù)的版本作為來(lái)自備份存儲(chǔ)的更新。
10.如權(quán)利要求1所述的方法,其特征在于,如果在所述授權(quán)文檔中不存在對(duì)應(yīng)于所述資源的資源部分,則包括將期滿(mǎn)時(shí)間添加到所述局部資源部分,包括供所述用戶(hù)訪問(wèn)所述資源的時(shí)間。
11.一種向分布式存儲(chǔ)的用戶(hù)提供資源授權(quán)的系統(tǒng)(600),包括分布式存儲(chǔ)(602),包括被配置成存儲(chǔ)資源授權(quán)數(shù)據(jù)的存儲(chǔ)器組件;以及用戶(hù)授權(quán)組件(604),所述用戶(hù)授權(quán)組件(604)在操作上與所述分布式存儲(chǔ)耦合,并且被配置成在用戶(hù)認(rèn)證時(shí),創(chuàng)建由與用戶(hù)相關(guān)的主ID標(biāo)識(shí)并且包括全局部分的授權(quán)文檔,所述全局部分被配置成在請(qǐng)求時(shí)被傳播給所述分布式存儲(chǔ)的存儲(chǔ)器組件,所述用戶(hù)授權(quán)組件包括資源檢查組件(606),其被配置成如果在所述授權(quán)文檔中存在對(duì)應(yīng)于所述主ID的包括資源授權(quán)數(shù)據(jù)的資源部分,則將資源授權(quán)給所述用戶(hù)。資源部分創(chuàng)建組件(608),其被配置成如果在所述授權(quán)文檔中不存在對(duì)應(yīng)于所述資源的資源部分,則通過(guò)將資源授權(quán)數(shù)據(jù)加載到對(duì)應(yīng)于所述資源的局部資源部分中來(lái)在授權(quán)文檔中創(chuàng)建對(duì)應(yīng)于由資源標(biāo)識(shí)符指示的資源的局部資源部分。授權(quán)高速緩存組件(610),其被配置成將包括所述全局部分和由所述資源標(biāo)識(shí)符指示的局部資源部分的所述授權(quán)文檔對(duì)于所述資源而言本地地保存在所述分布式存儲(chǔ)中。
12.如權(quán)利要求11所述的系統(tǒng),其特征在于,所述用戶(hù)授權(quán)組件被配置成在用戶(hù)認(rèn)證時(shí)在所述分布式存儲(chǔ)的存儲(chǔ)器中創(chuàng)建按照會(huì)話ID索引的會(huì)話文檔,所述會(huì)話文檔包括對(duì)關(guān)于經(jīng)認(rèn)證的用戶(hù)的授權(quán)文檔的引用;以及將所述會(huì)話ID返回給所述用戶(hù)。
13.如權(quán)利要求11所述的系統(tǒng),其特征在于,包括備份存儲(chǔ),所述備份存儲(chǔ)在操作上與所述分布式存儲(chǔ)耦合并且被配置成為所述授權(quán)文檔中的資源部分提供資源授權(quán)數(shù)據(jù)。
14.如權(quán)利要求11所述的系統(tǒng),其特征在于,所述分布式存儲(chǔ)包括以下各項(xiàng)中的一個(gè)或多個(gè)本地高速緩存;用于包括所述分布式存儲(chǔ)的群集的主高速緩存;以及用于包括所述分布式存儲(chǔ)的一個(gè)或多個(gè)群集的主數(shù)據(jù)中心高速緩存。
15.如權(quán)利要求11所述的系統(tǒng),其特征在于,在對(duì)于本地資源而言本地存儲(chǔ)時(shí),所述授權(quán)文檔包括所述全局部分,包括所述主ID和用戶(hù)相關(guān)信息;以及資源部分,包括關(guān)于所述本地資源的資源授權(quán)數(shù)據(jù)。
全文摘要
公開(kāi)了用于將資源授權(quán)提供給分布式存儲(chǔ)(例如分布式云服務(wù))的用戶(hù)的一種或多種技術(shù)和/或系統(tǒng)。使用標(biāo)識(shí)分布式存儲(chǔ)中的授權(quán)文檔的位置的會(huì)話ID來(lái)訪問(wèn)授權(quán)文檔,該授權(quán)文檔包括具有與用戶(hù)相關(guān)的主ID的全局部分。如果在該授權(quán)文檔中存在對(duì)應(yīng)于主ID的資源部分并且資源部分具有關(guān)于該資源的合適的資源數(shù)據(jù),則可授權(quán)該用戶(hù)使用(例如分布式云服務(wù)中的)資源。如果不存在該資源部分,則可以在授權(quán)文檔中創(chuàng)建它,并且它可由資源標(biāo)識(shí)符來(lái)標(biāo)識(shí)??梢詫⑹跈?quán)數(shù)據(jù)加載到新創(chuàng)建的資源部分中,并且可以將帶有該全局部分和資源部分的授權(quán)文檔保存到分布式存儲(chǔ)的本地高速緩存。
文檔編號(hào)H04L29/08GK102316152SQ20111016153
公開(kāi)日2012年1月11日 申請(qǐng)日期2011年6月2日 優(yōu)先權(quán)日2010年6月3日
發(fā)明者B·W·科普蘭, T·A·高爾文 申請(qǐng)人:微軟公司