背景技術(shù):
計(jì)算服務(wù)和應(yīng)用越來越多地尋求訪問由其它服務(wù)和應(yīng)用所擁有和/或管理的資源。例如,在網(wǎng)站上運(yùn)行的web應(yīng)用可能尋求用戶的許可以從網(wǎng)站向用戶博客發(fā)布內(nèi)容,所述用戶博客可能是由分離的實(shí)體管理的資源。在獲得代表用戶進(jìn)行發(fā)布的許可之后,管理用戶博客的實(shí)體可以允許web應(yīng)用在用戶博客上發(fā)布內(nèi)容。
附圖說明
以下詳細(xì)描述參照附圖,其中:
圖1是用于提供對資源的選擇性訪問的示例計(jì)算設(shè)備的框圖。
圖2a是用于提供對資源的選擇性訪問的示例數(shù)據(jù)流。
圖2b是用于提供對資源的選擇性訪問的示例拓?fù)洹?/p>
圖3是用于提供對資源的選擇性訪問的示例方法的流程圖。
具體實(shí)施方式
資源和服務(wù)提供商通常向其它資源和服務(wù)提供商委派各種任務(wù)。例如,社交媒體網(wǎng)站可以利用數(shù)據(jù)存儲服務(wù)來基于社交媒體網(wǎng)站的需要而提供動態(tài)存儲,并且可以使用廣告提供商來向社交媒體網(wǎng)站用戶提供廣告。這些服務(wù)的服務(wù)或級聯(lián)服務(wù)可能通常由專注于提供特定服務(wù)的第三方來管理。在用戶允許客戶端服務(wù)或應(yīng)用訪問由特定資源提供商所管理的用戶資源的情況下,例如在用戶許可網(wǎng)站發(fā)布到用戶的博客的情況下,授予特定資源提供商的級聯(lián)服務(wù)的許可可以以設(shè)計(jì)成確保級聯(lián)服務(wù)和資源提供商僅被提供有執(zhí)行其特定任務(wù)所需要的許可的方式來控制。
一般而言,對于訪問由分離的資源服務(wù)器管理的用戶資源的客戶端服務(wù)或應(yīng)用,用戶通過與關(guān)聯(lián)于資源服務(wù)器的授權(quán)服務(wù)器通信來授予客戶端訪問。授權(quán)服務(wù)器在從用戶并且在一些實(shí)現(xiàn)方式中還從客戶端接收到認(rèn)證(諸如用戶名和口令、客戶端id和/或密碼)后,發(fā)給客戶端允許客戶端請求對資源服務(wù)器上的用戶資源進(jìn)行訪問的令牌,如由用戶授權(quán)的那樣。提供給客戶端應(yīng)用的令牌標(biāo)識客戶端應(yīng)用并且一般不授予許可。為了與資源服務(wù)器交互,客戶端應(yīng)用可以用該令牌交換第二令牌,所述第二令牌指定資源服務(wù)器和關(guān)于該資源服務(wù)器而授予客戶端應(yīng)用的許可范圍。授予客戶端應(yīng)用的許可范圍可以變化,例如取決于用戶確定為客戶端應(yīng)用提供什么訪問。例如,用戶可以授予在用戶的博客上發(fā)布內(nèi)容的web應(yīng)用許可,但是不授予修改用戶簡檔信息的許可。
對于執(zhí)行各種動作(例如在用戶的博客上發(fā)布文章)的資源服務(wù)器,資源服務(wù)器可能需要與一個或多個級聯(lián)服務(wù)通信。例如,為了確保發(fā)布在用戶的博客上的內(nèi)容不侵犯資源提供商的服務(wù)條款或其它內(nèi)容約束,資源提供商可以使用內(nèi)容驗(yàn)證服務(wù)作為級聯(lián)服務(wù),內(nèi)容驗(yàn)證服務(wù)驗(yàn)證由客戶端應(yīng)用提供的內(nèi)容,例如內(nèi)容驗(yàn)證服務(wù)可以嘗試確保內(nèi)容不侵犯任何版權(quán)或關(guān)于被資源服務(wù)器視為不當(dāng)?shù)膬?nèi)容的約束。另一示例級聯(lián)服務(wù)可以用于以例如在用戶簡檔中指定的特定格式呈現(xiàn)該內(nèi)容。
為了確保級聯(lián)服務(wù)僅被提供有執(zhí)行其一個或多個任務(wù)所需要的許可,資源服務(wù)器不為級聯(lián)服務(wù)提供由客戶端應(yīng)用提供的令牌。替代地,資源服務(wù)器可以把其令牌隨訪問級聯(lián)服務(wù)的請求一起提供給授權(quán)服務(wù)器。授權(quán)服務(wù)器可以為資源服務(wù)器提供專用于級聯(lián)服務(wù)的令牌,并且該令牌可以具有如下許可:該許可具有與由向資源服務(wù)器給出的令牌所指定的許可不同的范圍。例如,內(nèi)容呈現(xiàn)服務(wù)可能不需要包括在用戶的博客上進(jìn)行發(fā)布的許可的令牌,并且可能僅需要從用戶的簡檔讀取博客的格式以適當(dāng)?shù)爻尸F(xiàn)要由資源服務(wù)器發(fā)布的內(nèi)容的許可。
要由與資源服務(wù)器相關(guān)聯(lián)的任何服務(wù)之間的令牌授予的許可在可由授權(quán)服務(wù)器訪問的客戶端應(yīng)用拓?fù)渲兄付?。授?quán)服務(wù)器可以使用該拓?fù)鋪泶_定發(fā)給請求服務(wù)的令牌將授予哪些許可。關(guān)于授權(quán)服務(wù)器、客戶端和資源提供商進(jìn)行交互以選擇性地委派對資源的訪問的方式的進(jìn)一步細(xì)節(jié)在隨后的段落中提供。
現(xiàn)在參照附圖,圖1是用于選擇性地委派對資源的訪問的示例計(jì)算設(shè)備100的框圖。計(jì)算設(shè)備100可以是例如服務(wù)器計(jì)算機(jī)、個人計(jì)算機(jī)、移動計(jì)算設(shè)備或適合于處理數(shù)據(jù)的任何其它電子設(shè)備。在圖1的實(shí)施例中,計(jì)算設(shè)備100包括硬件處理器110和機(jī)器可讀存儲介質(zhì)120。
硬件處理器110可以是一個或多個中央處理單元(cpu)、基于半導(dǎo)體的微處理器和/或適合于檢索和執(zhí)行存儲在機(jī)器可讀存儲介質(zhì)120中的指令的其它硬件設(shè)備。硬件處理器110可以取回、解碼和執(zhí)行指令(諸如130-138)以控制用于選擇性地委派對資源的訪問的過程。作為對檢索和執(zhí)行指令的替換或附加,硬件處理器110可以包括一個或多個電子電路,電子電路包括用于執(zhí)行一個或多個指令的功能的電子組件。
機(jī)器可讀存儲介質(zhì)(諸如120)可以是包含或存儲可執(zhí)行指令的任何電子、磁性、光學(xué)或其它物理存儲設(shè)備。因此,機(jī)器可讀存儲介質(zhì)120可以是例如,隨機(jī)存取存儲器(ram)、電可擦除可編程只讀存儲器(eeprom)、存儲設(shè)備、光盤等。在一些實(shí)現(xiàn)方式中,存儲介質(zhì)120可以是非暫時(shí)性存儲介質(zhì),其中術(shù)語“非暫時(shí)性”不涵蓋暫時(shí)性傳播信號。如以下詳細(xì)描述的,機(jī)器可讀存儲介質(zhì)120可以編碼有一系列可執(zhí)行指令:130-138,以用于選擇性地委派對資源的訪問。
如圖1中所示,計(jì)算設(shè)備100執(zhí)行指令以從客戶端應(yīng)用140接收訪問第一資源服務(wù)器150的客戶端請求142(130)??蛻舳苏埱?42包括將客戶端應(yīng)用140指定為受眾(例如預(yù)期接收方)的訪問令牌。在一些實(shí)現(xiàn)方式中,訪問令牌可能先前已經(jīng)由計(jì)算設(shè)備100提供給客戶端應(yīng)用140。例如,訪問令牌可能已經(jīng)作為授權(quán)過程的結(jié)果而提供給客戶端應(yīng)用140,在所述授權(quán)過程中用戶授權(quán)客戶端應(yīng)用140代表用戶訪問受保護(hù)的資源。在一些實(shí)現(xiàn)方式中,訪問令牌不單獨(dú)授予訪問資源的許可,例如必須把它與客戶端應(yīng)用140交換以訪問特定受保護(hù)的資源。
計(jì)算設(shè)備100執(zhí)行指令以響應(yīng)于接收到客戶端請求142而標(biāo)識用于由客戶端應(yīng)用140訪問第一資源服務(wù)器150的第一許可集合(132)。第一許可集合可以由客戶端應(yīng)用140的拓?fù)鋪碇付?。該拓?fù)淇梢岳缰付ǎ旱谝毁Y源服務(wù)器150和用于由客戶端應(yīng)用140訪問第一資源服務(wù)器150的第一許可集合;以及第二資源服務(wù)器與用于由第一資源服務(wù)器150訪問第二資源服務(wù)器的第二許可集合。
作為示例,客戶端應(yīng)用140可以是在用戶的移動設(shè)備上運(yùn)行的新聞饋送應(yīng)用,并且第一資源服務(wù)器150可以是由用戶管理的博客的主機(jī)。在該示例中,用于新聞饋送應(yīng)用的拓?fù)渲付ú┛椭鳈C(jī)和代表用戶授予新聞饋送應(yīng)用的第一許可集合。例如,用戶可能之前已經(jīng)授權(quán)新聞饋送應(yīng)用向用戶的博客發(fā)布新聞報(bào)道,例如當(dāng)用戶與呈現(xiàn)在新聞饋送應(yīng)用內(nèi)的新聞文章交互時(shí)。在該示例中,用于新聞饋送應(yīng)用的拓?fù)溥€指定級聯(lián)服務(wù)(諸如用于格式化發(fā)布到用戶的博客的新聞文章的呈現(xiàn)服務(wù))以及使博客主機(jī)與級聯(lián)服務(wù)交互的許可集合。呈現(xiàn)服務(wù)可以具有訪問用戶簡檔信息(諸如用戶的博客布局)的許可以執(zhí)行呈現(xiàn)服務(wù),但是可能不具有向用戶的博客發(fā)布任何事情的許可。由于呈現(xiàn)服務(wù)可能由第三方管理(在博客主機(jī)的控制之外),所以限制授予級聯(lián)服務(wù)的許可可以防止對用戶的受保護(hù)資源的未經(jīng)授權(quán)和/或非所預(yù)期的訪問。
在一些實(shí)現(xiàn)方式中,計(jì)算設(shè)備100可以從客戶端應(yīng)用140接收拓?fù)洹@?,客戶端?yīng)用140的開發(fā)者可以基于從第一資源服務(wù)器150及其相關(guān)聯(lián)的資源服務(wù)器和服務(wù)(級聯(lián)的或其它方式的)獲得的數(shù)據(jù)而生成拓?fù)洹?/p>
在一些實(shí)現(xiàn)方式中,計(jì)算設(shè)備100可以使用從客戶端應(yīng)用140和/或第一資源服務(wù)器150接收的子拓?fù)鋪砩捎糜诳蛻舳藨?yīng)用140的拓?fù)?。例如,替代依賴客戶端?yīng)用140的開發(fā)者來知曉第一資源服務(wù)器的拓?fù)洌ㄋ邢嚓P(guān)聯(lián)的資源服務(wù)器和許可,客戶端應(yīng)用140的開發(fā)者可以提供指定與如下直接交互相關(guān)聯(lián)的許可的子拓?fù)洌涸撝苯咏换ナ强蛻舳藨?yīng)用140與關(guān)聯(lián)于第一資源服務(wù)器150的資源的直接交互,所述第一資源服務(wù)器150在該示例中是唯一的第一資源服務(wù)器150。第一資源服務(wù)器150可以提供指定與如下直接交互相關(guān)聯(lián)的許可的子拓?fù)?,該直接交互在一些?shí)現(xiàn)方式中是第一資源服務(wù)器150與關(guān)聯(lián)于第一資源服務(wù)器150的任何級聯(lián)資源服務(wù)器和服務(wù)的直接交互。通過使用由客戶端應(yīng)用140和第一資源服務(wù)器150提供的子拓?fù)?,?jì)算設(shè)備100可以生成完整拓?fù)洌鐾暾負(fù)渲付蛻舳藨?yīng)用140、第一資源服務(wù)器150和與第一資源服務(wù)器150相關(guān)聯(lián)的資源服務(wù)器和服務(wù)之間的交互的許可。
計(jì)算設(shè)備100執(zhí)行指令以便為客戶端應(yīng)用140提供第一訪問令牌144(134)。第一訪問令牌144指定第一許可集合以及作為受眾的第一資源服務(wù)器150。例如,如由示例拓?fù)渲付ǖ?,新聞饋送?yīng)用可以被提供有將博客主機(jī)指定為受眾的訪問令牌和第一許可集合中的向用戶的博客進(jìn)行發(fā)布的許可。
在圖1中所描繪的示例環(huán)境中,將客戶端應(yīng)用140描繪為使用第一訪問令牌144與第一資源服務(wù)器150通信。通信可以包括例如:包括新聞饋送應(yīng)用的新聞文章或到文章的鏈接的通信;在用戶的博客上發(fā)布新聞文章的請求;和指示新聞饋送應(yīng)用已經(jīng)被授權(quán)向用戶的博客進(jìn)行發(fā)布的令牌。
計(jì)算設(shè)備100執(zhí)行指令以從第一資源服務(wù)器150接收訪問第二資源服務(wù)器的第一資源請求152(136)。例如,當(dāng)接收到第一訪問令牌144和指示新聞饋送應(yīng)用具有新聞文章和在用戶的博客上發(fā)布該新聞文章的授權(quán)的數(shù)據(jù)后,博客主機(jī)可能需要與呈現(xiàn)服務(wù)進(jìn)行通信以便以滿足博客主機(jī)和/或用戶的博客布局的設(shè)計(jì)標(biāo)準(zhǔn)的方式格式化新聞文章。第一訪問令牌144不將第二資源服務(wù)器(例如呈現(xiàn)服務(wù))指定為受眾,并且可能不包括必要的許可,例如訪問用戶的博客布局的許可;相應(yīng)地,在該示例中,第一資源服務(wù)器150發(fā)送第一資源請求152以得到用于與第二資源服務(wù)器進(jìn)行通信并且利用第二資源服務(wù)器的適當(dāng)令牌。
計(jì)算設(shè)備100執(zhí)行指令以響應(yīng)于接收到第一資源請求152而為第一資源服務(wù)器150提供第二訪問令牌154(138)。第二訪問令牌154指定第二許可集合和作為第二受眾的第二資源服務(wù)器。與第一訪問令牌144一樣,第二訪問令牌154可以基于客戶端應(yīng)用拓?fù)涠惶峁┙o第一資源服務(wù)器150。通過使用以上提供的示例,第二訪問令牌154可以將呈現(xiàn)服務(wù)指定為受眾并且許可可以包括對用戶的博客布局的訪問。
如以上所討論的,由任何給定令牌提供的許可可以變化。資源服務(wù)器(級聯(lián)的或其它方式的)可以具有在用于給定客戶端應(yīng)用的拓?fù)渲兄付ǖ脑S可的任何組合。雖然參照圖1描述的示例包括單個資源服務(wù)器和單個級聯(lián)服務(wù),但是許多其它的資源服務(wù)器(其可以包括級聯(lián)服務(wù))可以被包括在拓?fù)渲?。此外,各種配置可用于資源服務(wù)器(級聯(lián)的或其它方式的)之間的通信,例如級聯(lián)服務(wù)器也可以使用級聯(lián)服務(wù),并且服務(wù)之間的許可可以是單向的——其中由第一服務(wù)授予第二服務(wù)的許可不同于由第二服務(wù)授予第一服務(wù)的許可。
每一個客戶端應(yīng)用可以與多個拓?fù)?例如客戶端應(yīng)用可以代表用戶訪問的每一個不同的受保護(hù)資源有一個拓?fù)?相關(guān)聯(lián)。例如,新聞饋送應(yīng)用可以具有:訪問第二博客主機(jī)上的用戶的第二博客的授權(quán);對用戶的電子郵件聯(lián)系人的授權(quán),以向用戶的聯(lián)系人之一發(fā)送新聞文章;和/或?qū)τ脩舻膹V告內(nèi)容簡檔的授權(quán),以基于用戶感興趣的文章向用戶的簡檔添加感興趣話題。此外,每一個資源服務(wù)器(級聯(lián)的或其它方式的)可以屬于多個拓?fù)洹@?,第三方呈現(xiàn)服務(wù)可以由多個資源服務(wù)器使用,并且屬于與相同客戶端應(yīng)用相關(guān)聯(lián)的多個拓?fù)?。作為另一示例,被授?quán)訪問資源服務(wù)器的每一個客戶端應(yīng)用可以具有用于與資源服務(wù)器的交互的拓?fù)?,并且該拓?fù)淇梢耘c用于相同資源服務(wù)器的其它客戶端應(yīng)用的拓?fù)浞蛛x。
圖2a是用于提供對資源的選擇性訪問的示例數(shù)據(jù)流200,而圖2b是用于提供對資源的選擇性訪問的示例拓?fù)?。?shù)據(jù)流200描繪了授權(quán)服務(wù)器230,授權(quán)服務(wù)器230可以由諸如以上關(guān)于圖1描述的計(jì)算設(shè)備100之類的計(jì)算設(shè)備來實(shí)現(xiàn)。用戶設(shè)備210、客戶端應(yīng)用220、第一資源服務(wù)器240和第二資源服務(wù)器250可以由適合于處理數(shù)據(jù)的任何計(jì)算(諸如個人計(jì)算機(jī)、移動計(jì)算機(jī)或服務(wù)器計(jì)算機(jī))設(shè)備實(shí)現(xiàn)。例如,用戶設(shè)備210可以是用戶的個人計(jì)算機(jī),客戶端應(yīng)用220可以是實(shí)現(xiàn)在web服務(wù)器上的web應(yīng)用,授權(quán)服務(wù)器230、第一資源服務(wù)器240和第二資源服務(wù)器250可以實(shí)現(xiàn)在一個或多個服務(wù)器設(shè)備、虛擬機(jī)等上。
示例數(shù)據(jù)流200描繪了可以發(fā)生在例如使用示例拓?fù)?80的所描繪的設(shè)備之間的示例信息交換。一般而言,并且如以上所描述的,拓?fù)?80可以由客戶端應(yīng)用220的開發(fā)者單獨(dú)地或與管理第一資源服務(wù)器240的實(shí)體組合地生成。例如,在一些實(shí)現(xiàn)方式中,客戶端拓?fù)淇梢曰趶墓芾淼谝毁Y源服務(wù)器240的實(shí)體接收的許可數(shù)據(jù)來生成,其中許可數(shù)據(jù)針對與第一資源服務(wù)器相關(guān)聯(lián)的資源服務(wù)器(例如第二資源服務(wù)器250、第三資源服務(wù)器260和第四資源服務(wù)器270)中的每一個來指定其它資源服務(wù)器中的至少一個,并且針對其它資源服務(wù)器中的每一個來指定授予所述其它資源服務(wù)器的許可。拓?fù)湟话憧捎墒跈?quán)服務(wù)器230訪問,授權(quán)服務(wù)器230可以使用該拓?fù)湟苑职l(fā)用于訪問受保護(hù)的資源的令牌。
在示例數(shù)據(jù)流200中,用戶設(shè)備210的用戶可能希望向客戶端應(yīng)用220授予對用戶的受保護(hù)的資源(例如與第一資源服務(wù)器240相關(guān)聯(lián))的訪問。作為示例,第一資源服務(wù)器240可以提供用戶設(shè)備210的用戶訂閱的數(shù)字照片管理服務(wù)。用戶的照片(例如受保護(hù)的資源)可以由第一資源服務(wù)器240結(jié)合例如提供存儲、用戶簡檔管理和打印服務(wù)的其它資源服務(wù)器來管理。對照片的訪問可以例如通過用戶名和口令來保護(hù)。客戶端應(yīng)用220(作為示例其可以是在web服務(wù)器上運(yùn)行的圖像標(biāo)記web應(yīng)用)可以向用戶設(shè)備210給出重定向數(shù)據(jù)212,重定向數(shù)據(jù)212將用戶設(shè)備210的web瀏覽器重定向到授權(quán)服務(wù)器230。
用戶設(shè)備210向授權(quán)服務(wù)器230發(fā)送用戶請求214,所述用戶請求214請求向客戶端應(yīng)用220給出對由第一資源服務(wù)器240管理的用戶圖像的訪問。在以上給出的示例中,授權(quán)服務(wù)器230可以要求用戶通過提供用戶名和口令來進(jìn)行認(rèn)證,并且一經(jīng)認(rèn)證,就為用戶設(shè)備210提供訪問碼216。用戶設(shè)備210向客戶端應(yīng)用220提供訪問碼216,所述客戶端應(yīng)用220向授權(quán)服務(wù)器提供該訪問碼216并且在一些實(shí)現(xiàn)方式中提供客戶端認(rèn)證憑證以交換訪問令牌218。訪問令牌218由授權(quán)服務(wù)器230提供以允許客戶端應(yīng)用訪問與第一資源服務(wù)器240相關(guān)聯(lián)的資源。在一些實(shí)現(xiàn)方式中,訪問令牌218不單獨(dú)授予對任何個體資源或資源服務(wù)器的訪問。
客戶端應(yīng)用220為授權(quán)服務(wù)器230提供訪問令牌218連同訪問第一資源服務(wù)器240的請求。授權(quán)服務(wù)器230在接收到該請求和訪問令牌218后可以在客戶端應(yīng)用拓?fù)?80中標(biāo)識第一令牌222,所述第一令牌222被定義用于訪問第一資源服務(wù)器240。在示例拓?fù)?80中,第一令牌222由字符串“tid_01:{p3,p4}”來表示。該示例字符串指示拓?fù)洹皌id”,受眾“01”(其指示第一資源服務(wù)器240),以及具有兩個許可p3和p4的集合??梢猿尸F(xiàn)令牌的方式可以變化,并且令牌一般指定令牌的受眾、指示在受眾處可以訪問什么的許可,以及——在一些實(shí)現(xiàn)方式中——令牌所屬于的拓?fù)?。通過使用圖像標(biāo)記應(yīng)用示例,提供給圖像標(biāo)記應(yīng)用的第一令牌222可以指定受眾,受眾可以是第一資源服務(wù)器240,并且許可的集合可以指定圖像標(biāo)記應(yīng)用可以訪問一般圖像和圖像屬性。
客戶端應(yīng)用220為去往第一資源服務(wù)器240的第一令牌提供針對特定資源的請求,所述特定資源例如是圖像標(biāo)記應(yīng)用尋求標(biāo)記的圖像。在示例數(shù)據(jù)流200中,第一資源服務(wù)器240依賴于第二資源服務(wù)器250來幫助履行資源請求。例如,為了標(biāo)記圖像,圖像標(biāo)記應(yīng)用可能需要訪問實(shí)際的圖像文件,和/或可能需要在由第二資源服務(wù)器250管理的存儲設(shè)備上存儲圖像文件的許可。
為了利用用于訪問所請求的資源的適當(dāng)許可與第二資源服務(wù)器250通信,第一資源服務(wù)器向授權(quán)服務(wù)器230提供第一令牌222以交換第二令牌224。如在示例拓?fù)?80中所示,第二令牌224由字符串“tid_02:{p5}”來表示,該字符串指示第一資源服務(wù)器240被授權(quán)利用許可p5來訪問“tid”的“02”。在圖像標(biāo)記示例中,所述許可可以是用于例如檢索和存儲圖像的文件許可。
在示例數(shù)據(jù)流200中,當(dāng)接收到經(jīng)授權(quán)的請求(例如由于第二令牌224而被授權(quán))后,第二資源服務(wù)器250向第一資源服務(wù)器240提供表示所請求的資源的數(shù)據(jù)226,第一資源服務(wù)器240然后可以向客戶端應(yīng)用220提供數(shù)據(jù)226。在圖像標(biāo)記應(yīng)用示例中,數(shù)據(jù)226可以是要由客戶端應(yīng)用分析和標(biāo)記的圖像文件,或者可以是由第二資源服務(wù)器250存儲的圖像文件已經(jīng)改變的確認(rèn)。
圖2b中所描繪的示例拓?fù)?80還指示用于授予客戶端應(yīng)用220對第三資源服務(wù)器260的訪問的第三令牌232、用于授予第一資源服務(wù)器240對第三資源服務(wù)器260的訪問的第四令牌234,以及用于授予第一資源240對第四資源服務(wù)器270的訪問的第五令牌236。拓?fù)?80還使用箭頭來指示令牌提供訪問所沿的(一個或多個)方向。從一個資源服務(wù)器向另一個資源服務(wù)器授予的訪問可以不與在相反方向上授予的訪問相同——如果授予相反方向上的任何訪問的話。例如,第一資源服務(wù)器240可以利用許可p2訪問第三資源服務(wù)器,但是在拓?fù)渲胁淮嬖谟糜跒榈谌Y源服務(wù)器260提供對第一資源服務(wù)器的訪問的令牌。許多其它拓?fù)渥冃涂梢杂糜谶x擇性地提供對各種相關(guān)和級聯(lián)的資源服務(wù)器的訪問。
圖3是用于提供對資源的選擇性訪問的示例方法300的流程圖。方法300可以由諸如圖1中描述的計(jì)算設(shè)備之類的計(jì)算設(shè)備執(zhí)行。其它計(jì)算設(shè)備也可以用于執(zhí)行方法300,諸如用于實(shí)現(xiàn)資源服務(wù)器的計(jì)算設(shè)備。方法300可以以存儲在機(jī)器可讀存儲介質(zhì)(諸如存儲介質(zhì)120)上的可執(zhí)行指令的形式和/或以電子電路的形式實(shí)現(xiàn)。
從客戶端設(shè)備接收針對用戶數(shù)據(jù)的客戶端請求以及指定第一受眾和第一許可集合的第一令牌(302)??蛻舳嗽O(shè)備可以是例如實(shí)現(xiàn)客戶端應(yīng)用的設(shè)備,用戶已向所述客戶端應(yīng)用委派訪問,例如對由第一服務(wù)器管理的用戶的受保護(hù)資源的訪問。第一令牌和客戶端請求可以由管理用戶的受保護(hù)資源的第一服務(wù)器接收。
向授權(quán)服務(wù)器提供令牌請求,所述令牌請求包括i)第一令牌,以及ii)訪問資源服務(wù)器的請求(304)。例如,管理用戶的受保護(hù)資源的第一服務(wù)器可能需要對級聯(lián)資源服務(wù)器(例如第一服務(wù)器已經(jīng)向其委派某種功能的資源服務(wù)器)進(jìn)行訪問。為了訪問級聯(lián)資源服務(wù)器,第一服務(wù)器用第一令牌交換提供對級聯(lián)資源服務(wù)器的訪問的令牌。
從授權(quán)服務(wù)器接收資源服務(wù)器令牌,資源服務(wù)器令牌指定第二受眾和第二許可集合,第二受眾是資源服務(wù)器(306)。例如,資源服務(wù)器令牌可以將級聯(lián)資源服務(wù)器指定為受眾,以及指定用于訪問級聯(lián)資源并且履行針對用戶數(shù)據(jù)的客戶端請求的許可集合。在一些實(shí)現(xiàn)方式中,由資源服務(wù)器令牌指定的許可集合不同于由第一令牌指定的第一許可集合。例如,級聯(lián)資源服務(wù)器可以要求與第一服務(wù)器所要求的許可不同的許可來執(zhí)行其服務(wù)。
向資源服務(wù)器提供i)針對用戶數(shù)據(jù)的資源請求,以及ii)資源服務(wù)器令牌(308)。例如,針對用戶數(shù)據(jù)的資源請求可以類似于針對用戶數(shù)據(jù)的客戶端請求,從授權(quán)服務(wù)器接收到的資源服務(wù)器令牌指定請求服務(wù)器(例如第一服務(wù)器)具有請求用戶數(shù)據(jù)的許可并且指定資源服務(wù)器令牌的預(yù)期受眾是資源服務(wù)器。
從資源服務(wù)器接收用戶數(shù)據(jù)(310)。例如,通過使用資源服務(wù)器令牌和資源請求,資源服務(wù)器能夠?yàn)榈谝环?wù)器提供所請求的用戶數(shù)據(jù)。
將用戶數(shù)據(jù)提供給客戶端設(shè)備(312)。例如,第一服務(wù)器在接收到所請求的數(shù)據(jù)后可以向所述客戶端請求所源自的客戶端設(shè)備提供該數(shù)據(jù)。
前述公開內(nèi)容描述了用于提供對資源的選擇性訪問的數(shù)個示例實(shí)現(xiàn)方式。如以上詳述的,各示例提供一種機(jī)制,該機(jī)制使用客戶端應(yīng)用和資源服務(wù)器拓?fù)湟岳酶鞣N許可選擇性地提供對各種資源服務(wù)器的訪問,并且提供了能夠提供對資源的選擇性訪問的系統(tǒng)的潛在應(yīng)用。