通過(guò)被動(dòng)客戶端發(fā)送會(huì)話令牌的制作方法
【專利說(shuō)明】通過(guò)被動(dòng)客戶端發(fā)送會(huì)話令牌
[0001] 戦
[0002] 在線計(jì)算服務(wù)經(jīng)常在計(jì)算機(jī)網(wǎng)絡(luò)上與客戶端(諸如遠(yuǎn)程客戶端)通信。如本文中使 用的,計(jì)算服務(wù)是在主機(jī)上運(yùn)行的計(jì)算組件(諸如計(jì)算機(jī)應(yīng)用),該主機(jī)包括一個(gè)或多個(gè)計(jì) 算機(jī)器并針對(duì)一個(gè)或多個(gè)本地和/或遠(yuǎn)程客戶端執(zhí)行動(dòng)作。在一些實(shí)例中,第一計(jì)算服務(wù)向 客戶端發(fā)送重定向消息,從而指令客戶端重定向到另一計(jì)算服務(wù)。運(yùn)樣的重定向消息可包 括客戶端要向第二計(jì)算服務(wù)發(fā)送的信息。
[0003] 有時(shí),運(yùn)樣的重定向消息被用于指令被動(dòng)客戶端與要求認(rèn)證的第二計(jì)算服務(wù)通 信。在運(yùn)樣的情況下,用戶輸入被要求來(lái)登錄到第二計(jì)算服務(wù),即使用戶輸入已經(jīng)被提供來(lái) 登錄到發(fā)送重定向消息的第一計(jì)算服務(wù)。
[0004] 懸
[0005] ^中討論的各工具和技術(shù)設(shè)及將會(huì)話令牌從第一計(jì)算服務(wù)發(fā)送到第一計(jì)算服 務(wù)從其獲得該會(huì)話令牌的第二計(jì)算服務(wù)。會(huì)話令牌是包括足夠的信息W供會(huì)話令牌的發(fā)送 者(諸如第二計(jì)算服務(wù))在該令牌被返回到該發(fā)送者時(shí)驗(yàn)證該令牌匹配并且沒有被篡改的 令牌。會(huì)話令牌可通過(guò)被動(dòng)客戶端來(lái)發(fā)送,諸如第一計(jì)算服務(wù)在會(huì)話令牌被發(fā)送之前與其 通信的并且第二計(jì)算服務(wù)在會(huì)話令牌被發(fā)送之后與其通信的被動(dòng)客戶端。如本文中使用 的,被動(dòng)客戶端是缺乏作出其自己的關(guān)于客戶端要將會(huì)話令牌發(fā)送到哪個(gè)特定計(jì)算實(shí)體或 哪些特定計(jì)算實(shí)體的合乎邏輯的判定的能力的普通計(jì)算機(jī)客戶端。相反,被動(dòng)客戶端盲目 地轉(zhuǎn)發(fā)會(huì)話令牌(在被動(dòng)客戶端被明確指令運(yùn)么做的情況下),諸如在被動(dòng)客戶端被第一計(jì) 算服務(wù)指令來(lái)將會(huì)話令牌轉(zhuǎn)發(fā)到第二計(jì)算服務(wù)的情況下(例如,在第二計(jì)算服務(wù)被標(biāo)識(shí)在 來(lái)自第一計(jì)算服務(wù)的重定向消息中的情況下)。例如,被動(dòng)客戶端可W是在移動(dòng)設(shè)備(例如, 智能手機(jī))、平板設(shè)備或臺(tái)式設(shè)備(例如,膝上型計(jì)算機(jī)或臺(tái)式計(jì)算機(jī))上運(yùn)行的被動(dòng)客戶 端,諸如移動(dòng)應(yīng)用、移動(dòng)瀏覽器客戶端、平板瀏覽器客戶端、平板應(yīng)用、臺(tái)式應(yīng)用和/或臺(tái)式 瀏覽器客戶端。
[0006] 在一個(gè)實(shí)施例中,各工具和技術(shù)可包括請(qǐng)求要從第二計(jì)算服務(wù)發(fā)送到第一計(jì)算服 務(wù)的會(huì)話令牌,W及第一計(jì)算服務(wù)接收來(lái)自第二計(jì)算服務(wù)的所請(qǐng)求的會(huì)話令牌。第一計(jì)算 服務(wù)可通過(guò)被動(dòng)客戶端向第二計(jì)算服務(wù)發(fā)送包括該會(huì)話令牌的消息。
[0007] 在各工具和技術(shù)的另一實(shí)施例中,第一會(huì)話令牌可從第二計(jì)算服務(wù)發(fā)送到第一計(jì) 算服務(wù)。第二計(jì)算服務(wù)可從被動(dòng)客戶端接收包括聲稱匹配第一會(huì)話令牌的第二會(huì)話令牌的 消息。第二計(jì)算服務(wù)可驗(yàn)證該消息是有效的,其可包括驗(yàn)證第二會(huì)話令牌匹配第一會(huì)話令 牌。如本文中使用的,會(huì)話令牌匹配指會(huì)話令牌相互對(duì)應(yīng),使得第二令牌沒有W不想要的方 式被修改。例如,在一些技術(shù)中,兩個(gè)會(huì)話令牌在它們相互相同的情況下匹配。
[000引提供本概述是為了 W簡(jiǎn)化的形式介紹一些概念。運(yùn)些概念將在W下詳細(xì)描述中進(jìn) 一步描述。本
【發(fā)明內(nèi)容】
并不旨在標(biāo)識(shí)所要求保護(hù)主題的關(guān)鍵特征或必要特征,也不旨在用 于限制所要求保護(hù)主題的范圍。類似地,本發(fā)明不限于解決在背景、詳細(xì)描述、或附圖中討 論的專用技術(shù)、工具、環(huán)境、缺點(diǎn)、或優(yōu)點(diǎn)的實(shí)現(xiàn)。
[0009] 附圖簡(jiǎn)述
[0010] 圖I是其中可實(shí)現(xiàn)所描述的各實(shí)施例中的一個(gè)或多個(gè)實(shí)施例的合適的計(jì)算環(huán)境的 框圖。
[0011] 圖2是用于通過(guò)被動(dòng)客戶端跨各服務(wù)發(fā)送會(huì)話令牌的環(huán)境的示意圖。
[0012] 圖3是描繪用于通過(guò)被動(dòng)客戶端在各服務(wù)之間委派用戶身份的示例證明令牌方式 的調(diào)用流的調(diào)用流圖。
[0013] 圖4是可與圖3的方法一起使用的瀏覽器顯示示例的說(shuō)明。
[0014] 圖5是描繪用于通過(guò)被動(dòng)客戶端在各服務(wù)之間在會(huì)話令牌中安全地發(fā)送信息的方 式的調(diào)用流圖。
[0015] 圖6是示出用于通過(guò)被動(dòng)客戶端發(fā)送會(huì)話令牌的技術(shù)的流程圖。
[0016] 圖7是示出用于通過(guò)被動(dòng)客戶端發(fā)送會(huì)話令牌的另一技術(shù)的流程圖。
[0017] 圖8是示出用于通過(guò)被動(dòng)客戶端發(fā)送會(huì)話令牌的又一技術(shù)的流程圖。
[001引 詳細(xì)描述
[0019] 本文描述的各實(shí)施例設(shè)及用于計(jì)算服務(wù)之間通信的技術(shù)和工具。運(yùn)樣的改進(jìn)可源 于分開或組合地使用各種技術(shù)和工具。
[0020] 運(yùn)樣的技術(shù)和工具可包括將會(huì)話令牌返回給第二服務(wù)的第一服務(wù),該令牌由第一 服務(wù)從第二服務(wù)接收。會(huì)話令牌可W是第二服務(wù)對(duì)第一服務(wù)和被動(dòng)客戶端保留的秘密,其 中該令牌通過(guò)該被動(dòng)客戶端返回給第二服務(wù)。例如,會(huì)話令牌可被加密,使得會(huì)話令牌對(duì)于 第一服務(wù)和對(duì)于被動(dòng)客戶端而言是不透明的,但可由第二服務(wù)解密和處理。會(huì)話令牌可通 過(guò)被動(dòng)客戶端返回。運(yùn)樣的工具和技術(shù)可被用于允許第一計(jì)算服務(wù)安全地將信息發(fā)送到第 二計(jì)算服務(wù),即使被動(dòng)客戶端不被信任。例如,要被發(fā)送的信息可被包括在會(huì)話令牌中。作 為一個(gè)示例,會(huì)話令牌可W是證明令牌,其可與證明密鑰一起被發(fā)送到第一計(jì)算服務(wù)。如本 文中使用的,證明令牌是與證明密鑰一起提供的令牌,其可被用于對(duì)附加信息進(jìn)行簽名。證 明令牌、證明密鑰W及用證明密鑰來(lái)簽名的信息提供了一個(gè)指示,即經(jīng)簽名的信息來(lái)自于 第二計(jì)算服務(wù)將證明令牌和證明密鑰提供給的第一計(jì)算服務(wù)。因此,第一計(jì)算服務(wù)可用該 證明密鑰來(lái)對(duì)附加信息進(jìn)行簽名。第一計(jì)算服務(wù)可通過(guò)被動(dòng)客戶端將用該證明密鑰來(lái)簽名 的附加信息發(fā)送到第二計(jì)算服務(wù)。運(yùn)可允許第二計(jì)算服務(wù)W被動(dòng)客戶端發(fā)起與第二計(jì)算服 務(wù)的通信的方式來(lái)接收來(lái)自被動(dòng)客戶端的附加信息。瀏覽器和第二計(jì)算服務(wù)此后可在客戶 端一服務(wù)器配置(諸如計(jì)算機(jī)網(wǎng)絡(luò)(諸如全球計(jì)算機(jī)網(wǎng)絡(luò))上的Web瀏覽器和Web服務(wù)配置) 中繼續(xù)通信。
[0021] 在本文中討論的各工具和技術(shù)的一實(shí)現(xiàn)的一個(gè)示例中,兩個(gè)受信任的服務(wù)可在計(jì) 算機(jī)網(wǎng)絡(luò)(諸如因特網(wǎng))上通過(guò)被動(dòng)客戶端(例如,沒有插件或被具體指引來(lái)處理身份委派 場(chǎng)景的其他代碼的Web瀏覽器)安全地委派身份(諸如用戶和/或應(yīng)用身份)。
[0022] 由此,從此處描述的工具和技術(shù)中可W實(shí)現(xiàn)一個(gè)或多個(gè)實(shí)質(zhì)的益處。例如,本文中 的各工具和技術(shù)可允許兩個(gè)服務(wù)通過(guò)被動(dòng)客戶端安全地通信,即使該客戶端和運(yùn)樣的通信 通過(guò)其來(lái)傳遞的網(wǎng)絡(luò)是不安全或不受信任的的。作為一個(gè)示例,運(yùn)樣的通信可包括將身份 從一個(gè)服務(wù)委派到另一個(gè)的信息。運(yùn)可提供效率,避免了諸如在認(rèn)證用戶輸入已經(jīng)被匹配 身份(諸如與匹配第二計(jì)算服務(wù)的第二簡(jiǎn)檔的第一計(jì)算服務(wù)的第一簡(jiǎn)檔相關(guān)聯(lián))在第一計(jì) 算服務(wù)上提供時(shí)用于在第二計(jì)算服務(wù)處認(rèn)證的用戶輸入的必要。附加地,通過(guò)W上討論的 證明令牌示例,只要證明令牌和證明密鑰可被從第二服務(wù)發(fā)送到第一服務(wù)一次,則證明令 牌和密鑰就可被使用多次來(lái)通過(guò)一個(gè)或多個(gè)被動(dòng)客戶端將多個(gè)安全消息從第一計(jì)算服務(wù) 發(fā)送到第二計(jì)算服務(wù)。通過(guò)避免針對(duì)每個(gè)要通過(guò)被動(dòng)客戶端從第一計(jì)算服務(wù)發(fā)送到第二計(jì) 算服務(wù)的新消息來(lái)將新的令牌從第二計(jì)算服務(wù)發(fā)送到第一計(jì)算服務(wù),運(yùn)可提供附加的效 率。
[0023] 所附權(quán)利要求中定義的主題不必限于此處描述的益處。本發(fā)明的專用實(shí)現(xiàn)可提供 本文描述的益處的全部、一些、或未提供本文描述的益處。盡管本文出于呈現(xiàn)的目的W專用 的順序次序描述了用于各種技術(shù)的操作,但應(yīng)理解除非要求專用的排序,否則運(yùn)種描述方 式涵蓋了操作順序上的重新安排。例如,在某些情況下,可W重新安排或并發(fā)執(zhí)行順序地描 述的操作。此外,為了簡(jiǎn)單起見,流程圖可能未示出可結(jié)合其他技術(shù)來(lái)使用專用技術(shù)的各種 方式。
[0024] 在此描述的技術(shù)可被用于在此描述的一個(gè)或多個(gè)系統(tǒng)和/或用于一個(gè)或多個(gè)其他 系統(tǒng)。例如,在此描述的各種過(guò)程可用硬件或軟件、或兩者的組合來(lái)實(shí)現(xiàn)。例如,W下參考圖 1討論的處理器、存儲(chǔ)器、存儲(chǔ)、輸出設(shè)備、輸入設(shè)備和/或通信連接中的每一個(gè)可W是一個(gè) 或多個(gè)硬件組件的至少一部分。專用硬件邏輯組件可被構(gòu)建W實(shí)現(xiàn)在此描述的一個(gè)或多個(gè) 技術(shù)的至少一部分。例如,但非限制,運(yùn)樣的硬件邏輯組件包括現(xiàn)場(chǎng)可編程口陣列(FPGA)、 程序?qū)S玫募呻娐?ASIC)、程序?qū)S玫臉?biāo)準(zhǔn)產(chǎn)品(ASSP)、片上系統(tǒng)(S0C)、復(fù)雜可編程邏 輯器件(C化D)等??砂ǜ鲗?shí)施例的裝置和系統(tǒng)的應(yīng)用可廣泛地包括各種電子和計(jì)算機(jī)系 統(tǒng)??墒褂镁哂邢嚓P(guān)的控制和數(shù)據(jù)信號(hào)的兩個(gè)或更多個(gè)內(nèi)聯(lián)硬件模塊或裝置或作為應(yīng)用專 用的集成電路的一部分來(lái)實(shí)現(xiàn)各技術(shù),其中控制和數(shù)據(jù)信號(hào)可在模塊之間并通過(guò)模塊進(jìn)行 通信。此外,在此描述的各技術(shù)可由計(jì)算機(jī)系統(tǒng)可執(zhí)行的軟件程序來(lái)實(shí)現(xiàn)。作為一個(gè)示例, 實(shí)現(xiàn)可包括分布的處理、組件/對(duì)象分布的處理、W及平行處理。此外,虛擬計(jì)算機(jī)系統(tǒng)進(jìn)程 可被構(gòu)建W實(shí)現(xiàn)在此描述的一個(gè)或多個(gè)技術(shù)或功能。例如,本文中討論的計(jì)算服務(wù)、身份提 供者W及客戶端可被實(shí)現(xiàn)為硬件邏輯和/或?qū)崿F(xiàn)為在硬件組件上運(yùn)行的軟件,諸如W下討 論的類型的組件。
[00巧]I.示例性計(jì)算環(huán)境
[0026] 圖1示出其中可實(shí)現(xiàn)所描述的各實(shí)施例中的一個(gè)或多個(gè)的合適的計(jì)算環(huán)境(100) 的通用示例。例如,一個(gè)或多個(gè)運(yùn)樣的計(jì)算環(huán)境可被用作第一計(jì)算服務(wù)和/或第二計(jì)算服 務(wù)、身份提供者和/或用作主控被動(dòng)客戶端的計(jì)算機(jī)器。一般而言,可使用各種不同的通用 或?qū)S糜?jì)算系統(tǒng)配置。適用于此處所描述的工具和技術(shù)的公知計(jì)算系統(tǒng)配置的示例包括, 但不限于,服務(wù)器場(chǎng)和服務(wù)器群集、個(gè)人