專利名稱:傳輸數(shù)據(jù)對象的方法和裝置的制作方法
技術(shù)領域:
本發(fā)明涉及一種改進的數(shù)據(jù)處理系統(tǒng),更具體地涉及一種用于多計 算機數(shù)據(jù)傳輸?shù)姆椒ê脱b置。進一步地說,本發(fā)明針對聯(lián)網(wǎng)的計算機系 統(tǒng)。
背景技術(shù):
為了降低用戶管理成本和改進企業(yè)間的相互協(xié)作,已經(jīng)創(chuàng)建了聯(lián)合 的計算空間。聯(lián)盟是擁護特定協(xié)作標準的企業(yè)的柏嗽聯(lián)合體。對于聯(lián)盟 內(nèi)的用戶,針對特定的計算操作聯(lián)盟提供企業(yè)間的信任機制。例如,一
個聯(lián)盟伙伴可以擔任用戶的主域(home domain)或標識提供商。同一聯(lián)
管理,例如接受:用戶的標識提供商、提供、的單點登錄令牌:''
在企業(yè)提出支持聯(lián)合商業(yè)交互時,這些企業(yè)應當提供反映增強兩個 商務之間的合作并使用戶的操作負擔最小化的用戶體驗。在這些聯(lián)盟 內(nèi),這些企業(yè)已經(jīng)開始相互協(xié)作,以支持用戶可能毫無察覺或稍有察覺 的多種聯(lián)盟協(xié)議。例如,聯(lián)合的企業(yè)可以執(zhí)行多種類型的操作用于用戶 賬戶管理,例如管理用戶特有的別名標識符,這可能需要與用戶進行最 小限度的交互以完成操作。聯(lián)合的企業(yè)應當合作到使用戶對此類型操作 協(xié)調(diào)的底層機制不會感到困惑或感到負擔過重的程度。
但是,在聯(lián)盟內(nèi)實施這些操作時應當考慮到折衷。各種操作,比如 那些完成操作可能需要與用戶進行最小限度的交互的操作,也應該以對 于^i合的企業(yè)高效的方式來執(zhí)行,尤其是對于可能需要橫跨企業(yè)內(nèi)部的 所有用戶的那些類型的操作。例如,當需要對成千上萬的用戶比如特定 企業(yè)的所有客戶執(zhí)行特定操作時,要求執(zhí)行該操作的機制是能夠升級 的,從而不會使聯(lián)合的企業(yè)的計算資源負擔過重,然而這些不同類型的
操作可以以對巻入必要操作的聯(lián)合企業(yè)的負擔發(fā)生變化的各種方式來實 施。
解決聯(lián)合的企業(yè)內(nèi)的計算資源上的負擔的一種辦法是在分布式數(shù)據(jù) 處理系統(tǒng)內(nèi)實施聯(lián)合的功能。例如,標識提供商的服務可以在分布式數(shù) 據(jù)處理系統(tǒng)內(nèi)支持。但是,分布式數(shù)據(jù)處理系統(tǒng)的特性可能存在問題,
執(zhí)行這些聯(lián)合的協(xié)議操作的;能非常復雜。z、 ' 更具體地說,聯(lián)合的實體,比如標識提供商和服務提供商,在聯(lián)合
的環(huán)境內(nèi)生成數(shù)據(jù)對象。許多聯(lián)合的操作或協(xié)議簡檔(profile)使用工件 (artifact)來檢索數(shù)據(jù)對象。工件引用的數(shù)據(jù)對象和相關聯(lián)的工件之間的 引用關系必需在任何聯(lián)合的計算環(huán)境中保持,而不管聯(lián)合的實體是否實 施為分布式數(shù)據(jù)處理系統(tǒng)類型。盡管使用工件執(zhí)行聯(lián)合的協(xié)議操作的功 能可以實施為分布式數(shù)據(jù)處理系統(tǒng),但是分布式數(shù)據(jù)處理系統(tǒng)的特性會 使任何的該實施變得非常復雜。
因此,實施聯(lián)合企業(yè)及其計算基礎設施使得聯(lián)合企業(yè)的數(shù)據(jù)處理系 統(tǒng)內(nèi)的聯(lián)合協(xié)議操作能夠高效并可配置地進行管理將是非常有利的。在 分布式數(shù)據(jù)處理系統(tǒng)內(nèi)有效實施用于聯(lián)合協(xié)議操作的功能,尤其是用于 執(zhí)行使用工件的聯(lián)合協(xié)議操作的功能將更加有利。
發(fā)明內(nèi)容
提供一種通過使用工件在聯(lián)合計算環(huán)境內(nèi)的聯(lián)合實體之間傳輸數(shù)據(jù)
對象的方法、裝置和計算機程序產(chǎn)品。比如服務提供商的第一聯(lián)合實體
從比如標識提供商的第二聯(lián)合實體接收工件。第二聯(lián)合實體生成數(shù)據(jù)對
象比如斷言(assertion)或任何其它類型的數(shù)據(jù)對象,用于根據(jù)第二聯(lián) 合實體和第 一聯(lián)合實體之間的信任關系在笫 一聯(lián)合實體中使用或者由第
一聯(lián)合實體使用,并且工件引用由第二聯(lián)合實體本地(local)存儲的數(shù)據(jù)
對象。第二聯(lián)合實體的服務由分布式數(shù)據(jù)處理系統(tǒng)內(nèi)的一組數(shù)據(jù)處理系
統(tǒng)提供,并且該組數(shù)據(jù)處理系統(tǒng)內(nèi)的每一個數(shù)據(jù)處理系統(tǒng)能夠生成工件
和工件引用的數(shù)據(jù)對象。第二聯(lián)合實體從第一聯(lián)合實體接收包含工件的
數(shù)據(jù)對^險索請求,并且接收到數(shù)據(jù)對象檢索請求的第二聯(lián)合實體中的 第一數(shù)據(jù)處理系統(tǒng)從數(shù)據(jù)對^J險索請求中提取工件。工件由第一數(shù)據(jù)處 理系統(tǒng)使用來從第二聯(lián)合實體的該組數(shù)據(jù)處理系統(tǒng)中的第二數(shù)據(jù)處理系
統(tǒng)檢索工件引用的數(shù)據(jù)對象,然后數(shù)據(jù)對^險索響應從第二聯(lián)合實體返 回第一聯(lián)合實體。
本發(fā)明的新穎特征在所附權(quán)利要求中闡明。從下面結(jié)合附圖的詳細 描述中,本發(fā)明自身、進一步的目的及其優(yōu)點將變得更加清楚。其中 圖1A示出每一個均可以實施本發(fā)明的多個數(shù)據(jù)處理系統(tǒng)的典型網(wǎng)
絡;
圖1B示出可以在能夠?qū)嵤┍景l(fā)明的數(shù)據(jù)處理系統(tǒng)中使用的典型計 算機體系結(jié)構(gòu);
圖2示出說明針對由用戶對第一聯(lián)合企業(yè)^的事務的聯(lián)合環(huán)境的 術(shù)語的方框圖,第一聯(lián)合企業(yè)在響應中調(diào)用聯(lián)合環(huán)境內(nèi)下游實體處的動 作;
圖3示出說明在給定域現(xiàn)存數(shù)據(jù)處理系統(tǒng)與可以用來支持本發(fā)明實 施例的某些聯(lián)合體系結(jié)構(gòu)組件的集成的方框圖4示出說明其中聯(lián)合體系結(jié)構(gòu)內(nèi)的一些組件可以用來建立信任關 系以支持本發(fā)明的實施的示例方式的方框圖5示出根據(jù)能夠支持本發(fā)明的示例聯(lián)合體系結(jié)構(gòu)、使用信任代理 和信任經(jīng)紀說明聯(lián)合域之間的信任關系的示例集合的方框圖6示出說明支持聯(lián)合單點登錄操作的聯(lián)合環(huán)境的方框圖7示出說明在用于實施聯(lián)合用戶生命周期管理功能的聯(lián)合域中的 一些組件的方框圖以便支持本發(fā)明;
圖8示出實施為分布式數(shù)據(jù)處理系統(tǒng)的聯(lián)合實體的方框圖,以便支 持工件引用的數(shù)據(jù)對象的分布式檢索;
圖9A-9C示出其中在使用支持分布式斷言檢索的分布式數(shù)據(jù)處理系
統(tǒng)實施的標識提供商內(nèi)第 一數(shù)據(jù)處理系統(tǒng)從第二數(shù)據(jù)處理系統(tǒng)檢索斷言
的場境的方才匡圖10示出在使用支持工件引用的數(shù)據(jù)對象的分布式檢索的分布式 數(shù)據(jù)處理系統(tǒng)實施的標識提供商內(nèi)的處理的流程圖11示出其中數(shù)據(jù)中心執(zhí)行鏈式搜索用以從聯(lián)合實體內(nèi)的其它數(shù)據(jù) 中心檢索數(shù)據(jù)對象的處理的流程圖;以及
圖12示出其中數(shù)據(jù)中心執(zhí)行輪轂-輪輻類型的搜索用以從聯(lián)合實體 內(nèi)的其它數(shù)據(jù)中心檢索數(shù)據(jù)對象的處理的流程圖。
具體實施例方式
一般而言,可能包括或者與本發(fā)明相關的設備包括各種不同的數(shù)據(jù) 處理計數(shù)。因此,作為背景,在詳細描述本發(fā)明之前首先描述分布式數(shù) 據(jù)處理系統(tǒng)內(nèi)的硬件和軟件組件的典型組織。
現(xiàn)在參照附圖,圖ia示出每一個均可以實施本發(fā)明的多個數(shù)據(jù)處 理系統(tǒng)的典型網(wǎng)絡。分布式數(shù)據(jù)處理系統(tǒng)100包含網(wǎng)絡101,作為用于 在分布式數(shù)據(jù)處理系統(tǒng)ioo內(nèi)連接在一起的各種設備和計算機之間提供 通信鏈路的介質(zhì)。網(wǎng)絡101可以包括諸如有線或光纖光纜的永久連接或 者通過電話或無線通信構(gòu)成的臨時連接。在所示的示例中,服務器102
和服務器103連接到網(wǎng)絡101以及存儲單元104。另外,客戶機105-107也連接到網(wǎng)絡101??蛻魴C105-107和服務器102-103可以用各種計 算設備來代表,例如大型機、個人計算機、個人數(shù)字助理(pda)等。分 布式數(shù)據(jù)處理系統(tǒng)100可以包括未示出的額外的服務器、客戶機、路由 器、其它設備、以及對等體系結(jié)構(gòu)。
在所示的示例中,分布式數(shù)據(jù)處理系統(tǒng)100可以包括因特網(wǎng),使用 網(wǎng)絡101代表使用各種協(xié)議彼此進行通信的網(wǎng)絡和網(wǎng)關的環(huán)球集合,這 些協(xié)議比如包括ldap(輕量級目錄接入?yún)f(xié)議)、tcp/ip(傳輸控制協(xié)議/ 因特網(wǎng)協(xié)議)、http(超文本傳輸協(xié)議)等。當然,分布式數(shù)據(jù)處理系統(tǒng) 100也可以包括各種不同類型的網(wǎng)絡,比如內(nèi)部網(wǎng)、局域網(wǎng)(lan)、或 廣域網(wǎng)(wan).例如,服務器102直接支持客戶機109和網(wǎng)絡110,其 結(jié)合有無線通信鏈路。網(wǎng)絡電話111通過無線鏈路112連接到網(wǎng)絡 110,并且PDA 113通過無線鏈路114連接到網(wǎng)絡110。電話111和 PDA 113也可以使用適當?shù)募夹g(shù)比如藍牙無線技術(shù)通過無線鏈路115在 它們之間直接傳輸數(shù)據(jù),以創(chuàng)建所謂的個人區(qū)域網(wǎng)或個人專用網(wǎng)。以類 似的方式,PDA 113可以通過無線通信鏈路116傳輸數(shù)據(jù)給PDA 107。
本發(fā)明可以在各種硬件平臺和軟件環(huán)境下實施。圖1A僅僅作為異 機種的計算環(huán)境的一個實例,并不用作本發(fā)明的體系結(jié)構(gòu)限制。
現(xiàn)在參照圖IB,示出可以實施本發(fā)明的如圖IA所示的那些數(shù)據(jù)處 理系統(tǒng)的典型計算機體系結(jié)構(gòu)。數(shù)據(jù)處理系統(tǒng)120包含一個或多個連接 到內(nèi)部系統(tǒng)總線123的中央處理單元(CPU)122,系統(tǒng)總線123互連隨機 存取存儲器(RAM)124、只讀存儲器126、以及支持各種I/O設^(諸如 打印機130、盤單元132或比如音頻輸出系統(tǒng)的未示出的其它設備)的輸 A/輸出適配器128。系統(tǒng)總線123還連接通信適配器134,用以提供到 通信鏈路136的訪問。用戶接口適配器148連接各種用戶設備,比如鍵 盤140和鼠標142、或其它未示出的i殳備比如觸摸屏、指示筆、麥克風 等。顯示適配器144將系統(tǒng)總線123連接到顯示設備146。
本領域的技術(shù)人員應該理解圖IB所示的硬件可以根據(jù)系統(tǒng)的實施 而相應變化。例如,系統(tǒng)可以具有一個或多個處理器(比如基于Intel Pentium的處理器以及數(shù)字信號處理器(DSP))、以及一種或多種類型的 易失性和非易失性存儲器。除了圖IB所示的硬件,也可以使用其它外 圍設備或者用來替換圖IB所示的硬件。所示的實例并不意味著對本發(fā) 明的體系結(jié)構(gòu)限制。
除了能夠在各種硬件平臺上實施之外,本發(fā)明也可以在各種軟件環(huán) 境中實施。典型的操作系統(tǒng)可以用來控制在每一個數(shù)據(jù)處理系統(tǒng)內(nèi)的程 序執(zhí)行。例如, 一個設備可以運行Unix操作系統(tǒng),而另一個設備包含 簡單Java運行時間環(huán)境。代表性的計算機平臺可以包括瀏覽器,用于 訪問各種格式,比如圖形文件、字處理文件、可擴展標記語言(XML)、 超文本標記語言(HTML)、手持設備標記語言(HDML)、無線標記語言 (WML),以及其它各種文件格式和類型的超文本文檔的公知軟件應用 程序。應該指出的是,圖1A所示的分布式數(shù)據(jù)處理系統(tǒng)完全能夠支持
各種對等子網(wǎng)和對等服務。
給出一些當前技術(shù)的上面的簡要描述之后,下面剩余附圖的描述將 涉及能夠運行本發(fā)明的聯(lián)合計算環(huán)境。但是,在詳細討論本發(fā)明之前, 首先引入一些技術(shù)術(shù)語。
技術(shù)術(shù)語
術(shù)語"實體(entity)"或"方(party)"—般地指組織、個體或系統(tǒng),代表 組織、個體或其它系統(tǒng)來運行。術(shù)語"域(domain)"意味著網(wǎng)絡環(huán)境內(nèi)額 外的特征,不過術(shù)語"實體"、"方"和"域"能夠可互換地使用。例如,術(shù) 語"域"也可以指DNS(域名系統(tǒng))域,或者更具體地指包括對于外部實體 顯現(xiàn)為邏輯單元的各種設備和應用的數(shù)據(jù)處理系統(tǒng)。
術(shù)語"請求(request)"和"響應(response)"應該理解為包括適宜涉及特 定操作的信息,比如消息、通信協(xié)議信息或其它相關信息的傳輸?shù)臄?shù)據(jù) 格式。受保護的資源是對其訪問受到控制或限制的資源(應用、對象、 文檔、頁面、文件、可執(zhí)行代碼、或其它計算資源、通信類型的資源等 等)。
令牌提供成功操作的直接證據(jù)并且由執(zhí)行該操作的實體產(chǎn)生,例如 在成功認證操作之后生成的認證令牌。Kerberos令牌是可以在本發(fā)明中 使用的認證令牌的一個具體實例。關于Kerberos的更多信息可以在 Kohl等的"The Kerberos Network Authentication Service (V5)", Internet Engineering Task Force (IETF) Request for Comments (RFC) 1510, 09/1993中查找。
斷言提供某些動作的間接證據(jù)。斷言可以提供標識、認證、屬性、 授權(quán)決策、或者其它信息和/或操作的間接證據(jù)。認證斷言提供通過不 是認證服務而是收聽認證服務的實體認證的間接證據(jù)。
安全斷言標記語言(SAML)斷言是可以在本發(fā)明中使用的可能的斷 言格式的一個例子。SAML由非贏利性的全球社團"結(jié)構(gòu)化信息標準發(fā) 展組織(OASIS , Organization for the Advancement of Structure Information Standards)"發(fā)布.在"Assertions and Protocol for the OASIS Security Assertion Markup Language (SAML)" , Committee
Specification 01, 05/31/2002中SAML被描述如下
安全斷言標記語言(SAML)是用于交換安全信息的基于XML的框 架。該安全信息以關于主體的斷言的形式表達,其中主體是在某些安全 域中具有標識的實體(人或者計算機)。主體的典型例子是通過他或她的 特定因特網(wǎng)DNS域中的電子郵件地址標識的人.斷言可以傳達關于主 體執(zhí)行的認證動作的信息、主體的屬性、以及關于是否允許主體訪問特 定資源的認證決策。斷言表示為XML構(gòu)造并且具有嵌套結(jié)構(gòu),從而單 個斷言可能包含關于認證、授權(quán)和屬性的數(shù)個不同的內(nèi)部語句。注意包 含認證語句的斷言僅僅描述先前發(fā)生的認證的動作。斷言通過SAML 授權(quán)局,即認ii^權(quán)局、屬性授權(quán)局和策略決策點來發(fā)布。SAML定義 通過其客戶機能夠向SAML授權(quán)局請求斷言并且從中得到響應的協(xié) 議。該協(xié)議包括基于XML的請求和響應消息格式,可以綁定到許多不 同的底層通信和傳輸協(xié)議;SAML當前定義一種綁定,通過HTTP到 SOAP。 SAML授權(quán)局在創(chuàng)建響應時可以使用各種不同的信息資源,比 如作為請求中的輸入所接收的外部策略庫和斷言。因此,雖然客戶機總 是消耗斷言,但是SAML授權(quán)局可以是斷言的生產(chǎn)者和消耗者二者。
SAML規(guī)范聲明斷言是提供發(fā)布者作出的一個或多個語句的信息 包。SAML允許發(fā)布者作出三種不同類型的斷言語句i人證,其中指定 的主體通過特定的方式在特定的時間進^i人證;授權(quán),其中允許指定的 主體訪問指定的資源的請求已經(jīng)被授權(quán)或拒絕;以及屬性,其中將指定
的主體與所供應的屬性相關聯(lián)。如下文中將進一步討論的,需要時可以 將各種斷言格式翻譯成其它斷言格式。
認證是驗證由用戶提供或者代表用戶提供的一組證書的過程。認證 通過證實用戶知道某事、用戶具有某物、或者用戶是某人,即關于用戶 的某些物理特征來實現(xiàn)。用戶知道的某事可以包括共享的秘密,比如用 戶口令,或者通過證實僅被特定用戶知道的某物,例如用戶的加密密 鑰。用戶具有的某物可以包括智能卡或硬件令牌。關于用戶的某些物理 特征可以包括生物測量輸入,例如指紋或視網(wǎng)膜地圖,應該指出的是, 用戶通常是但不一定必須是自然人,用戶可以是機器、計算設備、或使
用計算資源的其它類型的數(shù)據(jù)處理系統(tǒng)。還應該指出的是,用戶通常擁
有但不一定必須擁有單個唯一的標識符;在某些場境下,多個唯一的標
識符可以與單個用戶相關聯(lián)。
認證證書是用在各種認證協(xié)議中的一組詢問/響應信息。例如,用戶
名和口令組合是認證證書的最熟知形式。認證證書的其它形式可以包括 各種形式的詢問/響應信息,公共密鑰基礎設施(PKI)證明、智能卡、生 物測量等。認證證書與認證斷言不同認證證書作為認證協(xié)議序列的一 部分由用戶呈現(xiàn)給認證服務器或服務,而認證斷言是關于成功呈現(xiàn)和驗 證用戶的認證證書的語句、并且隨后如果需要則在實體之間傳輸。 用于能夠結(jié)合本發(fā)明的計算環(huán)境的聯(lián)盟模型
在環(huán)球網(wǎng)的語境中,用戶期望關于最小的每一個特定域之間的信息 屏障、而從與一個因特網(wǎng)域上的應用的交互跳躍到另一個域上的另一個 應用的能力。用戶不希望針對單個事務必須在多個域上iUi所造成的受 挫。換句話說,用戶期望組織應該相互協(xié)作,但是用戶通常希望域尊重 他們的隱私。另外,用戶可能更喜歡限制永久存儲私有信息的域。這些 用戶期望在快速t艮的、許多企業(yè)和組織爭相發(fā)布竟爭認證技術(shù)的異質(zhì) 結(jié)構(gòu)環(huán)境中大量存在,
本發(fā)明在允許企業(yè)為用戶提供單點登錄體驗的聯(lián)盟模型內(nèi)得到支 持。換句話說,本發(fā)明可以在聯(lián)合的、異質(zhì)結(jié)構(gòu)的環(huán)境中實施。作為將 受益于聯(lián)合的異質(zhì)結(jié)構(gòu)環(huán)境的事務的例子,用戶能夠在一個域中認證, 然后該域提供恰當?shù)臄嘌越o事務中可能涉及的每一個下游域。這些下游 域需要能夠理解并信任認證斷言和/或其它類型的斷言,即使在該域和 這些下游域之間沒有預先建立的斷言格式。除了識別斷言之外,下游域 需要能夠?qū)跀嘌詢?nèi)的標識翻譯成代表特定域內(nèi)的用戶的標識,即 使不存在預先建立的標識映射關系。
本發(fā)明在聯(lián)合的環(huán)境中得到支持。 一般而言,企業(yè)具有其自己的用 戶登記并維持與其自己的用戶組之間的關系,每一個企業(yè)典型地具有其 自己的方式來認證這些用戶.但是,在本發(fā)明中使用的聯(lián)合方案允許企 業(yè)以集體的方式相互協(xié)作,使得一個企業(yè)中的用戶能夠通過企業(yè)參與企
業(yè)聯(lián)盟而影響(leverage)與一組企業(yè)的關系。用戶被授權(quán)訪問聯(lián)合的企業(yè) 的任何資源,就如同他們已經(jīng)具有與每一個企業(yè)的直接關系。用戶不需 要在感興趣的每一個商業(yè)上進行登記,并且用戶不需要經(jīng)常地標識和認 證他們自己。因此,在該聯(lián)合的環(huán)境中,認證方案允許在信息技術(shù)領域 快itiU艮的異質(zhì)結(jié)構(gòu)環(huán)境中進行單點登錄體驗。
在本發(fā)明的上下文中,聯(lián)盟是一組相互協(xié)作以為用戶提供單點登 錄、輕木>體驗的獨特的實體,比如企業(yè),企業(yè)內(nèi)的邏輯單元、組織、機 構(gòu)等;聯(lián)合環(huán)境不同于典型的單點登錄環(huán)境之處在于兩個企業(yè)不必具有 限定如何傳輸和傳輸哪些有關用戶的信息的直接的、預先建立的關系。 在聯(lián)合環(huán)境內(nèi),實體提供處理認證用戶、接受由其它實體呈現(xiàn)的認證斷 言例如認證令牌、以及提供某些形式的將擔保用戶的標識翻譯成本地實 體內(nèi)能夠理解的標識的服務。
聯(lián)盟使得服務提供商的管理負擔得以減輕。服務提供商可以依賴其 對于作為整體的聯(lián)合的信任關系;服務提供商不需要管理認證信息,比 如用戶口令信息,因為可以依賴由用戶的認證主域或標識提供商實現(xiàn)的 認證。
支持本發(fā)明的系統(tǒng)也關注聯(lián)合標識管理系統(tǒng),其建立其中松散聯(lián)合 認證、用戶登記、用戶簡檔管理和/或授權(quán)服務跨安全域合作的基礎。 即使在這些全異域的底層安全機制和操作系統(tǒng)平臺中可能存在差異,聯(lián) 合標識管理使得駐留在全異安全域中的服務也能夠安全地互操作和合 作。
標識提供商vs.服務提供商
如上文中提到的以及下面將進一步說明的,聯(lián)合環(huán)境提供顯著的用 戶優(yōu)越性。聯(lián)合環(huán)境允許用戶在第一實體進^i人證,第一實體可以擔當 發(fā)布有關用戶在笫二實體使用的認證斷言的發(fā)布方,然后用戶通過呈現(xiàn) 由第一實體發(fā)布的認證斷言可以訪問在第二、獨特的實體(稱作依賴方)
處的受保護的資源,而無需明確地在第二實體進行重新認證。AUL布方 傳遞g賴方的信息是斷言的形式,并且該斷言可以包含語句形式的不 同類型的信息.例如,斷言可以是關于用戶的認證標識的語句,或者可
以是關于與特定用戶相關的用戶屬性信息的語句。此外,該信息可以由 依賴方使用,以根據(jù)依賴方的訪問控制規(guī)則、標識映射規(guī)則、以及由依 賴方保持的可能的某些用戶屬性提供對依賴方的資源的訪問。
現(xiàn)在參照圖2,示出說明針對由用戶對第一聯(lián)合企業(yè)發(fā)起的事務的 聯(lián)合環(huán)境的術(shù)語的方框圖,第一聯(lián)合企業(yè)在響應中調(diào)用聯(lián)合環(huán)境內(nèi)下游 實體處的動作。圖2表示對于給定的聯(lián)合操作術(shù)語可能根據(jù)聯(lián)盟內(nèi)實體 的全景(perspective)而不同。更具體地說,圖2表明支持本發(fā)明的計算 環(huán)境支持信任的傳遞和認證斷言過程的傳遞;域或?qū)嶓w可以根據(jù)在由其 它域或其它實體斷言的實體中的信任發(fā)布斷言。
用戶202通過請求企業(yè)204的受保護的資源而發(fā)起事務。如果用戶 已經(jīng)由企業(yè)204認證或者在事務期間最終會被企業(yè)204認證,則對于該 聯(lián)合的會話可以將企業(yè)204稱作用戶的主域。假定事務需要通過企業(yè) 206的某類型的^作并且企業(yè)204傳輸斷言給企業(yè)206,則對于該特定 操作企業(yè)204是義布實體,而對于該操作企業(yè)206是依賴實體。
發(fā)布實體發(fā)布由依賴域使用的斷言;發(fā)布實體通常是但是不一定必
須是用戶的主域或用戶的標識提供商。因此,通常l義布方已經(jīng)使用典
型的認證操作認證了用戶的情形。但是,也有可能是發(fā)布方先前作為依
賴方而從不同的發(fā)布方收到斷言。換句話說,由于用戶發(fā)起的事務可能
會通過聯(lián)合環(huán)境內(nèi)的一系列企業(yè)而級聯(lián),因此接收方接下來可能會作為
下游事務的發(fā)布方??偠灾?,具有代表用戶發(fā)布iUit斷言能力的任何 實體都可以擔當發(fā)布實體。
依賴實體是從發(fā)布實體接收斷言的實體。依賴方能夠接受、信任并 且理解由第三方,即發(fā)布實體代表用戶發(fā)布的斷言;通常依賴實體的任 務是使用恰當?shù)恼J證授^解#^證斷言。依賴方是依賴于代表用戶呈 現(xiàn)的斷言或其它實體的實體。以這種方式,能夠在依賴實體給予用戶單 點登錄體驗,而不需JH^賴實體針對用戶的認證證書而提醒用戶作為與 用戶的交互式會活的一部分。
再次參照圖2,假定事務需要進一步的操作使得企業(yè)206傳輸斷言 給企業(yè)208,那么針對隨后的或下一級事務操作企業(yè)206是擔當發(fā)布實
體的上游實體,而對于該操作企業(yè)208是擔當依賴實體的下游實體;在 這種情況下,對于初始的事務可以將企業(yè)208看作另一個下游實體,盡 管也可以僅針對兩個實體來描述隨后的事務。
如圖2所示,聯(lián)合實體可以擔當用戶的主域,其提供關于聯(lián)合用戶 的標識信息和屬性信息。聯(lián)合計算環(huán)境內(nèi)提供標識信息、標識或認證斷 言、或者標識服務的實體稱作標識提供商。同一聯(lián)盟內(nèi)的其它實體或聯(lián) 盟伙伴可以依賴于標識提供商進行用戶的認證證書的主要管理,例如接 受由用戶的標識提供商提供的單點登錄令牌;對用戶進行認證的域可以 稱作用戶的(認證)主域。標識提供商物理上可以由用戶的雇主、用戶的 ISP、或者某些其它的商業(yè)實體支持。
標識提供商AA特定類型的服務,其提供標識信息作為對聯(lián)合計算 環(huán)境內(nèi)其它實體的服務。對于大多數(shù)聯(lián)合事務,對于認證斷言的發(fā)布方 通常是標識提供商;任何其它的實體可以從標識提供商區(qū)別出來。聯(lián)合 計算環(huán)境內(nèi)提供服務的任何其它的實體可以歸類為服務提供商。 一旦用 戶已經(jīng)進行了到標識提供商的認證,對于給定聯(lián)合會話或給定聯(lián)合事務 期間,聯(lián)盟內(nèi)的其它實體或企業(yè)可以僅被看作服務提供商。
在一些情形下,聯(lián)合環(huán)境內(nèi)可以存在針對用戶擔當標識提供商的多 個實體。例如,用戶可以在多個聯(lián)合域內(nèi)具有賬戶,每一個域都能夠擔 當針對用戶的標識提供商;這些域不一定必須具有關于其它域的信息, 也不一定必須具有關于不同域中用戶的標識的信息。
盡管聯(lián)合環(huán)境內(nèi)可能存在擔當標識提供商的多個企業(yè),例如由于存 在具有生成和mi用戶的認證證書等能力的多個企業(yè),但是聯(lián)合事務通 常僅涉及單個標識提供商。如果僅有單個能夠認證用戶的聯(lián)合實體,例 如由于聯(lián)盟內(nèi)存在一個并且僅存在一個用戶已經(jīng)與其執(zhí)行了聯(lián)合登記或 注冊操作的實體,那么將期望該實體擔當用戶的標識提供商,以便貫穿 聯(lián)合環(huán)境支持用戶的事務。
在需要多個服務提供商的相互協(xié)作的某些聯(lián)合事務內(nèi),下游服務提 供商可以從上游服務提供商接受斷言;其中上游服務提供商可以作為正 在用作依賴方的下游服務提供商的發(fā)布實體的條件取決于服務提供商之
間的信任關系的類型和服務提供商之間的事務的類型。但是,在簡單聯(lián) 合事務的范圍內(nèi),僅有一個實體用作發(fā)布實體。
本發(fā)明可以在給定計算環(huán)境內(nèi)得到支持,其中可以將聯(lián)合的基礎設 施添加到現(xiàn)有系統(tǒng)中,而同時最小化對現(xiàn)有的非聯(lián)合體系結(jié)構(gòu)的影響, 因此,在任何給定企業(yè)或服務提供商的包^i人證操作的操作不一定必須 隨著實體也可以參與聯(lián)合環(huán)境這一事實而改變。換句話說,即使實體的 計算系統(tǒng)可能會集成到聯(lián)合環(huán)境中,但是用戶仍然可以以非聯(lián)合的方式 直接與企業(yè)執(zhí)行包括認證操作的各種操作。但是,用戶可以具有相同的 終端用戶體驗,而同時執(zhí)行針對給定實體的聯(lián)合操作,就象用戶已經(jīng)以 非聯(lián)合的方式與給定實體執(zhí)行了類似的操作。因此,應該指出的是,在 給定企業(yè)參與聯(lián)盟時,不是所有的給定企業(yè)的用戶都必須參與聯(lián)合事
務;企業(yè)的一些用戶可以與企業(yè)的計算系統(tǒng)交互而不執(zhí)行任何聯(lián)合事 務。
此外,給定企業(yè)的計算環(huán)境內(nèi)的用戶注冊,例如在計算機系統(tǒng)中建 立用戶賬戶,不一定必須隨著企業(yè)可能參與聯(lián)合環(huán)境這一事實而改變。 例如,用戶仍然可以通過獨立于聯(lián)合環(huán)境的遺留或現(xiàn)存注冊過程在域內(nèi) 建立賬戶。因此,在某些情況下,當企業(yè)參與到聯(lián)合計算環(huán)境時,在企 業(yè)內(nèi)用戶賬戶的建立可以包括也可以不包括在聯(lián)盟內(nèi)有效的賬戶信息的 建立。
聯(lián)合體系結(jié)構(gòu)-針對遺留系統(tǒng)的聯(lián)盟前端
現(xiàn)在參照圖3,示出在給定域現(xiàn)存數(shù)據(jù)處理系統(tǒng)與可以用來支持本 發(fā)明實施例的某些聯(lián)合體系結(jié)構(gòu)組件的集成的方框圖。聯(lián)合環(huán)境包括為 用戶提供各種服務的聯(lián)合實體。用戶312與能夠支持瀏覽器應用316和 各種其它客戶機應用318的客戶機314交互。用戶312與客戶機設備 314、瀏覽器316、或用作用戶與其它設備和服務的接口的任何其它軟件 不同。在某些情況下,下面的描述將對明顯在客戶機應用中動作的用戶 和代表用戶動作的客戶機應用加以區(qū)分。然而,通常請求者是可以假定 為代表用戶動作的媒介,例如基于客戶機的應用、瀏覽器、SOAP客戶 機等。
瀏覽器應用316可以是典型的瀏覽器,包括在移動設備上建立的那 些,瀏覽器應用316包括許多模塊,比如HTTP通信組件320和標記語 言(ML)解釋器322。瀏覽器應用316也可以支持插件,比如網(wǎng)絡服務客 戶機324和/或可下載的小程序,其可能需要或不需要虛擬機運行時間 環(huán)境。網(wǎng)絡服務客戶機324可以使用簡單對象接入?yún)f(xié)議(SOAP),其是 一種用于在M、分布式環(huán)境中定義結(jié)構(gòu)化和分類型的信息的交換的輕 量級協(xié)議。SOAP是基于XML的協(xié)議,包括三個部分信封,定義用 于描述消息中有什么和如何處理的框架; 一組編碼規(guī)則,用于表達應用 限定的數(shù)據(jù)類型的實例;以及協(xié)定,用于表示遠程例程調(diào)用和響應。用 戶312可以使用瀏覽器應用316訪問基于網(wǎng)絡的服務,但是用戶312也 可以通it^l戶機設備314上的其它網(wǎng)絡服務客戶機訪問網(wǎng)絡服務。 一些 聯(lián)合操作可以通過用戶瀏覽器使用HTTP重定向,以在聯(lián)合環(huán)境中的實 體之間交換信息。但是,應該指出的是,本發(fā)明可以在各種通信協(xié)議上 得到支持,并不限于基于HTTP的通信。例如,如果必要聯(lián)合環(huán)境中的 實體可以直接進行通信;消息不一定必須通過用戶的瀏覽器進行重定 向。
本發(fā)明可以以聯(lián)合環(huán)境所需要的組件能夠與現(xiàn)存系統(tǒng)集成的方式得 到支持。圖3示出將這些組件實施為現(xiàn)存系統(tǒng)的前端的一個實施例。聯(lián) 合域的現(xiàn)存組件可以看作遺留應用或后端處理組件330,包括認證服務 運行時間(ASR)服務器332,與圖4所示的方式類似。在域控制對應用 服務器334的訪問時,ASR服務器332負責認證用戶,其可以考慮為生 成、檢索、或者否則而支持或處理受保護的資源335。域可以繼續(xù)使用 遺留用戶注冊應用336以便注冊訪問應用服務器334的用戶。針對遺留 操作認證注冊的用戶所需要的信息存儲在企業(yè)用戶注冊簿338中;企業(yè) 用戶注冊簿338也可以被聯(lián)合組件訪問。
在加入聯(lián)合環(huán)境之后,域可以繼續(xù)操作而沒有聯(lián)合組件的干擾。換 句話說,可以配置域使得用戶可以繼續(xù)直接訪問特定的應用服務器或其 它受保護的資源,而不通過接觸點(point-of-contact)服務器或?qū)嵤┰摻?觸點服務器功能的其它組件;以這種方式訪問系統(tǒng)的用戶將體驗典型的
認證流和典型的訪問。但是,如此作,直接訪問遺留系統(tǒng)的用戶將不能 建立域的接觸點服務器知曉的聯(lián)合會話。
通過使用聯(lián)盟前端處理340可以將域的遺留功能集成到聯(lián)合環(huán)境, 聯(lián)盟前端處理340包括接觸點服務器342和自身與安全令牌服務 (STS)346交互的信任代理服務器344(或更簡單地,信任代理344或信 任服務344),這將在下文中結(jié)合附圖4進行詳細描述。聯(lián)盟配置應用 348允許管理用戶配置聯(lián)盟前端組件,以使他們通過聯(lián)盟接口單元350 與遺留后端組件相接。聯(lián)合功能可以在獨立的系統(tǒng)組件或模塊中實施。 在優(yōu)選實施例中,多數(shù)執(zhí)行聯(lián)盟操作的功能可以通過單個聯(lián)盟應用內(nèi)的 邏輯組件集合來實施;聯(lián)合用戶生命周期管理應用352包括信任服務 344連同單點登錄協(xié)議服務(SPS)354。信任服務344可以包括標識和屬 性服務(IAS)356,負責作為部分聯(lián)盟功能的標識映射操作、屬性檢索 等。標識和屬性服務356在單點登錄期間也可以由單點登錄協(xié)議服務 354使用。在某些環(huán)境下聯(lián)盟用戶注冊358可以用來保持與用戶相關的 信息用以聯(lián)盟特定目的。
在給定企業(yè)的遺留或現(xiàn)有認證服務可以使用各種公知的認證方法或 令牌,比如用戶名/口令或基于智能卡令牌的信息。但是,在支持本發(fā) 明的優(yōu)選聯(lián)合計算系統(tǒng)中,通過使用接觸點服務器遺留認證服務的功能 可以在聯(lián)合環(huán)境中使用。用戶可以繼續(xù)直接訪問遺留認證服務器而不用 通過接觸點服務器,盡管以這種方式訪問系統(tǒng)的用戶將經(jīng)歷典型的認證 流和典型的訪問;根據(jù)本發(fā)明,直接訪問遺留認證系統(tǒng)的用戶將不可能 生成聯(lián)合認證斷言作為標識證據(jù)。聯(lián)盟前端的 一個規(guī)則是將在接觸點服 務器接收的聯(lián)合認證令牌翻譯成由遺留認證服務理解的格式。因此,通 過接觸點服務器訪問聯(lián)合環(huán)境的用戶將不需要對遺留認證服務進行重新 認證。優(yōu)選地,用戶將通過接觸點服務器和信任代理的組合被遺留認證 服務進^i人證,使得就象用戶參加到認證對話一樣。
聯(lián)合體系結(jié)構(gòu)-雀觸點服務器、信任代理和信任經(jīng)紀
現(xiàn)在參考圖4,示出其中聯(lián)合體系結(jié)構(gòu)內(nèi)的一些組件可以用來建立 信任關系以支持本發(fā)明的實施的示例方式的方框圖。^i合環(huán)境包括為用
戶提供各種服務的聯(lián)合企業(yè)或類似實體。用戶通it^:戶端設備上的應用 可以嘗試訪問不同實體例如企業(yè)410的資源。每一個聯(lián)合企業(yè)處的接觸 點服務器,比如企業(yè)410的接觸點(POC)服務器412是到聯(lián)合環(huán)境的進 入點,用于從客戶端請求訪問企業(yè)410支持并且使其可用的資源。接觸 點服務器使得對現(xiàn)有、非聯(lián)合體系結(jié)構(gòu)例如遺留系統(tǒng)內(nèi)的現(xiàn)有組件的影 響最小化,因為接觸點服務器處理大量的聯(lián)盟要求。接觸點服務器提供 會話管理、協(xié)議轉(zhuǎn)換,并且可能發(fā)起認證和/或?qū)傩詳嘌赞D(zhuǎn)換。例如, 接觸點服務器可以將HTTP或HTTPS消息翻譯成SOAP,反之亦然。 如在下面將進一步解釋的,接觸點服務器也可以用來調(diào)用信任代理來翻 譯斷言,例如,可以將從發(fā)布方接收的SAML令牌翻譯成接收方能夠 理解的Kerberos令牌。
信任服務(也稱作信任代理,信任代理服務器或信任服務),比如企 業(yè)410的信任代理(TP)414建立并保持聯(lián)盟內(nèi)兩個實體之間的信任關 系。信任服務通常具有處理認證令牌格式翻譯的能力(通過下文中將詳 細描述的安全令牌服務),從發(fā)布方使用的格式翻譯成接收方能夠理解 的格式。
同時使用接觸點服務器和信任服務使得在現(xiàn)有、非聯(lián)合系統(tǒng)組上實 施聯(lián)合體系結(jié)構(gòu)的影響最小化。因此,示例聯(lián)合體系結(jié)構(gòu)需要爭一個聯(lián) 合實體實施至少一個接觸點服務器和至少一個信任服務,而不管實體是
企業(yè)、域還是其它邏輯或物理實體。但是示例聯(lián)合體系結(jié)構(gòu)不一定必須 對現(xiàn)有、非聯(lián)合系統(tǒng)組進行任何改變。優(yōu)選地,對于給定聯(lián)合實體采用 單個信任服務,雖然為了實用性可能存在多種信任服務實例,或者對于 聯(lián)合實體內(nèi)的多個更小實體例如企業(yè)內(nèi)的獨立子/>司可能存在多個信任
服務。有可能給定實體屬于多于一個聯(lián)盟,但是該場境不一定必須要求 多個信任服務,由于單個信任服務能夠用于管理多個聯(lián)盟內(nèi)的信任關 系。
信任服務的一個任務是確定或負責確定另 一個域和/或該域中的信任 服務所需的令牌類型。信任服務具有處理認證令牌格式翻譯的能力或責 任,從發(fā)布方使用的格式翻譯成接收方能夠理解的格式。信任服務414 也可以負責針對企業(yè)410發(fā)生的任意用戶標識翻譯或?qū)傩苑g,或者該 責任可以由獨立的標識和屬性服務支持,例如圖3所示的標識和屬性月艮 務356。另外,信任服務能夠支持將別名實施為用于無需提供任何有關 用戶的真實世界標識的附加信息而唯一地識別用戶的用戶標識的代表。 此外,信任代理可以發(fā)布由接觸點服務器使用的授權(quán)和/或會話證書。 但是,如下文中描述的,信任服務可以調(diào)用信任經(jīng)紀來輔助。標識翻譯 可能需要將發(fā)布方已知的用戶的標識和屬性映射為對于接收方有意義的 標識和屬性。該翻譯可以由發(fā)布實體的信任服務或接收實體的信任服務 來調(diào)用,也可以二者都調(diào)用。
上面提到的信任服務414獨立的標識和屬性服務可以包括示為安全 令牌服務(STS)組件416的內(nèi)部化的組件(或者與其交互),安全令牌服務 組件416提^4^牌翻譯并調(diào)用認證服務運行時間(ASR)418來驗證和生 成令牌。安全令牌服務提供信任服務所需的令牌發(fā)布和化£服務,可能 包括標識翻譯。因此,安全令牌服務包括與現(xiàn)有認證服務運行時間的接 口,或者將認證服務運行時間結(jié)合到服務自身。除了包括在信任服務內(nèi) 部之外,安全令牌服務組件也可以實施為例如由信任服務調(diào)用的單獨的 組件,或者也可以包括在例如作為應用服務器的一部分的事務服務器之 內(nèi)。
例如,安全令牌服務組件可以接收請求以發(fā)布Kerberos令牌。作
為為其創(chuàng)建令牌的用戶的iUi信息的一部分,該請求可以包含含有用戶 名和口令的二進制令牌。安全令牌服務組件將對照例如LDAP運行時間
(典型地認證)*遮用戶名和口令并調(diào)用Kerberos KDC(密鑰分發(fā)中心)以
便為該用戶生成Kerberos票據(jù)。該令牌返回給信任服務以便在企業(yè)內(nèi)
部使用;但是該使用可以包括使令牌外部化,用于傳遞給聯(lián)盟內(nèi)的另一個域。
用戶可能期望訪問聯(lián)合環(huán)境內(nèi)的多個企業(yè)例如企業(yè)410和企業(yè)420 的資源。以類似于上面針對企業(yè)410所描述的方式,企業(yè)420包括接觸 點服務器422、信任服務424、安全令牌服務(STS)426、認證服務運行 時間428。盡管用戶可以直接^與每一個企業(yè)的獨立事務,但是用戶
也可以J^通過聯(lián)合環(huán)境級聯(lián)的、與企業(yè)410的事務。企業(yè)410可能需 要與聯(lián)合環(huán)境內(nèi)的多個其它企業(yè)比如企業(yè)420相互協(xié)作,以便完成具體 的事務,即使當用戶發(fā)起事務時用戶可能對該必要性毫無知覺。企業(yè) 420變?yōu)橄掠螌嶓w,如果必要企業(yè)410可以呈現(xiàn)斷言給企業(yè)420,以便 繼續(xù)用戶的聯(lián)合事務。
可能會出現(xiàn)信任服務不知道如何解釋由關聯(lián)的接觸點服務器接收的 認證令牌和/或不知道如何翻譯給定用戶的標識和屬性的情況。在這種 情況下,信任服務可以選擇調(diào)用信任經(jīng)紀組件比如信任經(jīng)紀430的功 能。信任經(jīng)紀保持與單獨的信任代理/服務的關系,從而提供信任服務 之間的可遞信任。使用信任經(jīng)紀使得聯(lián)合環(huán)境內(nèi)的每一個實體比如企業(yè) 410和420能夠建立與信任經(jīng)紀的信任關系,而不是建立與聯(lián)合環(huán)境內(nèi) 的每一個實體的多個單獨的信任關系。例如,針對用戶在企業(yè)410發(fā)起 的事務當企業(yè)420變?yōu)橄掠螌嶓w時,如果必要,企業(yè)410的信任服務 414通過調(diào)用信任經(jīng)紀430的輔助能夠確保企業(yè)420的信任服務424理 解來自信任服務414的斷言。盡管圖4示出聯(lián)合環(huán)境具有單個信任經(jīng) 紀,但是聯(lián)合環(huán)境可以具有多個信任經(jīng)紀。
應該指出的是,盡管圖4將接觸點服務器412、信任服務414、安 全令牌服務組件416、以及認證服務運行時間418表示為獨立的實體, 但是無需這些組件在分離的組件上實現(xiàn)。例如,可以將這些分離組件的 功能實施為單個的應用、單個物理設備上的應用、或者多個物理設備上 的分布式應用。另外,圖4對一個企業(yè)示出了單個接觸點服務器、單個 信任服務、以及單個安全令牌服務器,但是可替代的配置對于每一個企 業(yè)可以包括多個接觸點服務器、多個信任服務、以及多個安全令牌服務 器。接觸點服務器、信任服務、安全令牌服務、以及其它聯(lián)合實體可以 以各種形式實現(xiàn),例如軟件應用、對象、模塊、軟件庫等等。
信任服務/STS能接受和驗證多種不同的認證證書,包括比如用戶名 和口令組合以及Kerberos票據(jù)的傳統(tǒng)證書、以及包括由笫三方產(chǎn)生的 認證令牌的聯(lián)合認證令牌格式,信任服務/STS可以允許認證令牌的接 受作為在別處認證的證據(jù)。認證令牌由發(fā)布方產(chǎn)生并且用于指示用戶已
經(jīng)針對該發(fā)布方進行了認證。發(fā)布方產(chǎn)生認證令牌作為斷言用戶的認證
標識的一種手段。信任服務/STS也能夠處理屬性令牌或用于安全通信 會話或?qū)υ挼牧钆?,例如用于以類似于SSL會話標識符的方式管理會 話信息的那些令牌。
如果必要,安全令牌服務調(diào)用認證服務運行時間。認證服務運行時 間支持能夠認證用戶的認證服務。認證服務擔當認證授M,通過認證 響應提供成功或失敗認證嘗試的指示。信任服務/STS可以內(nèi)部化認證 服務,例如其中存在不需要與現(xiàn)有遺留基礎設施交互的全新網(wǎng)絡服務的 安裝的場境。否則,安全令牌服務組件將調(diào)用外部認證服務用于驗證認 證令牌。例如,安全令牌服務組件能夠?qū)Π脩裘?口令的令牌進行 解包,然后使用LDAP服務訪問用戶注冊以便!Hi所呈現(xiàn)的證書。
在由諸如應用服務器的其它組件使用時,安全令牌訪問組件能夠用 于產(chǎn)生單點登錄到遺留認證系統(tǒng)所需的令牌;該功能可以與諸如圖3所 示的SPS 354的單點登錄協(xié)議月艮務內(nèi)的功能組合在一起或者由其替代。 因此,安全令牌服務組件能夠用來進行令牌翻譯,用于內(nèi)部目的,即在 企業(yè)內(nèi)部,以及用于外部目的,即跨越聯(lián)盟內(nèi)的企業(yè)。作為內(nèi)部目的的 例子,網(wǎng)絡應用服務器可以通過IBM CICS(客戶信息控制系統(tǒng))事務網(wǎng) 關與主機接口; CICS是提供用于任務評定應用的企業(yè)級在線事務管理 和連通性的一族應用服務器和連接器。網(wǎng)絡應用服務器可以調(diào)用安全令 牌服務組件將Kerberos票據(jù)(由網(wǎng)絡應用服務器內(nèi)部使用)翻譯成CICS 事務網(wǎng)關所需的IBM 1^^^@通行票據(jù)。
圖4中所示的實體可以使用在上面介紹的術(shù)語比如"標識提供商,,和 "服務提供商"來解釋。作為建立和保持信任關系的一部分,標識提供商 的信任服務可以確定服務提供商的信任服務需要/接受哪種令牌類型。 由此,在從安全令牌服務調(diào)用令牌服務時信任服務使用該信息。當需要 標識提供商的信任服務為服務提供商產(chǎn)生認證斷言時,信任服務確定所 需要的令牌類型并從安全令牌服務請求適當?shù)牧钆啤?br>
在服務提供商的信任服務從標識提供商接收認證斷言時,信任服務 知道其期望哪種類型的斷言并知道其需要哪種類型的斷言用于服務提供
商的內(nèi)部使用。服務提供商的信任服務由此根據(jù)所接收到的認證斷言中 的令牌請求安全令牌服務產(chǎn)生所需要的內(nèi)部使用令牌。
成服i提供商能4理^解一的格式的能力:信任"紀:有為每一個與其有直 接信任關系的信任服務解釋斷言格式(或多種格式)的能力,從而允許信 任經(jīng)紀提供標識提供商和服務提供商之間的斷言翻譯。該翻譯可以由任 何一方通過其本地信任服務來請求。因此,標識提供商的信任服務可以 在將斷言發(fā)送到服務提供商之前請求斷言的翻譯。類似地,服務提供商 的信任服務可以請求翻譯從標識提供商所接收的斷言。
斷言翻譯包括用戶標識翻譯、認證斷言翻譯、屬性斷言翻譯、或者 其它形式的斷言翻譯。重復上述各點,斷言翻譯由聯(lián)盟內(nèi)的信任組件例 如信任服務和信任經(jīng)紀來處理。信任服務可以在標識提供商或服務提供 商處本地執(zhí),譯,或者信任服務可以從信任經(jīng)紀調(diào)用輔助功能。
假定標識提供商和服務提供商已經(jīng)具有與信任經(jīng)紀的獨立信任關 系,如果必要信任經(jīng)紀能夠動態(tài)地創(chuàng)建,即經(jīng)紀發(fā)布方和依賴方之間的 新信任關系。在信任經(jīng)紀提供初始信任關系經(jīng)紀操作之后,標識提供商 和服務提供商可以直接保持該關系,以便對于將來的翻i^要求無需再調(diào) 用信任經(jīng)紀。應該指出的是,認證令牌的翻譯可以在三個可能的地方發(fā)
生標識提供商的信任服務、服務提供商的信任服務、以及信任經(jīng)紀。
優(yōu)選地,標識提供商的信任服務生成信任經(jīng)紀能夠理解的認證斷言,以 發(fā)送給服務提供商。然后服務提供商請求將該來自信任經(jīng)紀的令牌翻譯 成服務提供商能夠識別的格式。令牌翻譯可以在認證斷言發(fā)送之前、發(fā) 送之后、或者發(fā)送之前和之后兩者發(fā)生。 聯(lián)合體系結(jié)構(gòu)內(nèi)的信任關系
在能夠支持本發(fā)明的示例聯(lián)合環(huán)境中,必須對兩種類型的"信任域"
進行管理企業(yè)信任域和聯(lián)盟信任域。這兩種類型的信任域之間的區(qū)別 部分基于約束與信任域的信任關系的商業(yè)協(xié)定和用于建立信任的技術(shù)。 企業(yè)信任域包含由企業(yè)管理的那些組件;該信任域內(nèi)的所有組件可以隱 含地彼此相互信任。 一般而言,在企業(yè)內(nèi)不需要商業(yè)協(xié)定來建立信任,
因為配置的技術(shù)創(chuàng)建企業(yè)內(nèi)的內(nèi)在信任,例如通過要求組件之間的相互
認證的SSL會話,或者通過將組件置于單個、嚴格受控的數(shù)據(jù)中心使 得物理控制和接近證實隱含信任。參照圖2B,遺留應用和后端處理系 統(tǒng)可以代表企業(yè)信任域,其中組件在安全的內(nèi)部網(wǎng)上進行通信。
聯(lián)盟信任域是跨越企業(yè)界限的那些域;從一方面來看,聯(lián)盟信任域 可以代表獨立的企業(yè)信任域之間的信任關系。聯(lián)盟信任域通iti^越企業(yè) 界限的信任代理在聯(lián)盟伙伴之間建立。信任關系涉及某些類的自舉 (bootstrap)處理,通過該處理在信任代理之間建立初始信任,部分該自 舉處理可以包括共享的保密密鑰以及定義期望的和/或允許的令牌類型 和標識符翻譯的規(guī)則的建立。 一般而言,該自舉處理可以在帶外(out-of-band)實施,由于該處理也可以包括約束企業(yè)在聯(lián)盟中的參與以及與該 參與相關的責任的商業(yè)協(xié)定的建立。
存在多種可能的機制用于建立聯(lián)合商業(yè)模型中的信任。在聯(lián)盟模型 中,聯(lián)盟參與者之間的信任的基^念對于商業(yè)動機是必須的,以便提 供在參與者之間傳送的斷言(包括令牌和屬性信息)是有效的保證級別。 如果沒有信任關系,那么服務提供商不能依賴于從標識提供商所接收的
何信息。 、、 " r 、、
例如, 一個大公司可能想鏈接數(shù)千個全#戶,并且該公司可以使 用非聯(lián)合的解決方案。作為第一個例子,該公司可以要求全^戶使用 來自商業(yè)證書授權(quán)局的數(shù)字證書來建立相互信任。商業(yè)證書授^使得 該公司的服務器信任位于每一個全球客戶處的服務器。作為第二個例 子,該公司可以使用Kerberos實施第三方信任;該公司及其全^1戶 可以實施受到信任的笫三方Kerberos域服務,執(zhí)行基于共享密鑰的信 任。作為第三個例子,該公司可以使用被其全球客戶的服務器互相信任 的專有安全消息令牌來建立專有方案。
如果該公司需要管理與較少全^:戶的信任關系,這些方案的任何
一種都是可接受的,但是如果存在數(shù)百或數(shù)千個潛在的聯(lián)盟伙伴,這可 能會變得難以管理。例如,雖然公司可以強迫其少數(shù)伙伴實施專有方
案,但是該公司不大可能對其大量伙伴強加許多要求。
企業(yè)可以使用通過信任代理以及可能通過信任經(jīng)紀所建立和保持的
信任關系。在圖中所示的示例聯(lián)合體系結(jié)構(gòu)的優(yōu)點是它不會對企業(yè)的當
前基礎設施及其潛在的聯(lián)盟伙伴強加額外的要求。
但是,該示例聯(lián)盟體系結(jié)構(gòu)不會減輕企業(yè)及其潛在聯(lián)盟伙伴建立參
與聯(lián)盟要求的商業(yè)和責任協(xié)定所需的初步工作。另外,參與者不能忽略
信任關系的技術(shù)自舉。示例聯(lián)盟體系結(jié)構(gòu)允許該自舉靈活實施,例如,
第一聯(lián)盟伙伴可以發(fā)布具有特定信息的Kerberos票據(jù),而第二聯(lián)盟伙 伴可以發(fā)布具有特定信息的SAML認證斷言。
在示例聯(lián)盟體系結(jié)構(gòu)中,信任關系由信任代理管理,信任代理可以 包括安全令牌服務(或可以與其交互)來根據(jù)預先建立的兩個信任代理之
間的關系mt和翻譯從標識提供商接收的令牌。在聯(lián)合企業(yè)與其它聯(lián)合
企業(yè)建立信任關系(以及令牌翻譯)不切實可行的情況下,可以調(diào)用信任 經(jīng)紀;但是,聯(lián)合企業(yè)需要建立與信任經(jīng)紀的關系。
現(xiàn)在參照圖5,示出根據(jù)能夠支持本發(fā)明的示例聯(lián)合體系結(jié)構(gòu)、使 用信任代理和信任經(jīng)紀說明聯(lián)合域之間的信任關系的示例集合的方框 圖。盡管圖4引入信任經(jīng)紀,圖5示出在示例聯(lián)合體系結(jié)構(gòu)內(nèi)傳遞信任 關系的重要性。
聯(lián)合域502-506分別結(jié)合信任代理508-512。信任代理508具有與信 任代理510的直接信任關系514。信任經(jīng)紀520具有與信任代理510的 直掩像任關系516,以及信任經(jīng)紀520具有與信任代理512的直接信任 關系518。信任經(jīng)紀520用于根據(jù)傳遞的信任代表聯(lián)盟參與者建立與其 它聯(lián)盟伙伴的信任關系。傳遞信任的法則允許信任代理510和信任代理 512具有通過信任經(jīng)紀520的經(jīng)紀的信任關系522。信任代理510或512 不用知道如何翻譯或mit對方的斷言;可以調(diào)用信任經(jīng)紀將斷言翻譯成 有效的、可信的、并且另一個信任代理能夠理解的斷言。
針對聯(lián)合企業(yè)之間的信任關系規(guī)定契約義務和責任的商業(yè)協(xié)定可以 通過使用ebXML(使用XML的電子商務)標準以XML表達。例如,直 接信任關系可以以ebXML文檔代表;共享直接信任關系的每一個聯(lián)合
域?qū)⒕哂斜磉_為ebXML文檔的合同副本。聯(lián)盟內(nèi)不同實體的操作特性 可以在ebXML編排(choreography)中規(guī)定并且在ebXML注冊中公布;
要遵循:特定聯(lián)盟針對聯(lián)盟內(nèi)的所4信任代i:信^k紀所二定的該發(fā) 布的要求。安全令牌服務能夠針對關于要被翻譯的來自其它域的令牌的 方式的操作細節(jié)解析這些ebXML文檔。但是應該指出的是,可以采用 其它標準和機制來支持本發(fā)明,用于規(guī)定有關聯(lián)盟內(nèi)信任關系的實施方 式的細節(jié)。
聯(lián)合體系結(jié)構(gòu)內(nèi)的單點登錄
在給定用戶的會話期間,用戶何以訪問許多聯(lián)合域,以便使用由這 些域提供的網(wǎng)絡服務。域可以使用標準的規(guī)范,例如均使用XML作為 公共數(shù)據(jù)格式的UDDI和WSDL,公布它們所提供的服務的描述。用戶
商。SOAP提供范例,用于以XML表達的請求和響應的通信。聯(lián)合環(huán) 境內(nèi)的實體可以使用這些標準。
在聯(lián)盟內(nèi),用戶期望具有單點登錄體驗,其中用戶完成單個認證操 作,并且該認證操作對于用戶會話期間U夠的,而無需考慮在務活期 間所訪問的聯(lián)盟伙伴。會話可以定義為從(并且包括)初始的用戶認證, 即登錄,到登出的事務集合。在M內(nèi),用戶的動作將部分由針對該會 話授權(quán)給用戶的特權(quán)來約束。
到此為止所描述的聯(lián)合體系結(jié)構(gòu)支持單點登錄操作。為了方便單點 登錄體驗,支持聯(lián)合環(huán)境的網(wǎng)絡服務同樣也支持使用由第三方生成的認 證斷言或安全令牌,以便提供認證用戶的證據(jù)。該斷言將包含某些類的 用戶對發(fā)布方進行了成功認證的證據(jù)以及用于該用戶的標識符。例如, 用戶可以與一個聯(lián)盟伙伴完成傳統(tǒng)的認證操作,比如通過提供聯(lián)盟伙伴 用于為該用戶構(gòu)建認證證書的用戶名和口令,然后聯(lián)盟伙伴能夠提供由 認證/發(fā)布方對不同的聯(lián)盟伙伴生成的SAML認證斷言。
聯(lián)合環(huán)境還允許網(wǎng)絡服務或其它應用請求網(wǎng)絡服務,并且這些網(wǎng)絡 服務也將會被認證。網(wǎng)絡服務環(huán)境中的認證是證實網(wǎng)絡服務請求的聲明
的標識的動作,以便企業(yè)能夠限制對授權(quán)的客戶機的訪問。請求或調(diào)用 網(wǎng)絡服務的用戶將幾乎總是被認證,因此在支持本發(fā)明的聯(lián)合環(huán)境內(nèi)用 于認證所需的與網(wǎng)絡服務用于用戶認證的當前要求沒有很大的區(qū)別。
訪問企業(yè)的計算資源而不參與聯(lián)合會話的用戶的認證不會受到聯(lián)合
M設施的存在的影響。例如,通過HTTP/S使用基于形式的認仏機制 進行認證以便訪問特定域上的非聯(lián)合資源的現(xiàn)有用戶不會受到在用于聯(lián) 合環(huán)境的域上支持引入的影響。認證部分由接觸點服務器處理,接觸點 服務器依次可以調(diào)用分離的信任代理或信任服務組件;接觸點服務器的 使用使得對現(xiàn)有域的M設施的影響最小化。例如,接觸點服務器可以 配置為通過由域中的后端或遺留應用處理的所有非聯(lián)合請求。
接觸點服務器可以選擇調(diào)用基于HTTP的認證方法,比如基本認 證、基于形式的認證,或者某些其它的認證方法。接觸點服務器通過支 持已經(jīng)由用戶作為認證證據(jù)呈現(xiàn)的斷言的處理也支持聯(lián)盟域,比如 SAML認證斷言,其中斷言在企業(yè)域之間交叉;在聯(lián)盟協(xié)議的語境中收 到時,單點登錄協(xié)議服務用于識別斷言/工件。接觸點服務器可以調(diào)用 信任服務,信任服務依次可以調(diào)用其安全令牌服務用于證實認證證書/ 安全令牌。
網(wǎng)絡服務或其它應用的認證包括與用戶認證相同的處理過程。來自 網(wǎng)絡服務的請求攜帶包^證斷言的安全令牌,并且該安全令牌將會以 與用戶呈現(xiàn)的令牌相同的方式由信任服務進行驗證。來自網(wǎng)絡服務的請 求應該伴有該令牌,這是因為網(wǎng)絡服務將發(fā)現(xiàn)所請求的服務需要哪些認 證斷言/安全令牌在UDDI中廣告。
現(xiàn)在參照圖6,示出說明支持聯(lián)合單點登錄操作的聯(lián)合環(huán)境的方框 圖。用戶600通it^戶端設備和適當?shù)目蛻舳藨帽热鐬g覽器,期望訪 問由支持擔當聯(lián)合環(huán)境內(nèi)的聯(lián)合域的數(shù)據(jù)處理系統(tǒng)的企業(yè)/域610所提 供的網(wǎng)絡服務。域610支持接觸點服務器612和信任代理或信任服務 614;類似地,域620支持接觸點服務器622和信任代理或信任服務 624,而域630支持接觸點服務器632和信任代理或信任服務634。信任 代理/服^l賴于信任經(jīng)紀650的幫助,如上文中所述。額外的域和信
任代理/服務可以參與到聯(lián)合環(huán)境中。圖6用于描述域610和域620之 間的聯(lián)合單點登錄操作;在域610和域630之間可以發(fā)生類似的操作。
用戶完成針對域610的認證操作;該認證操作由接觸點服務器612 處理。在用戶請求訪問需要認證的標識的某些資源時觸發(fā)認證操作,例 如用于訪問控制目的或用于個性化的目的。接觸點服務器612可以調(diào)用 遺留認證服務,或者可以調(diào)用信任代理614,以便lHi用戶呈現(xiàn)的認證 證書。在用戶的聯(lián)^活期間域610變?yōu)橛脩舻臉俗R提供商或主域。
在稍后的某時間點,用戶在聯(lián)盟伙伴比如同樣支持聯(lián)合域的企業(yè) 620處啟動事務,從而觸發(fā)聯(lián)合單點登錄操作。例如,用戶可以在域 620啟動新的事務,或者用戶的初始事務可以級聯(lián)到其它域中的一個或 多個附加的事務上。作為另一個例子,用戶可以通過接觸點服務器612 對域620中的資源調(diào)用聯(lián)合單點登錄操作,例如,通過選擇駐留在域 610內(nèi)的網(wǎng)頁上的特定鏈接或者通過請求駐留在域610內(nèi)但顯示駐留在 域620內(nèi)的資源的門戶頁。接觸點服務器612發(fā)送請求^Ht任代理614 以為用戶產(chǎn)生格式化為能夠由域620理解或信任的聯(lián)盟單點登錄令牌。 信任代理614將該令牌返回接觸點服務器612,其將該令牌發(fā)送給域 620中的接觸點服務器622。域610擔當域620中用戶的發(fā)布方,域620 擔當依賴方。用戶的令牌將與用戶的請求傳送給域620;該令牌可以使 用HTTP重定向通過用戶的瀏覽器來發(fā)送,或者可以通過直接調(diào)用負責 在信任代理614提供的令牌中標識的用戶的接觸點服務器622的請求 (在HTTP上或者HTTP上的SOAP上)。
接觸點服務器622與聯(lián)盟單點登錄令牌一起接收該請求,并且調(diào)用 信任代理624。信任代理624接收聯(lián)盟單點登錄令牌并^£該令牌,并 且假定該令牌有效并得到信任,從而產(chǎn)生該用戶的本地有效令牌。信任 代理624返回該^有效令牌給接觸點服務器622,其建立域620內(nèi)針 對該用戶的會話。如果必要,接觸點服務器622可以啟動另一聯(lián)合伙伴 處的聯(lián)合單點登錄。
域620處令牌的驗證由信任代理624處理,有可能借助安全令牌服 務的幫助。根據(jù)域610呈現(xiàn)的令牌的類型,安全令牌服務可能需要訪問
2
域620處的用戶注冊。例如,域620可以提供包含針對域620處的用戶 注冊所要驗證的用戶名和口令的二進制安全令牌。因此,在該示例中, 企業(yè)僅簡單地驗證來自聯(lián)合伙伴的安全令牌。域610和620之間的信任 關系確保域620能夠理解和信任域610代表用戶呈現(xiàn)的安全令牌。
聯(lián)合單點登錄不僅需要在依賴域處代表用戶呈現(xiàn)給依賴域的安全令 牌的驗證,而且需要根據(jù)包含在安全令牌中的信息確定本地有效用戶標 識符和與該標識符相關聯(lián)的可能的屬性。直接信任關系和建立該關系所 需的商業(yè)協(xié)定的一個結(jié)果上至少一方,發(fā)布域或者依賴域或者兩者,知 道如何將發(fā)布域提供的信息翻譯成在依賴域有效的標識符;在依賴域的 該標識符可以是由發(fā)布方斷言的標識的一對一映射的結(jié)果,或者是其它 類型的映射的結(jié)果,例如標識到任務的多對一映射,即,對于本地發(fā)布 方標識符沒有必要要求是唯一的一對一映射。在上面的簡短示例中,假 t發(fā)布域,即域610,能夠為依賴域,即域620,提供在域620中有效 的用戶標識符。在該場境中,依賴域不需要調(diào)用任何標識映射功能。域 620處的信任代理624將為該用戶產(chǎn)生擔保該用戶的安全令牌??山邮?的令牌的類型、令牌上所需的簽名、以及其它要求均預先建立為部分的 聯(lián)盟商業(yè)協(xié)定。約束標識符翻譯的規(guī)則和算法也預先建立為部分的聯(lián)盟 商業(yè)協(xié)定,并且由針對令牌管理和交換意見一致的策略來定義。在兩個 參與者之間的直接信任關系的情況下,標識符翻譯算法將為這兩方建 立,并且可以與聯(lián)盟中任何其它方不相關。
但是,并不總是發(fā)布域知道如何將用戶從域610的本地標識符映射 到域620的本地標識符的情形。在某些情形下,可能是依賴域知道如何 進行該映射,而在另外的情形下,那一方都不知道如何進行該翻譯,在 這種情形下可能需要調(diào)用笫三方信任經(jīng)紀。換句話說,在經(jīng)紀的信任關 系的情形下,發(fā)布域和依賴域彼此之間沒有直接的信任關系。但是,它 們與信任經(jīng)紀比如信任經(jīng)紀650之間具有直接的信任關系。標識符映射 規(guī)則和算法已經(jīng)建立為這種關系的一部分,并且信任經(jīng)紀將使用該信息 幫助進行對于經(jīng)紀的信任關系所需的標識符翻譯。
域620在接觸點服務器622處接收由域610發(fā)布的令牌,接觸點服
務器622調(diào)用信任代理624以m^令牌并執(zhí)行標識映射。在這種情況 下,由于信任代理624不能將用戶從域610的本地標識符映射到域620 的本地標識符,因此信任代理624調(diào)用信任經(jīng)紀650,其mt令牌并執(zhí) 行標識符映射.在獲得用于用戶的本地標識符之后,信任代理624,可 能通過其安全令牌服務,能夠產(chǎn)生域620的后端應用需要的任何本地令 牌,例如使從接觸點服務器到應用服務器的單點登錄便于進行所需要的 Kerberos令牌,在獲得本地有效令牌之后,如果必要,接觸點服務器能 夠構(gòu)建針對用戶的本地會話。接觸點服務器也可以處理用戶請求的粗粒 度授權(quán)(coarse-grained authorization),并將授權(quán)的請求傳遞給域620內(nèi) 適當?shù)膽梅掌鳌?br>
聯(lián)合用戶生命周期管理
上面描述的圖2-6的一部分說明了能夠用在聯(lián)合環(huán)境中的組件的組 織結(jié)構(gòu),而其它部分說明了用于支持跨越聯(lián)合環(huán)境的單點登錄操作的處 理。聯(lián)合環(huán)境內(nèi)的服務提供商或依賴域不一定必須管理用戶的認證證 書,并且那些依賴域可以影響由用戶標識提供商或主域提供的單個單點 登錄令牌。但是,圖2-6的上述描述沒有說明其中在聯(lián)盟伙伴的聯(lián)合域 中以有利方式完成聯(lián)合用戶生命周期管理的明確過程。
聯(lián)合用戶生命周期管理功能/服務包括用于在多個聯(lián)合域針對特定用 戶賬戶或給定用戶的用戶簡檔支持或管理聯(lián)合操作的功能;在某些情況 下,該功能或操作限于針對用戶的給定聯(lián)合會話。換句話說,聯(lián)合用戶 生命周期管理功能指的是允許跨越多個聯(lián)合伙伴的聯(lián)合操作的管理的功 能,可能M聯(lián)合計算環(huán)境內(nèi)單個用戶會話的生命周期期間。
每一個聯(lián)合域可以針對每一個各自的聯(lián)合域處的功能管理用戶賬 戶、用戶簡檔、或者某些類型的用戶會活。例如,特定的^1合域可能不 會該特定聯(lián)合域內(nèi)的管理本地用戶賬戶或用戶簡檔,但是在成功完成該 聯(lián)合域的單點登錄操作之后,該聯(lián)合域可能會管理針對聯(lián)合事務的本地 用戶會活。作為該特定聯(lián)合域支持的聯(lián)合用戶生命周期管理功能的一部 分,該聯(lián)合域可以參與允許聯(lián)合域在完成聯(lián)合事務之后終止本地用戶會 話的單點登出操作,從而改進安全性并提高資源的利用效率。
在使用聯(lián)合用戶生命周期管理功能的另 一示例中,用戶可以參加需 要多個聯(lián)合域參與的在線事務。聯(lián)合域可能本地管理用戶簡檔,以便在
涉及聯(lián)合域的每一個用戶聯(lián)合會話期間定制(tailor)相對于聯(lián)合域的用戶 體驗。作為該特定聯(lián)合域支持的聯(lián)合用戶生命周期管理功能的一部分, 聯(lián)合域的本地用戶簡檔中的信息可以在給定聯(lián)合事務期間以無縫方式與 來自參與給定聯(lián)合事務的其它聯(lián)合域處的其它簡檔的信息一起使用。例 如,來自用戶的多個本地用戶簡檔的信息可以結(jié)合到某些類型的合并操 作中,使得用戶的信息例如在網(wǎng)頁內(nèi)可視地呈現(xiàn)給用戶,以用戶不會警 覺用戶的信息的不同起源或來源的方式。
聯(lián)合用戶生命周期管理功能也可以包括用于賬戶鏈接/去鏈接的功 能。用戶提供有跨越聯(lián)盟伙伴的公共唯一的用戶標識符,其使得單點登 錄和關于用戶的屬性檢索(如果必要)作為在一個聯(lián)盟伙伴處的請求履行 的一部分。此外,聯(lián)盟伙伴可以使用該公共唯一的用戶標識符從標識提 供商請求額外的屬性,以便以匿名的方式查閱用戶。
現(xiàn)在參照圖7,示出說明在用于實施聯(lián)合用戶生命周期管理功能的 聯(lián)合域中的一些組件的方框圖以便支持本發(fā)明。圖7示出單個聯(lián)合域, 例如圖3所示的聯(lián)合域的要件。圖7的某些要件與到此為止參照其它附 圖已經(jīng)描述的一些要件相似或一致,比如圖3,接觸點服務器/服務702 等價于接觸點服務器342;運行控制對受保護資源的訪問的服務的應用 服務器704等價于應用服務器334;受保護的或受控資源706等價于受 保護的資源335;以及聯(lián)合用戶生命周期管理(FULM)應用708等價于 ^i合用戶生命周期管理應用352。盡管在圖3中沒有示出防火墻,但在 圖7中示出了防火墻。防火墻710和防火墻712創(chuàng)建保護企業(yè)的計算環(huán) 境免受企業(yè)域外部的例如通過因特網(wǎng)的計算威脅的外部DMZ(電子非軍 事帶)。
圖3和圖7所示的不同點并不矛盾或者是出于交叉目的。與圖7所 示的示例相比,圖3沒有示出防火墻,然而接觸點服務器342駐留在聯(lián) 盟前端340;另外,聯(lián)合用戶生命周期管理應用352包含在聯(lián)盟前端 340內(nèi)。在圖7中,接觸點服務器702顯示為駐留在防火墻710和712
之間的DMZ內(nèi),防火墻710和712形成企業(yè)域的電子或物理前端;另 外,聯(lián)合用戶生命周期管理應用/服務708電子地駐留在防火墻712之 后。信任服務714、單點登錄協(xié)議服務716、以及標識和屬性服務718 釆用企業(yè)用戶注冊720,并且需要時采用聯(lián)盟用戶注冊722。通過將圖3 中的聯(lián)盟前端340和后端330看作組件的邏輯組織,而將圖7中的其它 組件看作形成物理或電子前端和物理或電子后端,兩者都可以包含聯(lián)合 組件,圖3和圖7的不同點能夠協(xié)調(diào)。
重復接觸點實體/服務的任務,接觸點實體提^話管理,至少針對 使用企業(yè)計算環(huán)境與聯(lián)盟功能的用戶的交互;企業(yè)計算環(huán)境的遺留后端 內(nèi)的應用也可以實施其自己的會話管理功能。假定企業(yè)針對聯(lián)合計算環(huán) 境實施策略功能,則接觸點實體對于某些其它聯(lián)盟伙伴的策略決策點可 以擔當策略強制點。另外,假定容許給定聯(lián)盟功能的實施,則接觸點實 體負責啟動針對其中沒有采用單點登錄操作的那些場境中的用戶的直接 認證操作。如此,接觸點實體可以以各種形式實施,例如,作為反向代 理服務器、作為網(wǎng)絡服務器插件、或者某些其它方式。接觸點功能也可 以在應用服務器本身內(nèi)實施,在這種情況下,聯(lián)合用戶生命周期管理服 務可以邏輯上位于DMZ內(nèi)。
更為重要地,再次參照圖7,聯(lián)合用戶生命周期管理應用708還包 括用于接口到聯(lián)合用戶生命周期管理插件714、與之交互、或者與之互 IMt的支持,這在圖3中沒有示出。在圖7所示的示例體系結(jié)構(gòu)中,聯(lián)
命周期管理標準或簡檔的功能,比如,WS-聯(lián)盟被動客戶端,以及自由 聯(lián)盟ID-FF單點登錄(B/A、 B/P和LECP)、注冊名稱標識符、^Ji終止 通知、和單點登出。不同的聯(lián)合協(xié)議集合可以在不同的URL進行訪 問。該辦法允許聯(lián)合用戶生命周期管理應用在單個應用內(nèi)同時支持聯(lián)合 用戶生命周期管理的多個標準或規(guī)范,例如WS-聯(lián)盟網(wǎng)絡服^見范對自 由聯(lián)盟規(guī)范,從而使得對支持不同聯(lián)盟協(xié)議的總體環(huán)境的配置影響最小 化,
更具體地,適當?shù)穆?lián)合用戶生命周期管理功能由接觸點服務器通過
將用戶請求重定向和/或傳遞到合適的聯(lián)合用戶生命周期管理應用來調(diào)
用。再次參照圖7,接觸點服務器702接收用戶請求730,然后分析并 確定所接收的請求的類型,可以通過已經(jīng)接收的請求消息的類型來指 示,或者如上所述通過確定請求消息內(nèi)的目的地URI來指示。在將針 對受保護的資源的請求732傳遞到應用服務器704的同時,針對聯(lián)合用 戶生命周期管理功能的請求734,例如調(diào)用單點登出操作的請求,被傳 遞到聯(lián)合用戶生命周期管理應用708,如果必要聯(lián)合用戶生命周期管理 應用708調(diào)用適當?shù)穆?lián)合用戶生命周期管理插件來完成所接收的請求。 當定義新的聯(lián)盟協(xié)議或新的聯(lián)合功能時,或者當現(xiàn)有的不知何故修改或. 精煉時,可以簡單地通過插入新的支持模塊來增加支持,或者可以通過 修改先前安裝的插件來.精煉。
圖7中的聯(lián)合用戶生命周期管理應用的示例實施示出聯(lián)合用戶生命 周期管理應用能夠支持多個、同步的聯(lián)合用戶生命周期管理功能,同時 提供可插入特征,從而允許需要時將新的功能以插件的形式添加到聯(lián)合 用戶生命周期管理應用中,而無需對現(xiàn)有基礎設施進行任何改變。例 如,假定使用基于JAVA 的聯(lián)合用戶生命周期管理應用來實施本發(fā) 明,則用于新聯(lián)盟協(xié)議的支持,比如新頒布的單點登錄協(xié)議,能夠通過 將新開發(fā)的JAVATM類配置到聯(lián)合用戶生命周期管理應用的JAVA,類 路徑(CLASSPATH)來添加,其中這些新類支持新的標準以及用于支持 4^發(fā)明的協(xié)^C接口。
示例聯(lián)合體系結(jié)構(gòu)影響其中要集成聯(lián)合用戶生命周期管理方案的現(xiàn) 有環(huán)境。可以方便地對聯(lián)合用戶生命周期管理應用進行修改以支持新的 協(xié)議/標準,由于它們對總體基礎設施演化了極小的變化。支持新的聯(lián) 合用戶生命周期管理功能所需要的任何變化幾乎全部地位于聯(lián)合用戶生 命周期管理應用內(nèi)部,將需要配置聯(lián)合用戶生命周期管理應用來理解所 添加的功能。
在其它組件中會有最小的配置變化,例如在接觸點服務器中,以便 使得總體^RH殳施能夠調(diào)用新的聯(lián)合用戶生命周期管理功能,而同時繼 續(xù)支持現(xiàn)有的聯(lián)合用戶生命周期管理功能.但是,聯(lián)合用戶生命周期管
理應用功能上獨立于剩余的聯(lián)合組件,在于聯(lián)合用戶生命周期管理應用 可能僅需要與聯(lián)合環(huán)境的其它聯(lián)合組件極少的交互。例如,在示例實施
例中,聯(lián)合用戶生命周期管理功能可以與基于企業(yè)的數(shù)據(jù)庫例如LDAP
數(shù)據(jù)庫集成,如果聯(lián)合用戶生命周期管理信息比如根據(jù)自由聯(lián)盟簡檔的
名稱標識符值存儲在外部可訪問的聯(lián)合用戶生命周期管理數(shù)據(jù)庫,與對 外部實體不是顯然的或不可訪問的專有的內(nèi)部聯(lián)合用戶生命周期管理數(shù)
據(jù)庫相對。
因此,現(xiàn)有環(huán)境需要最小限度的修改,以支持聯(lián)合用戶生命周期管 理功能。而且,包括添加新功能的聯(lián)合用戶生命周期管理功能的變化對 現(xiàn)有聯(lián)合環(huán)境具有最小的影響。由此,當頒布新的單點登錄標準時,非 常容易添加用于該標準的支持。
傳統(tǒng)的用戶認證涉及企業(yè)的計算環(huán)境和僅終端用戶之間的交互;企 業(yè)選擇實施該認證交換的方式是企業(yè)的選擇,對任何其它企業(yè)沒有影 響。但是,當聯(lián)盟或交叉域單點登錄功能期望被支持時,其變?yōu)槠髽I(yè)伙 伴彼此交互的要求。該要求不能使用私有協(xié)議進行升級。雖然將用于基 于標準的聯(lián)盟協(xié)議的支持直接添加到接觸點實體看起來象極強的解決方
案,但是已經(jīng)作為企業(yè)的計算環(huán)境內(nèi)的現(xiàn)有組件的接觸點實體必須進行 修改;而且,每次這些公開聯(lián)盟協(xié)議中的一個發(fā)生變化時都必須進行修 改。
將該功能移出接觸點實體提供更加模塊化的辦法,其中該可插入的 功能使得能夠容易地保持對這些協(xié)議的移植或更新。
聯(lián)合環(huán)境內(nèi)多個協(xié)議簡檔的支持中的工件引用的數(shù)據(jù)對象的分布式 檢索
如上面所進一步描述的,在聯(lián)合協(xié)議操作的實施中應該考慮折衷。 某些操作,比如可能需要與用戶進行極少交互以完成操作的那些操作, 應該以對用戶施加最小負擔的方式執(zhí)行,但是它們也應該以對于聯(lián)合企 業(yè)來說高效地執(zhí)行,尤其是對于可能需要跨越企業(yè)內(nèi)的所有用戶的那些 類型的操作。對于支持特定聯(lián)合協(xié)議所需的那些操作,在那些操作的實 施方式上以及所導致的用戶的負擔和聯(lián)合企業(yè)的計算資源的負擔聯(lián)合企
業(yè)沒有多少靈活性。聯(lián)合企業(yè)可能需要根據(jù)聯(lián)合企業(yè)所同意的聯(lián)盟規(guī)范 以特定的方式執(zhí)行特定的動作。換句話說,聯(lián)合企業(yè)可能需要根據(jù)商業(yè) 合同實施特定的聯(lián)盟操作,而不能考慮那些操作的計算負擔。
但是,聯(lián)合環(huán)境內(nèi)功能的許多方面可以分類為支持一個或多個聯(lián)盟 內(nèi)的一個或多個企業(yè)所期望的商業(yè)目標、然而支持聯(lián)盟協(xié)議不是必需的 或者參與聯(lián)盟不是必需的操作。由于跨越聯(lián)合環(huán)境支持企業(yè)特定的商業(yè) 目標所導致的動作可能具有分歧,因此實施支持操作的方式應該以跨越 聯(lián)盟內(nèi)數(shù)千個或數(shù)百萬個用戶可升級的方式完成。在實施企業(yè)的期望商 業(yè)目標時,負責管理企業(yè)內(nèi)的聯(lián)合功能的系統(tǒng)管理員應該能夠以高效的 方式配置其計算資源。
如上所述,解決聯(lián)合企業(yè)內(nèi)的計算資源上的負擔的一種方式是實施 在分布式數(shù)據(jù)處理系統(tǒng)內(nèi)實施聯(lián)合功能。例如,標識提供商的服務可以 在分布式數(shù)據(jù)處理系統(tǒng)內(nèi)支持。但是,分布式數(shù)據(jù)處理系統(tǒng)的特性可能
存在問題;聯(lián)合協(xié)議的某些要求會使用于在分布式數(shù)據(jù)處理系統(tǒng)內(nèi)執(zhí)行 這些聯(lián)合協(xié)議的功能的實施復雜化。
更具體地說,比如標識提供商的聯(lián)合實體在聯(lián)盟內(nèi)生成數(shù)據(jù)對象。 根據(jù)某些聯(lián)合協(xié)議的規(guī)范,這些數(shù)據(jù)對象通過使用工件在聯(lián)合實體之間 進行傳輸,這將在下文中進一步地詳細描述。在任何聯(lián)合計算環(huán)境中工 件和與其相關的數(shù)據(jù)對象之間的引用關系必須保持,而不考慮所實施的 聯(lián)合計算環(huán)境的^eli設施。就此而言,本發(fā)明提供用于高效管理聯(lián)合協(xié)
議操作的分布式計算^設施,尤其針對工件引用的數(shù)據(jù)對象的分布式 檢索。但是,在討論本發(fā)明的附加細節(jié)之前,首先更加詳細地討論針對 分布式檢索可能由分布式數(shù)據(jù)處理引入的復雜性,以便更好地區(qū)分本發(fā) 明解決這些問題的方式。
SAML和自由聯(lián)盟瀏覽器/工件簡檔兩者都具有兩個主要的步驟,用 于從標識提供商到服務提供商的信息檢索,作為建立單點登錄會話的一 部分.在第一步驟中,標識提供商發(fā)送工件給服務提供商。 一般而言, 工件K寸受限的元素,擔當數(shù)據(jù)對象的引用指針。應該指出的是,工 件引用的數(shù)據(jù)對象可以是任何類型的數(shù)據(jù)對象。因此,數(shù)據(jù)對象可以包
括結(jié)構(gòu)化數(shù)據(jù),即,數(shù)據(jù)及其元數(shù)據(jù)或格式化信息。數(shù)據(jù)對象可以或者
可以沒有格式化;數(shù)據(jù)對象可以根據(jù)聯(lián)合協(xié)議進行格式化,但是不是必 須的??商娲模瑪?shù)據(jù)對象可以是消息、部分消息、或者消息附件。繼 續(xù)本示例,標識提供商可以通過終端用戶的瀏覽器在HTTP重定向上將 工件發(fā)送給月良務提供商;在該示例中,工件引用的數(shù)據(jù)對象可以是與安 全相關的斷言。由于工件的尺寸較小, 一般不會導致URL超出查詢串 的尺寸限制。在第二步驟中,服務提供商收到該工件時將執(zhí)行到標識提 供商的直接SOAP/HTTP請求,以便根據(jù)工件檢索適當?shù)臄嘌浴?br>
單個高速緩沖執(zhí)行;不存在分布式高速緩沖或分布式環(huán)境的通融。作為 典型的分布式環(huán)境的示例,標識提供商可以具有地理上橫跨國家分布的 多個數(shù)據(jù)中心。在某時間點,用戶啟動訪問標識提供商的資源的嘗試 通過登錄到標識提供商;通過請求公共資源或者標識提供商處的私有資 源;通過根據(jù)來自服務提供商的重定向嘗試訪問標識提供商單點登錄 URL;或者通過針對聯(lián)合伙伴的某些其它操作。當用戶第一次嘗試訪問 標識提供商的資源時,負栽平衡器分配用戶到特定的數(shù)據(jù)中心。典型地 這才艮據(jù)地理接近度和用法的某些組合來進行,并且可能涉及各種分配技 術(shù),比如循環(huán)算法或最近使用算法。負載平衡器然后建立某些手段以確 保在用戶會話期間用戶粘附到該數(shù)據(jù)中心。粘附性最常見的是基于 HTTP cookie、用戶的IP地址、SSL會話ID、或者綁定到用戶和用戶 的HTTP會活的某些其它手段。
但是,在使用該類型的分布式環(huán)境時,聯(lián)合實體嘗試通過直接信道 (即,不影響HTTP重定向的請求)檢索綁定到所接收的工件的數(shù)據(jù)對 象;例如服務提供商的聯(lián)合實體沒有獲取或繼承用戶會話的特征(有時 稱作用戶的粘附性)的手段。因此,聯(lián)合實體不能保證數(shù)據(jù)對象檢索請 求將會發(fā)送給實際上已經(jīng)生成初始的工件并且高速緩沖了工件和工件引 用的數(shù)據(jù)對象之間的相關映射的數(shù)據(jù)中心。
本發(fā)明提供高效管理聯(lián)合協(xié)議操作的分布式計算基礎設施,尤其針 對工件引用的數(shù)據(jù)對象的分布式檢索,如下面將進一步討論和剩余附圖
所描述的。本發(fā)明擴展了基于工件的檢索功能,允許檢索以代理方式的 類型的工件引用的數(shù)據(jù)對象。本發(fā)明允許聯(lián)合實體例如服務提供商被指 引到合適的數(shù)據(jù)處理系統(tǒng)或數(shù)據(jù)中心,同時允許負載分解,而且仍然能 夠從生成工件的數(shù)據(jù)處理系統(tǒng)或數(shù)據(jù)中心檢索工件引用的數(shù)據(jù)對象。本 發(fā)明的辦法不需要高速緩沖調(diào)和或保持全局分布式高速緩沖的其它技 術(shù)。
現(xiàn)在參照圖8,示出根據(jù)本發(fā)明的實施例實施為分布式數(shù)據(jù)處理系 統(tǒng)的聯(lián)合實體的方框圖,以便支持工件引用的數(shù)據(jù)對象的分布式檢索。 圖8示出聯(lián)合計算環(huán)境內(nèi)的一對聯(lián)合實體。 一般而言,聯(lián)合實體800生 成代表另一聯(lián)合實體或者為另一聯(lián)合實體比如聯(lián)合實體802生成數(shù)據(jù)對 象。聯(lián)合實體800可以代表標識提供商、服務提供商、發(fā)布方、依賴 方、或者某些其它類型的聯(lián)合實體,取決于所發(fā)生的聯(lián)合操作的類型。 類似地,聯(lián)合實體802也可以代表標識提供商、服務提供商、發(fā)布方、 依賴方、或者某些其它類型的聯(lián)合實體,取決于所發(fā)生的聯(lián)合操作的類 型。
在請求或者要求時,聯(lián)合實體800生成數(shù)據(jù)對象和相關的工件;工 件引用數(shù)據(jù)對象,并且可以將該數(shù)據(jù)對象稱為工件引用的數(shù)據(jù)對象。在 數(shù)據(jù)對象由聯(lián)合實體800生成并存儲之后,可以將工件提供給聯(lián)合實體 802,其隨后使用該工件檢索相關的數(shù)據(jù)對象,即,由工件引用即映射 到工件的數(shù)據(jù)對象。聯(lián)合實體802發(fā)送數(shù)據(jù)對^索請求804給聯(lián)合實 體800,以根據(jù)包含在數(shù)據(jù)對IM^索請求804中的工件806檢索先前生 成的數(shù)據(jù)對象。從這一點上講,聯(lián)合實體802可以看作請求聯(lián)合實體 802,而聯(lián)合實體800可以看作響應聯(lián)合實體800。
在聯(lián)合實體802發(fā)送數(shù)據(jù)對M索請求804給聯(lián)合實體800之后, 聯(lián)合實體800通過檢索工件引用的數(shù)據(jù)對象并返回數(shù)據(jù)對象檢索響應 808給聯(lián)合實體802來處理數(shù)據(jù)對^r索請求。數(shù)據(jù)對#^索響應808 包含與工件806相關的適當?shù)臄?shù)據(jù)對象。 一旦將數(shù)據(jù)對象提供給聯(lián)合實 體802,聯(lián)合實體800就從數(shù)據(jù)庫中刪除所提供的數(shù)據(jù)對象,由此確保 該工件-數(shù)據(jù)對象對展現(xiàn)出"一次使用"的特性, 以這種方式在聯(lián)合實體800和聯(lián)合實體802之間進行的數(shù)據(jù)對象傳 輸可以根據(jù)各種標準或?qū)S袇f(xié)議來執(zhí)行。例如,數(shù)據(jù)對^J險索請求消息 804和數(shù)據(jù)對^險索響應消息808可以根據(jù)標準化的規(guī)范進行格式化。
現(xiàn)在討論本發(fā)明更為重要的新穎方面,圖8還示出根據(jù)本發(fā)明的聯(lián) 合實體的實施例,其中該聯(lián)合實體組織為支持工件引用的數(shù)據(jù)對象的分 布式檢索的分布式數(shù)據(jù)處理系統(tǒng)。為了分布處理負載,聯(lián)合實體800使 用負載平衡器812,其在比如數(shù)據(jù)處理系統(tǒng)814、數(shù)據(jù)處理系統(tǒng)816、以 及數(shù)據(jù)處理系統(tǒng)818的多個數(shù)據(jù)處理系統(tǒng)之間接收并傳遞引入的請求消 息,比如數(shù)據(jù)對^#:索請求。負載平衡器812可以采用各種公知的算法 在多個數(shù)據(jù)處理系統(tǒng)之間分布工作負栽,包括地理分布,比如將來自給 定區(qū)域中的用戶的請求指向相同地理區(qū)域內(nèi)的數(shù)據(jù)中心。
以與圖7所示的方式類似的方式,到/來自多個數(shù)據(jù)處理系統(tǒng)的數(shù)據(jù) 通信穿過防火墻和接觸點服務器。用于數(shù)據(jù)處理系統(tǒng)814的數(shù)據(jù)通信穿 過防火墻820、接觸點服務器822、以及防火墻824。用于數(shù)據(jù)處理系統(tǒng) 816的數(shù)據(jù)通信穿過防火墻826、接觸點服務器828、以及防火墻830。 用于數(shù)據(jù)處理系統(tǒng)818的數(shù)據(jù)通信穿過防火墻832、接觸點服務器 834、以及防火墻836。在本發(fā)明的一個實施例中,數(shù)據(jù)處理系統(tǒng)814-818及其相關的M設施可以標識為地理上分歉的數(shù)據(jù)中心,從而允許 負載平衡器812以對于資源請求的發(fā)源地和數(shù)據(jù)處理系統(tǒng)814-818的位 置地理上恰當?shù)姆绞皆跀?shù)據(jù)處理系統(tǒng)814-818之間分布數(shù)據(jù)通信和相關 的處理負載。在地理上分布數(shù)據(jù)中心的情況下,防火墻826、接觸點服 務器828、以及防火墻830可以依次代表被復制以便確保數(shù)據(jù)中心內(nèi)高 級別可用性的一組機器。
盡管圖8沒有詳細示出,數(shù)據(jù)處理系統(tǒng)814-818包含用于處理已經(jīng) 結(jié)合其它附圖描述了的聯(lián)合協(xié)議操作/簡檔的功能,比如圖3中的聯(lián)盟 前端340和圖7中防火墻712后面的組件所表示的。例如,每一個數(shù)據(jù) 處理系統(tǒng)814-818包含與圖3中的SPS 354和圖7中的SPS 716相類似 的單點登錄協(xié)議服務(SPS)組件。更具體地說,數(shù)據(jù)處理系統(tǒng)814、 816 和818分別包含SPS組件840、 842和844。
另外,數(shù)據(jù)處理系統(tǒng)814、 816和818分別包含數(shù)據(jù)對象高速緩沖 850、 852和854。每一個數(shù)據(jù)處理系統(tǒng)在其數(shù)據(jù)對象高速緩沖中存儲其 工件引用的數(shù)據(jù)對象, 一直到數(shù)據(jù)對象被使用其相關的工件檢索。使用 如圖8所示的示例組件,本發(fā)明的示例實施例使用用于聯(lián)合實體的分布 式體系結(jié)構(gòu),從而允許聯(lián)合實體支持從高速緩沖850-854進行工件引用 的數(shù)據(jù)對象的分布式檢索。應該指出的是,如果數(shù)據(jù)處理系統(tǒng)818反過 來具有基于數(shù)據(jù)中心的負載平衡,那么高速緩沖854可以由數(shù)據(jù)中心內(nèi) 的任何復制的SPS來共享;另外,在給定的數(shù)據(jù)中心內(nèi),可以實施跨越 數(shù)據(jù)中心內(nèi)部的高速緩沖的任何必要的數(shù)據(jù)復制。
雖然本發(fā)明能夠用于一般的數(shù)據(jù)對象,但是下面將更詳細地描述使 用本發(fā)明以便支持工件引用的斷言的分布式檢索的某些示例處理過程; 換句話說,下面討論其中工件引用的數(shù)據(jù)對象用斷言表示的例子。具體 地說,使用圖8所示的示例體系結(jié)構(gòu),SSO協(xié)議服務(SPS)組件提供為 包括斷言檢索的自由/SAML功能而披露的端點。當收到基于工件的請 求時,SPS組件將使用該工件索引斷言的數(shù)據(jù)庫比如哈希表或高速緩 沖,檢索合適的斷言,并且響應所接收的請求。在本發(fā)明中,如果在本 地數(shù)據(jù)庫中沒有發(fā)現(xiàn)斷言,則替代返回錯誤,SPS組件將如下文中所述 嘗試從標識提供商的其它數(shù)據(jù)中心請求適當?shù)臄嘌浴?br>
更具體地說,在本發(fā)明的示例實施方案中,聯(lián)合實體800可以是標 識提供商,或者更一般地是發(fā)布方;聯(lián)合實體802可以Am務提供商, 或者更一般地是依賴方。在請求或要求時,聯(lián)合實體800如上文所討論 的發(fā)布斷言,比如SAML斷言。聯(lián)合實體802根據(jù)針對不同聯(lián)合計算 環(huán)境的一個或多個規(guī)范使用用于各種聯(lián)合協(xié)議操作/簡檔的這些斷言, 例如完成聯(lián)合單點登錄認證操作;在任何情況下,工件引用的數(shù)據(jù)對象 可以是安全斷言.聯(lián)合實體800發(fā)布工件,每一個都與斷言相關聯(lián),盡 管可以不生成相關的工件而發(fā)布斷言,但是在發(fā)布斷言時可以發(fā)布工 件;在已經(jīng)導致斷言狄布的聯(lián)合協(xié)議操作/簡檔需要時發(fā)生工件的發(fā) 布.斷言工件引用斷言;臨時保持斷言和斷言工件之間的映射,直到斷
言自身被檢索為止,在斷言已經(jīng)由聯(lián)合實體800發(fā)布并存儲之后,斷言
工件可以提供給聯(lián)合實體802,其隨后使用該斷言工件檢索相關的斷 言,即,由斷言工件引用或者映射到斷言工件的斷言。
再次,在本發(fā)明應用到斷言的示例實施方案中,如果在本地數(shù)據(jù)庫 中沒有發(fā)現(xiàn)斷言,則替代返回錯誤,而嘗試如下文所述的從標識提供商 的其它數(shù)據(jù)中心請求適當?shù)臄嘌?。能夠?qū)⒈景l(fā)明用于支持工件引用的斷 言的分布式檢索的方式的更加詳細的示例示于圖9A-9C中。
現(xiàn)在參照圖9A-9C,示出根據(jù)本發(fā)明的實施例,其中在使用支持分 布式斷言檢索的分布式數(shù)據(jù)處理系統(tǒng)實現(xiàn)的標識提供商內(nèi)第一數(shù)據(jù)處理 系統(tǒng)從第二數(shù)據(jù)處理系統(tǒng)檢索斷言的場境的方框圖。以與圖8所示的聯(lián) 合實體800相類似的方式,圖9A-9C示出標識提供商的一些要件。但 是,在該更具體的示例中,數(shù)據(jù)對象高速緩沖更具體地指斷言高速緩 沖,數(shù)據(jù)對象檢索請求更具體地指斷言檢索請求,以及數(shù)據(jù)對M索響 應更具體地指斷言檢索響應。
現(xiàn)在參照圖9A,標識提供商卯0是包含數(shù)據(jù)處理系統(tǒng)902以及數(shù) 據(jù)處理系統(tǒng)908的分布式數(shù)據(jù)處理系統(tǒng),數(shù)據(jù)處理系統(tǒng)902自身又包含 單點登錄服務(SPS)904和斷言高速緩沖906,而數(shù)據(jù)處理系統(tǒng)908自身 又包含SPS 910和斷言高速緩沖912。
在某時間點,數(shù)據(jù)處理系統(tǒng)902例如從上面結(jié)合圖8描述的服務提 供商接收斷言檢索請求。數(shù)據(jù)處理系統(tǒng)902使用先前從所接收的斷言檢 索請求中提取的工件搜索其本地斷言高速緩沖906;工件可以用作搜索 密鑰或用作搜索密鑰的基礎。在該示例中,數(shù)據(jù)處理系統(tǒng)卯2不能在其 本地數(shù)據(jù)庫或高速緩沖中查到與工件相關聯(lián)的斷言。
在本發(fā)明中,如果在本地數(shù)據(jù)庫中沒有發(fā)現(xiàn)斷言,則替代返回錯 誤,數(shù)據(jù)處理系統(tǒng)902而是嘗試從構(gòu)成標識提供商的其它數(shù)據(jù)處理系統(tǒng) 請求適當?shù)臄嘌?。換句話說,SPS 904將發(fā)布斷言檢索請求給標識提供 商內(nèi)的其它數(shù)據(jù)處理系統(tǒng),比如通it^L送斷言檢索請求914給數(shù)據(jù)處理 系統(tǒng)908內(nèi)的SPS 910,假定數(shù)據(jù)處理系統(tǒng)卯8能夠完成其所接收的請 求,則數(shù)據(jù)處理系統(tǒng)908檢索斷言,將其從M數(shù)據(jù)庫912中去除,以 便其不能再被使用,并且將該斷言返回數(shù)據(jù)處理系統(tǒng)902。標識提供商
卯o
初始斷言檢索請求。
現(xiàn)在參照圖9B,標識提供商卯0包括額外的數(shù)據(jù)處理系統(tǒng)920。以 類似于圖9A所示的方式,圖9B示出其中數(shù)據(jù)處理系統(tǒng)902不能在其 本地數(shù)據(jù)庫中查到所請求的斷言、并且數(shù)據(jù)處理系統(tǒng)902發(fā)送斷言檢索 請求922給數(shù)據(jù)處理系統(tǒng)908的場境。圖9A示出其中第二數(shù)據(jù)處理系 統(tǒng)-數(shù)據(jù)處理系統(tǒng)卯8在其本地數(shù)據(jù)庫中發(fā)現(xiàn)所請求的斷言的場境;與 此相反,圖9B示出其中數(shù)據(jù)處理系統(tǒng)908在其本地數(shù)據(jù)庫中沒有發(fā)現(xiàn) 所請求的斷言的場境。
可代替地,數(shù)據(jù)處理系統(tǒng)908繼續(xù)在標識提供商卯0內(nèi)傳##對所 請求的斷言的搜索。數(shù)據(jù)處理系統(tǒng)908發(fā)送斷言檢索請求924給數(shù)據(jù)處 理系統(tǒng)920,其使用斷言檢索請求924內(nèi)的工件搜索其本地斷言高速緩 沖。在該場境中,數(shù)據(jù)處理系統(tǒng)920發(fā)現(xiàn)所請求的斷言并返回斷言檢索 響應926給數(shù)據(jù)處理系統(tǒng)908,然后數(shù)據(jù)處理系統(tǒng)908返回斷言檢索響 應928給數(shù)據(jù)處理系統(tǒng)902。標識提供商900然后通itiL送斷言檢索響 應給服務提供商完成從服務提供商所接收的初始斷言檢索請求。
在本發(fā)明中,標識提供商能夠?qū)嵤榉植际綌?shù)據(jù)處理系統(tǒng)。標識提 供商可以具有可能會是斷言的來源的多個數(shù)據(jù)中心,并且當從服務提供 商接收斷言檢索請求的第 一數(shù)據(jù)處理系統(tǒng)在其本地斷言高速緩沖中沒有 發(fā)現(xiàn)所請求的斷言時,第 一數(shù)據(jù)處理系統(tǒng)啟動搜索構(gòu)成標識提供商的所 有其它數(shù)據(jù)處理系統(tǒng)或數(shù)據(jù)中心。假定執(zhí)行了成功搜索,則第一數(shù)據(jù)處
第一數(shù)據(jù)處理系統(tǒng)可以以各種不同的方式執(zhí)行所請求的斷言的搜 索。例如,搜索可以以鏈方式執(zhí)行,其中當沒有發(fā)現(xiàn)所請求的斷言時數(shù) 據(jù)處理系統(tǒng)傳遞搜索;第一數(shù)據(jù)中心將查詢第二數(shù)據(jù)中心,笫二數(shù)據(jù)中 心依次查詢第三數(shù)據(jù)中心,直到發(fā)現(xiàn)所請求的斷言為止,在此點斷言以 冒泡或遞歸的方式返回第一數(shù)據(jù)中心.隨著搜索的逸艮,每一個數(shù)據(jù)中 心可以添加或附加指示哪些數(shù)據(jù)中心已經(jīng)執(zhí)行了搜索的標識符。
可替代的,搜索可以以串行或輪轂-輪輻方式執(zhí)行,其中第一數(shù)據(jù)處
理系統(tǒng)查詢一個數(shù)據(jù)處理系統(tǒng)之后查詢另一個數(shù)據(jù)處理系統(tǒng);第一數(shù)據(jù) 中心擔當輪轂(網(wǎng)絡中心)并且單獨地查詢每一個數(shù)據(jù)中心(輪輻)?,F(xiàn)在 參照圖9C,標識揭 映商900包括額外的數(shù)據(jù)處理系統(tǒng)930。以類似于圖 9B所示的方式,圖9C示出其中數(shù)據(jù)處理系統(tǒng)卯2和數(shù)據(jù)處理系統(tǒng)908 都沒能在其本地數(shù)據(jù)庫中查到所請求的斷言的場境。數(shù)據(jù)處理系統(tǒng)卯2 發(fā)送斷言檢索請求932給數(shù)據(jù)處理系統(tǒng)908,其以包含指示未成功檢索 的^^代碼值的斷言檢索響應934作為響應;與圖9B不同,數(shù)據(jù)處理 系統(tǒng)908不傳播該搜索。然后數(shù)據(jù)處理系統(tǒng)902發(fā)送斷言檢索請求936 給數(shù)據(jù)處理系統(tǒng)930,其以包含指示未成功檢索的錯誤代碼值的斷言檢 索響應938作為響應。最終,數(shù)據(jù)處理系統(tǒng)902發(fā)送斷言檢索請求940 給數(shù)據(jù)處理系統(tǒng)920,其以包含所請求的斷言的斷言檢索響應942作為 響應。
根據(jù)數(shù)據(jù)中心的實現(xiàn)方式,可以將數(shù)據(jù)中心配置為不將搜索傳播給 其它數(shù)據(jù)中心??商娲?,標識提供商內(nèi)的數(shù)據(jù)處理系統(tǒng)之間的斷言檢 索請求可以包括特定屬性,用于指示在數(shù)據(jù)中心沒有在其本地斷言數(shù)據(jù) 庫中成功查到斷言時不允許將該請求傳遞給其它數(shù)據(jù)中心。然而在另一 可替代實施例中,可以增加最大跳躍計數(shù)(max-hop-count)值到檢索鏈 中,以便使鏈式搜索方法所導致的網(wǎng)絡通信量最小化;最大跳躍計數(shù)值 對檢索處理提供上限值,并且如果必要可以用于控制請求的散播。
可替代地,但是較為低效,第一數(shù)據(jù)中心可以廣播斷言檢索請求的 多個拷貝到其它數(shù)據(jù)中心,其中一個數(shù)據(jù)中心應該對所請求的斷言作出 響應。盡管可以以各種不同的方式執(zhí)行搜索,但是最終的結(jié)果是所請求 的斷言從保持其的高速緩沖或數(shù)據(jù)庫中去除,從而使得其不能再被使 用;接收到初始斷言檢索請求的數(shù)據(jù)中心能夠以斷言檢索響應進行響 應,并且用戶的單點登錄請求最終得到滿足。
現(xiàn)在參照圖10,示出根據(jù)本發(fā)明的實施例、在使用支持工件引用的
理的流程圖。在^成聯(lián)合實體I匕如標識提供商的多個^據(jù)、中:、或數(shù)據(jù)處 理系統(tǒng)中的一個接收到數(shù)據(jù)對象檢索請求消息時處理開始(步驟1002);
通過將其稱作初始數(shù)據(jù)對^r索請求消息可以將該消息從后續(xù)使用的數(shù) 據(jù)對象檢索請求消息中區(qū)分出來。已經(jīng)收到該數(shù)據(jù)對^險索請求消息的 數(shù)據(jù)中心然后從該消息內(nèi)提取工件(步驟1004),使用該工件或者其一部 分作為搜索密鑰,數(shù)據(jù)中心從其本地數(shù)據(jù)對象高速緩沖或數(shù)據(jù)庫搜索與 工件引用的數(shù)據(jù)對f^目關聯(lián)的工件(步驟1006)。
確定是否在本地數(shù)據(jù)庫中發(fā)現(xiàn)所請求的工件(步驟1008)。如果發(fā)現(xiàn) 工件引用的數(shù)據(jù)對象,則從本地數(shù)據(jù)庫檢索其相關聯(lián)的數(shù)據(jù)對象(步驟 1010)。在檢索到相關聯(lián)的數(shù)據(jù)對象的拷貝之后,可以刪除相關聯(lián)的數(shù) 據(jù)對象的高速緩沖拷貝,以便確保其不再被重復使用或惡意使用,從而 對數(shù)據(jù)對象強加一次使用限制??商娲?,可以保持相關聯(lián)的數(shù)據(jù)對象 的高速緩沖拷貝;是否刪除高速緩沖的數(shù)據(jù)對象取決于聯(lián)合實體和/或 聯(lián)合實體所提供的服務的需要。
如果在步驟1008沒有發(fā)現(xiàn)合適的數(shù)據(jù)對象,則數(shù)據(jù)中心從分布式 聯(lián)合實體內(nèi)的一組數(shù)據(jù)中心中的其它數(shù)據(jù)中心檢索工件引用的數(shù)據(jù)對象 (步驟1012),例如通it^聯(lián)合實體的該組數(shù)據(jù)中心中執(zhí)行搜索,或者通 過從聯(lián)合實體的特定數(shù)據(jù)中心直接檢索數(shù)據(jù)對象,如下文中所詳細描迷 的。
然后數(shù)據(jù)中心生成數(shù)據(jù)對#*索響應消息。如果工件引用的數(shù)據(jù)對 象在本地成功地發(fā)現(xiàn)或者從其它數(shù)據(jù)中心成功地檢索到,則數(shù)據(jù)對fj^ 索響應消息包含適當?shù)臄?shù)據(jù)對象并且也可以包含成功響應代碼。如果沒 有成功發(fā)現(xiàn)或檢索到工件引用的數(shù)據(jù)對象,則數(shù)據(jù)對IM^索響應消息將 包含錯誤代碼,以指示定位所請求的數(shù)據(jù)對象失敗。在任何一種情況 下,數(shù)據(jù)中心都發(fā)送數(shù)據(jù)對f^r索響應消息給初始請求者(步驟1014)比 如請求服務提供商,從而結(jié)束處理。
現(xiàn)在參照圖11,示出根據(jù)本發(fā)明的實施例、其中數(shù)據(jù)中心執(zhí)行鏈式 搜索用以從聯(lián)合實體內(nèi)的其它數(shù)據(jù)中心檢索數(shù)據(jù)對象的處理的流程圖。 圖11示出圖10所示的步驟1012的額外細節(jié)。圖11所示的步驟^_鏈式 搜索的一部分;可替代地,也可以執(zhí)行其它類型的搜索,比如圖12所 示的輪廓-輪輻類型的搜索。 對數(shù)據(jù)中心在其本地數(shù)據(jù)庫查找與數(shù)據(jù)對象相關聯(lián)的所請求的工
件,例如圖10所示的步驟1006-1008失敗而作出響應,處理開始。數(shù) 據(jù)中心通過發(fā)送具有該工件的數(shù)據(jù)對^j險索請求消息給其它數(shù)據(jù)處理系
統(tǒng)來啟動或繼續(xù)在實體提供商內(nèi)的搜索(步驟1102)。假定成功操作,則 數(shù)據(jù)中心接下來從其它數(shù)據(jù)中心接收具有工件引用的數(shù)據(jù)對象的數(shù)據(jù)對
f^r索響應消息(步驟1104),從而結(jié)束針對數(shù)據(jù)中心的搜索。
如果給定的數(shù)據(jù)中心是聯(lián)合實體內(nèi)啟動處理定位工件引用的數(shù)據(jù)對 象的請求的初始數(shù)據(jù)中心,則數(shù)據(jù)中心返回數(shù)據(jù)對^險索響應消息請求 實體比如服務提供商,如圖10中的步驟1014所示。如泉數(shù)據(jù)中心繼續(xù) 已經(jīng)由聯(lián)合實體內(nèi)的其它數(shù)據(jù)中心啟動或者繼續(xù)的搜索,則數(shù)據(jù)對象檢 索響應消息發(fā)送給傳播數(shù)據(jù)中心。以這種方式,圖11所示的處理描述 了鏈式搜索,其中請求和響應從一個數(shù)據(jù)中心流向另一個數(shù)據(jù)中心,直 到工件引用的數(shù)據(jù)對象發(fā)現(xiàn)為止或者直到已經(jīng)搜索了聯(lián)合實體內(nèi)的所有 數(shù)據(jù)中心為止。不管是否發(fā)現(xiàn)工件引用的數(shù)據(jù)對象,數(shù)據(jù)對l險索響應 消息都流回啟動搜索的數(shù)據(jù)中心。
現(xiàn)在參照圖12,示出根據(jù)本發(fā)明的實施例、其中數(shù)據(jù)中心執(zhí)行輪 轂-輪輻類型的搜索用以從聯(lián)合實體內(nèi)的其它數(shù)據(jù)中心檢索數(shù)據(jù)對象的 處理的流程圖.圖12示出圖10所示的步驟1012的細節(jié)。圖12的步驟 是其中以串行方式搜索連續(xù)的數(shù)據(jù)中心直到已經(jīng)搜索了所有的數(shù)據(jù)中心 為止或者直到發(fā)現(xiàn)數(shù)據(jù)對象為止的搜索的一部分。
聯(lián)合實體內(nèi)的給定數(shù)據(jù)中心控制在聯(lián)合實體內(nèi)的其它數(shù)據(jù)中心中對 工件引用的數(shù)據(jù)對象的搜索,即,給定數(shù)據(jù)中心代表搜索的輪轂(中 心)。在數(shù)據(jù)中心確定聯(lián)合實體內(nèi)是否存在尚未搜索的其它數(shù)據(jù)中心時 處理開始(步驟1202)。如果不存在,則已經(jīng)搜索了所有的其它數(shù)據(jù)中 心,并且結(jié)束處理;在該場境下,將失敗代碼返回給請求數(shù)據(jù)對象的實 體,在附圖中沒有具體示出。
如果存在尚未搜索的其它數(shù)據(jù)中心,即代表輪轂-輪輻類型搜索的輪 輻的數(shù)據(jù)中心,則控制搜索的數(shù)據(jù)中心,即代表輪轂的數(shù)據(jù)中心,發(fā)送 包含工件的數(shù)據(jù)對l險索請求消息給聯(lián)合實體內(nèi)的其它數(shù)據(jù)中心中的一
個(步驟1204)。在該數(shù)據(jù)中心收到數(shù)據(jù)對象檢索響應消息之后(步驟 1206),確定是否已經(jīng)檢索到數(shù)據(jù)對象(步驟1208)。如果沒有,則處理分 支回到步驟1202,重復處理。如果已經(jīng)檢索到數(shù)據(jù)對象,則結(jié)束處理, 并且返回數(shù)據(jù)對象,例如如圖10中的步驟1014所示。 結(jié)論
從上面對本發(fā)明的詳細描述中可以清楚地看出本發(fā)明的優(yōu)點, 本發(fā)明支持將聯(lián)合實體實施為分布式數(shù)據(jù)處理系統(tǒng)。分布式數(shù)據(jù)處 理系統(tǒng)包括多個數(shù)據(jù)處理系統(tǒng),每一個都能夠為相關的數(shù)據(jù)對象發(fā)布工 件并且響應基于工件的檢索請求,同時還具有針對基于工件的檢索請求 的代理功能。
本發(fā)明的優(yōu)越性在于,本發(fā)明支持對于可能支持數(shù)百萬客戶的大型 企業(yè)所需要的分布式數(shù)據(jù)中心環(huán)境,然而這對于現(xiàn)有的數(shù)據(jù)管理技術(shù)是 不可能的。另外,本發(fā)明不需要分布式數(shù)據(jù)高速緩沖可能會要求的先進 數(shù)據(jù)管理技術(shù)。此外,使用本發(fā)明,請求聯(lián)合實體比如服務提供商不需 要關注分布式的本性,也不需要關注存在提供響應聯(lián)合實體例如標識提 供商的功能的多個數(shù)據(jù)中心。
更具體地說,本發(fā)明支持不同聯(lián)盟規(guī)范的各種要求;換句話說,本
容。:此,本發(fā)明不僅與各種不同"^合協(xié)議相兼容,而且同時支持多 個聯(lián)合協(xié)議,并且本發(fā)明在分布式環(huán)境中支持該功能。
本發(fā)明在分布式計算環(huán)境中支持多個聯(lián)合協(xié)議的能力相比于針對聯(lián) 合環(huán)境的典型現(xiàn)有解決方案是非常重要的優(yōu)點。在典型的現(xiàn)有技術(shù)的聯(lián) 合環(huán)境中,使用單個協(xié)議在因特網(wǎng)環(huán)境下實現(xiàn)一系列動作,要么全 HTML/HTTP,要么全SOAP/MQ,等等'但是,在某些情況下,功能 通過混合協(xié)議來定義,比如SAML和自由聯(lián)盟ID-FF協(xié)議。SAML 2.0 和自由聯(lián)盟簡檔兩者對于"注冊名稱標識符(RNI)"和"聯(lián)盟終止通知 (FTN)"都允許HTTP重定向和SOAP-HTTP簡檔兩者,即便在這些環(huán) 境中終端用戶的體驗和與提供商的交互是基于HTTP的,基于HTTP 重定向的簡檔能夠容易地綁定到用戶作為用戶的瀏覽器,并且會活用作
觸發(fā)和傳輸這些協(xié)議流的一部分.另外,自由聯(lián)盟ID-WSF允許基于 SOAP的協(xié)議在用戶的HTTP會話和運行時間的綁定之外檢索關于用戶 的信息。這些SOAP簡檔不涉及終端用戶(或者擔當其代表的代理),由 于它們被定義為在兩個提供商,即標識提供商和服務提供商之間進行直 接通信。因此,SOAP簡檔不容易綁定到用戶或用戶的運行時間體驗。 這在考慮到必須對用戶的運行時間環(huán)境產(chǎn)生作用或者具有其知識的 SOAP協(xié)議時會帶來問題。
在典型的分布式環(huán)境中,運行時間的本地用例將與分布式數(shù)據(jù)庫的 本地拷貝相抵觸,但是將保持運行時間數(shù)據(jù)的本地拷貝,即,運行時間 數(shù)據(jù)不一定必須跨越分布式用例進行復制,但是,在許多聯(lián)合計算環(huán)境 的情況下,不存在容留分布式高速緩沖的手段,也不存在會允許分布式 計算環(huán)境內(nèi)的所有數(shù)據(jù)中心具有關于用戶會話的信息、或者會允許任意 一個數(shù)據(jù)中心代表所有的數(shù)據(jù)中心對聯(lián)合請求作出響應的分布式計算環(huán) 境。這些限制可能會因為技術(shù)原因、性能原因、或者策略原因而發(fā)生, 下文中針對典型的現(xiàn)有分布式環(huán)境描述該場境,并且進一步針對典型的 現(xiàn)有聯(lián)合分布式環(huán)境描述該場境。
在典型的現(xiàn)有分布式環(huán)境中,分布式環(huán)境配置有多個數(shù)據(jù)中心。根 據(jù)用法、接近度、以及到數(shù)據(jù)中心的先有分配將用戶請求路由到數(shù)據(jù)中 心。例如,當收到初始HTTP請求時,負載平衡器可以根據(jù)選擇算法, 比如到用戶的地理接近度、最小負栽、最近使用等,確定用戶的請求將 被路由到特定的數(shù)據(jù)中心。負載平衡器將建立某些形式的"粘附性",以 確保用戶的所有隨后請求都路由到該數(shù)據(jù)中心。該粘附性基于與用戶、 或者更重要地負責代表用戶的代理比如HTTP瀏覽器應用相關聯(lián)的某些 類型的數(shù)據(jù).粘附數(shù)據(jù)大多數(shù)通?;贖TTP cookie、用戶的IP地 址、SSL會活ID、或者綁定到用戶和用戶的HTTP會活的某些其它形 式。
在一些情況下,請求并非源自用戶或用戶的代理應用;而是關于用 戶的信息的請求從不具有粘附數(shù)據(jù)知識的其它實體代表用戶生成.當在 負栽平衡器收到請求而沒有粘附數(shù)據(jù)時,該請求將不會被綁定到用戶的先前請求,因此不能保證其將被路由到服務該用戶的請求的數(shù)據(jù)中心,
即,管理用戶的會話的數(shù)據(jù)中心。因此,諸如機器-機器SOAP/HTTP 請求的請求不會綁定到用戶,并且沒有辦法由負載平衡器容易地將其與 用戶相關聯(lián)。
對于典型的現(xiàn)有聯(lián)合分布式環(huán)境,標識提供商可以具有地理上跨越 國家,例如西海岸、西南部、中西部、東海岸、新英格蘭等,分布的多 個數(shù)據(jù)中心。在示例場境中,用戶可以啟動嘗試訪問標識提供商的資
源;用戶可以嘗試訪問標識提供商的許多資源中的一個,例如登錄請
求、用于公共/專有資源的請求、或者根據(jù)服務提供商的重定向訪問標
識提供商的SSO URL嘗試。用于標識提供商的負栽平衡器將用戶分配 到標識提供商的分布式計算環(huán)境內(nèi)的特定數(shù)據(jù)中心。然后負載平衡器將 建立某種手段在他們會話期間將用戶"粘附"到該數(shù)據(jù)中心。
用戶可以具有綁定到標識提供商的數(shù)據(jù)中心之一的會話,但^IJ艮務 提供商沒有辦法知道這一點(乃至知道標識提供商的計算環(huán)境內(nèi)存在多 個數(shù)據(jù)中心)。當用戶與服務提供商交互時,使用與標識提供商交互時 所使用的同一個代理,比如瀏覽器應用。當服務提供商需要從標識提供 商檢索關于用戶的信息時,存在兩種基本的手段來實現(xiàn)通過調(diào)用到涉 及用戶的瀏覽器的標識提供商的間接信道,或者通過直接調(diào)用標識提供 商處所請求的資源。在第一種情況下,例如通過4吏用HTTP重定向調(diào)用 用戶的瀏覽器/信道將允許用戶的粘附數(shù)據(jù)比如HTTP cookie與請求一 起M送到標識提供商的負載平衡器,從而負載平衡器能夠正確地將請 求路由到具有關于用戶(靜態(tài)及運行時間)的所有適當信息的標識提供商 的數(shù)據(jù)中心。
但是,在第二種情況下,當服務提供商直接調(diào)用代表用戶的標識處 的資源時,用戶的瀏覽器/代理并不會陷于該請求,并且由此該請求在
中心。負栽平衡器然后將該請求路由到在此時間點選擇的數(shù)據(jù)中心。如 果該請求在具有關于用戶的當前運行時間數(shù)據(jù)的數(shù)據(jù)中心處接收,則該 數(shù)據(jù)中心可以成功地完成該請求。如果該請求在不具有關于用戶的當前
運行時間數(shù)據(jù)的數(shù)據(jù)中心處接收,則該數(shù)據(jù)中心沒有完成該請求的手
段;該結(jié)果在其中分布式高速緩沖/運行時間不可行的(如果僅對于實時 保持所有必要的運行時間數(shù)據(jù)所需的性能開銷)分布式環(huán)境中是相當普 遍的。
因此,當服務提供商發(fā)送請求給聯(lián)合計算環(huán)境內(nèi)一組分布式數(shù)據(jù)中 心中的一個時,如果使用"直接"方式(例如服務提供商和數(shù)據(jù)中心之間 的SOAP/HTTP)將該請求發(fā)送給數(shù)據(jù)中心,則沒有辦法使得負載平衡/ 路由功能確定將該請求綁定到哪一個用戶,并由此無法確定應該將該請 求路由到哪一個數(shù)據(jù)中心。因此,數(shù)據(jù)中心可能會收到關注該數(shù)據(jù)中心 沒有其有關知識的用戶的請求,并且由此沒有辦法完成該請求。
本發(fā)明允許分布式聯(lián)合數(shù)據(jù)中心代理該請求到其它數(shù)據(jù)中心,以便
希望找到具有完成該請求所需的運行時間信息的數(shù)據(jù)中心。由于該請求
是被代理的,因此第一數(shù)據(jù)中心處的功能將簡單地重復該請求到下一數(shù)
據(jù)中心,例如,^使用任意一種那些已經(jīng)定義過的算法。如果下一數(shù)據(jù)中心能夠完成該請求,其將如此作并返回響應給第一數(shù)據(jù)中心。第一數(shù)據(jù) 中心將簡單地將來自其它數(shù)據(jù)中心的響應返回請求聯(lián)合實體,比如服務
提供商。根據(jù)所選擇的算法,每一個數(shù)據(jù)中心將依次代理該請求到其它 數(shù)據(jù)中心,或者只是簡單地返回失敗狀態(tài)代碼給笫一數(shù)據(jù)中心;不管采 用哪種算法,每一個數(shù)據(jù)中心將簡單地代理該請求直到成功完成為止, 在這一點上建立成功響應,然后將代理該響應自始至終原路返回到請求 聯(lián)合實體。
應該指出的是,盡管在全功能的數(shù)據(jù)處理系統(tǒng)的語境中描述了本發(fā) 明,但是本領域的普通技術(shù)人員應該理解,本發(fā)明的處理過程也能夠以 計算機可讀存儲介質(zhì)中的指令的形式或者其它不同的形式進行分發(fā),而 無需考慮分發(fā)所實際使用的信號承栽介質(zhì)的具體類型。示例計算機可讀 存儲介質(zhì)包括EPROM、 ROM、磁帶、紙張、軟盤、硬盤驅(qū)動器、 RAM、以及CD畫ROM。
方法通常構(gòu)思為導致期望結(jié)果的自身協(xié)調(diào)一致的步驟序列.這些步
.雖然不是必需的,但通常這些量采用能夠被
存儲、傳輸、組合、比較、以及其它處理的電或磁信號的形式。主要是 由于共同使用的原因,有時將這些信號稱作比特、值、參數(shù)、條目、元 素、對象、符號、字符、術(shù)語、數(shù)字等非常便利。但是,應該指出的 是,所有這些術(shù)語或者類似的術(shù)語都與適當?shù)奈锢砹肯嚓P聯(lián),并且僅僅 是應用于這些量的便利標注。
出于說明的目的已經(jīng)展示了本發(fā)明,但是并不試圖窮舉本發(fā)明或者 將本發(fā)明限于所公開的這些實施例。許多修改和變化對于本領域的普通 技術(shù)人員是顯而易見的。所選實施例用于說明本發(fā)明的原理及其實際應 用,并且便于本領域的其他普通技術(shù)人員理解本發(fā)明,以便進行各種可 能適用于其它預期應用的修改而實現(xiàn)不同的實施方案。
權(quán)利要求
1.一種在聯(lián)合計算環(huán)境內(nèi)的聯(lián)合實體之間傳輸數(shù)據(jù)對象的方法,該計算機實施的方法包括第二聯(lián)合實體從第一聯(lián)合實體接收數(shù)據(jù)對象檢索請求,其中第二聯(lián)合實體根據(jù)第二聯(lián)合實體和第一聯(lián)合實體之間的信任關系發(fā)布用于第一聯(lián)合實體的工件,第二聯(lián)合實體的服務由分布式數(shù)據(jù)處理系統(tǒng)內(nèi)的一組數(shù)據(jù)處理系統(tǒng)提供,并且該組數(shù)據(jù)處理系統(tǒng)內(nèi)的每一個數(shù)據(jù)處理系統(tǒng)生成工件;該組數(shù)據(jù)處理系統(tǒng)中的第一數(shù)據(jù)處理系統(tǒng)從數(shù)據(jù)對象檢索請求中提取工件,其中所述工件引用第二聯(lián)合實體所存儲的數(shù)據(jù)對象;第一數(shù)據(jù)處理系統(tǒng)使用所述工件從該組數(shù)據(jù)處理系統(tǒng)中的第二數(shù)據(jù)處理系統(tǒng)檢索數(shù)據(jù)對象;以及第一數(shù)據(jù)處理系統(tǒng)返回數(shù)據(jù)對象檢索響應給第一聯(lián)合實體。
2. 根據(jù)權(quán)利要求1所述的方法,還包括使用所述工件搜索第一數(shù)據(jù)處理系統(tǒng)的本地數(shù)據(jù)庫;對確定數(shù)據(jù)對象沒有存儲在第 一數(shù)據(jù)處理系統(tǒng)的本地數(shù)據(jù)庫中作出響應,從第一數(shù)據(jù)處理系統(tǒng)發(fā)送檢索請求給第二數(shù)據(jù)處理系統(tǒng),其中檢索請求包含所述工件;以及第一數(shù)據(jù)處理系統(tǒng)從第二數(shù)據(jù)處理系統(tǒng)接收檢索響應,其中檢索響應包含數(shù)據(jù)對象。
3. 根據(jù)權(quán)利要求l所述的方法,還包括第二數(shù)據(jù)處理系統(tǒng)從笫一數(shù)據(jù)處理系統(tǒng)接收檢索請求,其中檢索請求包含所述工件;使用所述工件搜索第二數(shù)據(jù)處理系統(tǒng)的本地數(shù)據(jù)庫;對確定數(shù)據(jù)對象存儲在第二數(shù)據(jù)處理系統(tǒng)的本地數(shù)據(jù)庫中作出響應,從第二數(shù)據(jù)處理系統(tǒng)發(fā)送檢索響應給第一數(shù)據(jù)處理系統(tǒng),其中檢索響應包含數(shù)據(jù)對象.
4. 根據(jù)權(quán)利要求3所述的方法,還包括 從第二數(shù)據(jù)處理系統(tǒng)的本地數(shù)據(jù)庫刪除數(shù)據(jù)對象。
5. 根據(jù)權(quán)利要求1所述的方法,還包括對確定數(shù)據(jù)對象沒有存儲在第 一數(shù)據(jù)處理系統(tǒng)的本地數(shù)據(jù)庫中作出 響應,使用所述工件在該組數(shù)據(jù)處理系統(tǒng)內(nèi)搜索數(shù)據(jù)對象,以便檢索所 述數(shù)據(jù)對象。
6. 根據(jù)權(quán)利要求5所述的方法,還包括第一數(shù)據(jù)處理系統(tǒng)以串行的方式單獨地查詢該組數(shù)據(jù)處理系統(tǒng)內(nèi)的 各個數(shù)據(jù)處理系統(tǒng),直到檢索到數(shù)據(jù)對象為止。
7. 根據(jù)權(quán)利要求5所述的方法,還包括第一數(shù)據(jù)處理系統(tǒng)以廣播方式同時查詢該組數(shù)據(jù)處理系統(tǒng)內(nèi)的各個 數(shù)據(jù)處理系統(tǒng),以便檢索數(shù)據(jù)對象。
8. 根據(jù)權(quán)利要求5所述的方法,還包括以鏈式的方式單獨地查詢該組數(shù)據(jù)處理系統(tǒng)內(nèi)的各個數(shù)據(jù)處理系 統(tǒng),直到檢索到數(shù)據(jù)對象為止。
9. 根據(jù)權(quán)利要求8所述的方法,還包括該組數(shù)據(jù)處理系統(tǒng)內(nèi)的第三數(shù)據(jù)處理系統(tǒng)從第 一數(shù)據(jù)處理系統(tǒng)接收 檢索請求,其中檢索請求包含所述工件;對確定數(shù)據(jù)對象沒有存儲在第三數(shù)據(jù)處理系統(tǒng)的本地數(shù)據(jù)庫中作出 響應,第三數(shù)據(jù)處理系統(tǒng)發(fā)送檢索請求給第二數(shù)據(jù)處理系統(tǒng);第三數(shù)據(jù)處理系統(tǒng)從第二數(shù)據(jù)處理系統(tǒng)接收檢索響應,其中檢索響 應包含數(shù)據(jù)對象;以及笫三數(shù)據(jù)處理系統(tǒng)發(fā)送檢索響應給第 一數(shù)據(jù)處理系統(tǒng)。
10. 根據(jù)權(quán)利要求8所述的方法,還包括限制對數(shù)據(jù)對象的搜索,使得查詢的數(shù)據(jù)處理系統(tǒng)的鏈具有包含在 查詢的數(shù)據(jù)處理系統(tǒng)之間通過的檢索請求內(nèi)的數(shù)據(jù)參數(shù)所指示的最大長 度。
11. 根據(jù)權(quán)利要求1所述的方法,其中第一聯(lián)合實體是標識提供 商,并且第二聯(lián)合實體;U艮務提供商。
12. 根據(jù)權(quán)利要求1所述的方法,其中笫一聯(lián)合實體是服務提供 商,并且第二聯(lián)合實體是標識提供商。
13. 根據(jù)權(quán)利要求1所述的方法,其中第一聯(lián)合實體是發(fā)布方,并 且第二聯(lián)合實體是依賴方。
14. 根據(jù)權(quán)利要求1所述的方法,其中第一聯(lián)合實體是依賴方,并 且第二聯(lián)合實體U布方。
15. 根據(jù)權(quán)利要求1所述的方法,其中數(shù)據(jù)對象是斷言。
16. 根據(jù)權(quán)利要求1所述的方法,其中數(shù)據(jù)對象是安全斷言。
17. 根據(jù)權(quán)利要求1所述的方法,其中在認證操作期間檢索所述數(shù) 據(jù)對象。
18. —種計算機可讀存儲介質(zhì)上的計算機程序產(chǎn)品,用于在聯(lián)合計 算環(huán)境內(nèi)的聯(lián)合實體之間傳輸數(shù)據(jù)對象,所述計算機程序產(chǎn)品包括用于 執(zhí)行前述方法權(quán)利要求的任何一種方法的指令。
19. 一種用于在聯(lián)合計算環(huán)境內(nèi)的聯(lián)合實體之間傳輸數(shù)據(jù)對象的裝 置,所述裝置包括用于在第二聯(lián)合實體從第一聯(lián)合實體接收數(shù)據(jù)對象檢索請求的部 件,其中笫二聯(lián)合實體根據(jù)第二聯(lián)合實體和第一聯(lián)合實體之間的信任關系發(fā)布用于第一聯(lián)合實體的工件,第二聯(lián)合實體的服務由分布式數(shù)據(jù)處 理系統(tǒng)內(nèi)的一組數(shù)據(jù)處理系統(tǒng)提供,并且該組數(shù)據(jù)處理系統(tǒng)內(nèi)的每一個 數(shù)據(jù)處理系統(tǒng)生成工件;用于該組數(shù)據(jù)處理系統(tǒng)中的第 一數(shù)據(jù)處理系統(tǒng)從數(shù)據(jù)對M索請求 中提取工件的部件,其中所述工件引用第二聯(lián)合實體所存儲的數(shù)據(jù)對 象;用于第 一數(shù)據(jù)處理系統(tǒng)使用所述工件從該組數(shù)據(jù)處理系統(tǒng)中的第二 數(shù)據(jù)處理系統(tǒng)檢索數(shù)據(jù)對象的部件;以及用于第 一數(shù)據(jù)處理系統(tǒng)返回數(shù)據(jù)對^險索響應給第 一聯(lián)合實體的部件。
20. 根據(jù)權(quán)利要求19所述的裝置,其中第二聯(lián)合實體是標識提供 商,并且第一聯(lián)合實體;U艮務提供商。
21. 根據(jù)權(quán)利要求19所述的裝置,其中第二聯(lián)合實體是服務提供 商,并且第一聯(lián)合實體是標識提供商。
22. 根據(jù)權(quán)利要求19所述的裝置,還包括用于使用所述工件搜索第 一數(shù)據(jù)處理系統(tǒng)的本地數(shù)據(jù)庫的部件; 用于對確定數(shù)據(jù)對象沒有存儲在第一數(shù)據(jù)處理系統(tǒng)的本地數(shù)據(jù)庫中作出響應,從第 一數(shù)據(jù)處理系統(tǒng)發(fā)送檢索請求給第二數(shù)據(jù)處理系統(tǒng)的部件,其中檢索請求包含所述工件;以及用于第一數(shù)據(jù)處理系統(tǒng)從第二數(shù)據(jù)處理系統(tǒng)接收檢索響應的部件,其中檢索響應包含數(shù)據(jù)對象。
23. 根據(jù)權(quán)利要求19所述的裝置,還包括用于第二數(shù)據(jù)處理系統(tǒng)從第 一數(shù)據(jù)處理系統(tǒng)接收檢索請求的部件,其中檢索請求包含所述工件;用于使用所述工件搜索第二數(shù)據(jù)處理系統(tǒng)的本地數(shù)據(jù)庫的部件; 用于對確定數(shù)據(jù)對象存儲在第二數(shù)據(jù)處理系統(tǒng)的本地數(shù)據(jù)庫中作出響應,從第二數(shù)據(jù)處理系統(tǒng)發(fā)送檢索響應給第一數(shù)據(jù)處理系統(tǒng)的部件,其中檢索響應包含數(shù)據(jù)對象。
24. 根據(jù)權(quán)利要求19所述的裝置,還包括用于對確定數(shù)據(jù)對象沒有存儲在第一數(shù)據(jù)處理系統(tǒng)的本地數(shù)據(jù)庫中 作出響應,使用所述工件在該組數(shù)據(jù)處理系統(tǒng)內(nèi)搜索數(shù)據(jù)對象,以便檢 索所迷數(shù)據(jù)對象的部件。
25. 根據(jù)權(quán)利要求24所述的裝置,還包括用于第 一數(shù)據(jù)處理系統(tǒng)以串行的方式單獨地查詢該組數(shù)據(jù)處理系統(tǒng) 內(nèi)的各個數(shù)據(jù)處理系統(tǒng),直到檢索到數(shù)據(jù)對象為止的部件。
26. 根據(jù)權(quán)利要求24所述的裝置,還包括用于以鏈式的方式單獨地查詢該組數(shù)據(jù)處理系統(tǒng)內(nèi)的各個數(shù)據(jù)處理 系統(tǒng),直到檢索到數(shù)據(jù)對象為止的部件。
全文摘要
本發(fā)明公開一種使用工件在聯(lián)盟內(nèi)的聯(lián)合實體之間傳輸數(shù)據(jù)對象的方法。比如服務提供商的第一聯(lián)合實體從比如標識提供商的第二聯(lián)合實體接收工件,第二聯(lián)合實體生成數(shù)據(jù)對象比如斷言,在第一聯(lián)合實體中使用或者由第一聯(lián)合實體使用。工件引用由第二聯(lián)合實體本地存儲的數(shù)據(jù)對象,第二聯(lián)合實體實施為具有一組數(shù)據(jù)處理系統(tǒng)的分布式數(shù)據(jù)處理系統(tǒng),每一個數(shù)據(jù)處理系統(tǒng)能夠生成工件和工件引用的數(shù)據(jù)對象,并且每一個數(shù)據(jù)處理系統(tǒng)能夠代理數(shù)據(jù)對象檢索請求到分布式數(shù)據(jù)處理系統(tǒng)內(nèi)的其它數(shù)據(jù)處理系統(tǒng)。當?shù)诙?lián)合實體從第一聯(lián)合實體接收到具有工件的數(shù)據(jù)對象檢索請求時,使用工件從分布式數(shù)據(jù)處理系統(tǒng)中檢索工件引用的數(shù)據(jù)對象。
文檔編號G06F9/46GK101102257SQ200710127999
公開日2008年1月9日 申請日期2007年7月6日 優(yōu)先權(quán)日2006年7月8日
發(fā)明者希澤爾·M.·辛頓, 帕特里克·R.·瓦爾德羅普, 馬修·P.·杜甘 申請人:國際商業(yè)機器公司