使用發(fā)布訂閱模型的身份提供者發(fā)現(xiàn)服務的制作方法
【專利摘要】代理集成在F-SSO環(huán)境中,并且與外部身份提供者(IdP)實例發(fā)現(xiàn)服務交互。代理將IdP實例請求代理到發(fā)現(xiàn)服務,并且接收包括IdP實例分配的響應。代理保持實例分配的高速緩存。隨著接收新的實例請求,替代將這些請求代理到發(fā)現(xiàn)服務,高速緩存的分配數(shù)據(jù)用于提供適當?shù)捻憫?,從而減少識別要求的IdP實例所需的時間。通過訂閱來自發(fā)現(xiàn)服務的更新,代理動態(tài)地保持和管理其高速緩存。更新識別在包括IdP服務的一組地理上分布的實例中出現(xiàn)的IdP實例改變(諸如服務器離線用于維護,添加新的服務等)。經(jīng)由發(fā)布-訂閱模型提供更新,使得代理主動地接收改變通知。
【專利說明】使用發(fā)布訂閱模型的身份提供者發(fā)現(xiàn)服務
【技術領域】
[0001] 本公開涉及聯(lián)邦環(huán)境(federated environment)中計算資源的管理,并且具 體涉及用于使用發(fā)布訂閱模型的身份提供者發(fā)現(xiàn)服務(identity provider discovery service)的方法。
【背景技術】
[0002] 聯(lián)邦環(huán)境是本領域公知的。聯(lián)邦是一組獨立實體(諸如企業(yè)、組織、機構等),其 協(xié)作以為用戶提供單點登陸(single-sign-on)、易用體驗。聯(lián)邦環(huán)境不同于典型的單點登 陸環(huán)境在于兩個實體不需要具有直接的、預先建立的、定義對于用戶如何傳送和傳送什么 信息的關系。在聯(lián)邦環(huán)境內(nèi),實體提供處理認證用戶,接受由其他實體呈現(xiàn)的認證斷言(例 如,認證令牌),以及提供將用戶的擔保身份轉(zhuǎn)換為本地實體內(nèi)理解的身份的一些形式的轉(zhuǎn) 換的服務。聯(lián)邦減輕了服務提供者的管理負擔。服務提供者(SP)可以依賴于其相對于聯(lián) 邦整體的信任關系;服務提供者不需要管理認證信息,諸如用戶密碼信息,因為它可以依賴 于由用戶的認證家域(authentication home domain)完成的認證,該認證家域是用戶在其 認證的域。
[0003] 特別地,聯(lián)邦實體可以擔當提供關于聯(lián)邦用戶的身份信息和屬性信息的用戶的家 域。提供身份信息、身份或認證斷言、或身份服務的聯(lián)邦計算環(huán)境中的實體稱為身份提供 者(IdP)。同一聯(lián)邦內(nèi)的其他實體或聯(lián)邦伙伴可以依賴于用于用戶的認證證書的主要管理 (例如,接受由用戶的身份提供者提供的單點登陸令牌)的身份提供者。身份提供者是特定 類型的服務,其提供作為服務的身份信息給聯(lián)邦計算環(huán)境中的其他實體。
[0004] 聯(lián)邦單點登陸(F-SS0)允許用戶裕服務提供者(SP)直接交互,并且為了在認證的 環(huán)境下接收身份信息的目的,利用SP和IdP之間的安全信任關系。
[0005] 用于身份提供者發(fā)現(xiàn)的典型模型是與終端用戶直接交互的服務。該方法在多種場 景中是有用的,例如,允許終端用戶從可用身份提供者的列表選擇,或者便于屬性同意。已 知的發(fā)現(xiàn)服務實施方式典型地以獨立方式操作,或者通過直接嵌入服務提供者。在高等級, 一個典型的發(fā)現(xiàn)模型工作如下。終端用戶訪問應用(SP),然后手動地選擇身份提供者。月艮 務提供者然后將終端用戶重新定向到選擇的身份提供者。終端用戶對身份提供者認證,身 份提供者(在認證之后)然后將終端用戶重新定向(典型地通過基于HTTP重定向)回應 用。IdP還為SP提供身份斷言,諸如安全斷言標記語言(SAML)斷言或令牌,其提供聯(lián)邦用 戶已經(jīng)認證的證明。然后在聯(lián)邦用戶和SP之間建立終端用戶會話以完成該處理。
[0006] 另一典型的發(fā)現(xiàn)方法是SP將用戶重新定向到另一服務,其然后與用戶交互以選 擇IdP。該服務然后將用戶重新定向到IdP用于認證,然后用戶重新定向回SP。
[0007] 在一些場景中,單個身份提供者可以在地理上分布的實例上實施。在此情況下,試 圖訪問SP的用戶需要定向到最近或者最恰當?shù)腎dP實例。該操作可以由身份提供者實例 發(fā)現(xiàn)服務提供,如在共同擁有的美國專利號12/959, 413中描述的。IdP實例發(fā)現(xiàn)服務提供 一組身份提供者實例的特定身份提供者實例的自動發(fā)現(xiàn)以及綁定。在該方法中,特定身份 提供者的選擇可以基于一個或多個標準,諸如用戶相近性(網(wǎng)絡或地理)、IdP實例負載或 可用性、IdP實例能力、與特定實例相關聯(lián)的性能度量、現(xiàn)有IdP綁定或一些組合。
[0008] 盡管IdP實例發(fā)現(xiàn)服務允許服務提供者動態(tài)地檢索適當?shù)腎dP實例的位置,用于 F-SS0協(xié)議的完成,設計這樣的技術以在F-SS0環(huán)境外部操作,并且它們依賴于"基于拉動 的(pull-based) "方法以根據(jù)需要獲得IdP實例信息。
【發(fā)明內(nèi)容】
[0009] 本發(fā)明描述了一種增強的身份提供者實例發(fā)現(xiàn)服務(IdPIDS)。在該方法中,發(fā)現(xiàn) 服務代理優(yōu)選地集成在F-SS0環(huán)境(其可以是基于云的)內(nèi),并且用于與外部IdP實例發(fā) 現(xiàn)服務交互。發(fā)現(xiàn)服務代理將IdP實例請求代理到發(fā)現(xiàn)服務,并且接收對于這種請求的響 應。響應典型地包括已經(jīng)由發(fā)現(xiàn)服務分配來處理該請求的實例的身份。代理保持其中存儲 實例分配的高速緩存。隨著在代理接收新的實例請求,代理可以使用高速緩存的分配數(shù)據(jù) 以提供適當?shù)捻憫?,替代將這些請求代理到發(fā)現(xiàn)服務,從而減少識別請求的IdP實例所需 的時間。代理通過訂閱來自發(fā)現(xiàn)服務的更新動態(tài)地保持和管理其本地高速緩存,發(fā)現(xiàn)服務 更新在包括IdP服務的一組地理上分布的實例內(nèi)出現(xiàn)的身份IdP實例改變(諸如服務器為 了維護而離線,添加新的服務等)。優(yōu)選地,使用使得代理主動接收關于后端IdP服務中改 變的通知的發(fā)布-訂閱(pub-sub)模型,將更新提供給代理。
[0010] 前述已經(jīng)概述本發(fā)明的一些更相關的特征。這些特征應該理解為僅僅是說明性 的。通過以不同的方式應用公開的發(fā)明或者通過修改本發(fā)明可以獲得一些其他有益結果, 如將描述的。
[0011] 從第一方面看,本發(fā)明提供了用于使用身份提供者實例發(fā)現(xiàn)服務提供身份提供者 服務的方法,包括:在由發(fā)現(xiàn)服務處理對于身份提供者實例的請求時,接收和存儲識別身份 提供者實例的數(shù)據(jù);接收關于與所述發(fā)現(xiàn)服務相關聯(lián)的資源的更新,經(jīng)由在硬件元件上支 持的發(fā)布-訂閱通知服務接收所述更新;基于所述更新,修改所述數(shù)據(jù);以及在接收對于身 份提供者實例的新請求時,響應于所述新請求使用修改的數(shù)據(jù)以識別用于使用的身份提供 者實例。
[0012] 優(yōu)選地,本發(fā)明提供了一種方法,其中所述數(shù)據(jù)是將請求與由所述發(fā)現(xiàn)服務選擇 以服務所述請求的身份提供者實例相關聯(lián)的分配數(shù)據(jù)。
[0013] 優(yōu)選地,本發(fā)明提供了一種方法,其中周期性地或非同步地接收所述更新。
[0014] 優(yōu)選地,本發(fā)明提供了一種方法,其中所述通知服務是由所述身份提供者實例發(fā) 現(xiàn)服務提供的Web服務。
[0015] 優(yōu)選地,本發(fā)明提供了一種方法,還包括訂閱所述更新。
[0016] 優(yōu)選地,本發(fā)明提供了一種方法,其中所述更新包括以下之一:與一個或多個身份 提供者實例相關聯(lián)的負載、一個或多個身份提供者實例的可用性、與一個或多個身份提供 者實例相關聯(lián)的性能度量、以及與一個或多個身份提供者實例相關聯(lián)的現(xiàn)有綁定。
[0017] 優(yōu)選地,本發(fā)明提供了一種方法,其中根據(jù)策略或商業(yè)邏輯修改所述數(shù)據(jù)。
[0018] 從另一方面看,本發(fā)明提供了一種用于使用身份提供者實例發(fā)現(xiàn)服務提供身份提 供者服務的裝置,包括:處理器;保持計算機程序指令的計算機存儲器,當計算機程序指令 由處理器運行時執(zhí)行一種方法,包括:在由發(fā)現(xiàn)服務處理對于身份提供者實例的請求時,接 收和存儲識別身份提供者實例的數(shù)據(jù);接收關于與所述發(fā)現(xiàn)服務相關聯(lián)的資源的更新,經(jīng) 由在硬件元件上支持的發(fā)布-訂閱通知服務接收所述更新;基于所述更新,修改所述數(shù)據(jù); 以及在接收對于身份提供者實例的新請求時,響應于所述新請求使用修改的數(shù)據(jù)以識別用 于使用的身份提供者實例。
[0019] 優(yōu)選地,本發(fā)明提供了一種裝置,其中所述數(shù)據(jù)是將請求與由所述發(fā)現(xiàn)服務選擇 以服務所述請求的身份提供者實例相關聯(lián)的分配數(shù)據(jù)。
[0020] 優(yōu)選地,本發(fā)明提供了一種裝置,其中周期性地或非同步地接收所述更新。
[0021] 優(yōu)選地,本發(fā)明提供了一種裝置,其中所述通知服務是由所述身份提供者實例發(fā) 現(xiàn)服務提供的Web服務。
[0022] 優(yōu)選地,本發(fā)明提供了一種裝置,其中所述方法還包括訂閱所述更新。
[0023] 優(yōu)選地,本發(fā)明提供了一種裝置,其中所述更新包括以下之一:與一個或多個身份 提供者實例相關聯(lián)的負載、一個或多個身份提供者實例的可用性、與一個或多個身份提供 者實例相關聯(lián)的性能度量、以及與一個或多個身份提供者實例相關聯(lián)的現(xiàn)有綁定。
[0024] 優(yōu)選地,本發(fā)明提供了一種裝置,其中根據(jù)策略或商業(yè)邏輯修改所述數(shù)據(jù)。
[0025] 從另一方面看,本發(fā)明提供了一種用于在數(shù)據(jù)處理系統(tǒng)中使用的計算機可讀介質(zhì) 中的計算機程序產(chǎn)品,用于使用身份提供者實例發(fā)現(xiàn)服務提供身份提供者服務,計算機程 序產(chǎn)品保持計算機程序指令,當由數(shù)據(jù)處理系統(tǒng)運行時,執(zhí)行一種方法,包括:在由發(fā)現(xiàn)服 務處理對于身份提供者實例的請求時,接收和存儲識別身份提供者實例的數(shù)據(jù);接收關于 與所述發(fā)現(xiàn)服務相關聯(lián)的資源的更新,經(jīng)由在硬件元件上支持的發(fā)布-訂閱通知服務接收 所述更新;基于所述更新,修改所述數(shù)據(jù);以及在接收對于身份提供者實例的新請求時,響 應于所述新請求使用修改的數(shù)據(jù)以識別用于使用的身份提供者實例。
[0026] 優(yōu)選地,本發(fā)明提供了一種計算機程序產(chǎn)品,其中所述數(shù)據(jù)是將請求與由所述發(fā) 現(xiàn)服務選擇以服務所述請求的身份提供者實例相關聯(lián)的分配數(shù)據(jù)。
[0027] 優(yōu)選地,本發(fā)明提供了一種計算機程序產(chǎn)品,其中周期性地或非同步地接收所述 更新。
[0028] 優(yōu)選地,本發(fā)明提供了一種計算機程序產(chǎn)品,其中所述通知服務是由所述身份提 供者實例發(fā)現(xiàn)服務提供的Web服務。
[0029] 優(yōu)選地,本發(fā)明提供了一種計算機程序產(chǎn)品,其中所述方法還包括訂閱所述更新。
[0030] 優(yōu)選地,本發(fā)明提供了一種計算機程序產(chǎn)品,其中所述更新包括以下之一:與一個 或多個身份提供者實例相關聯(lián)的負載、一個或多個身份提供者實例的可用性、與一個或多 個身份提供者實例相關聯(lián)的性能度量、以及與一個或多個身份提供者實例相關聯(lián)的現(xiàn)有綁 定。
[0031] 優(yōu)選地,本發(fā)明提供了一種計算機程序產(chǎn)品,其中根據(jù)策略或商業(yè)邏輯修改所述 數(shù)據(jù)。
[0032] 從另一方面看,本發(fā)明提供了一種用于識別身份提供者實例的系統(tǒng),包括:在硬件 元件上支持并且具有與其相關聯(lián)的高速緩存的代理,所述代理發(fā)出身份提供者實例發(fā)現(xiàn)請 求;身份提供者實例發(fā)現(xiàn)服務,其接收由所述代理發(fā)出的每個身份提供者實例發(fā)現(xiàn)請求,進 行選擇,并且將識別所述選擇的數(shù)據(jù)返回所述代理,用于在所述高速緩存中存儲;以及通知 服務,所述代理通過所述通知服務訂閱以從所述身份提供者實例發(fā)現(xiàn)服務接收更新,至少 一個更新關于與發(fā)現(xiàn)服務相關聯(lián)的資源,并且由所述代理用于更新所述高速緩存中存儲的 所述數(shù)據(jù)。
[0033] 優(yōu)選地,本發(fā)明提供了一種系統(tǒng),其中所述通知服務根據(jù)發(fā)布-訂閱模型操作。
[0034] 優(yōu)選地,本發(fā)明提供了一種系統(tǒng),其中周期性地或非同步地提供所述更新。
[0035] 優(yōu)選地,本發(fā)明提供了一種系統(tǒng),其中所述高速緩存中存儲的所述數(shù)據(jù)根據(jù)策略 或商業(yè)邏輯更新。
【專利附圖】
【附圖說明】
[0036] 參照附圖,現(xiàn)在將僅通過示例的方式描述本發(fā)明的優(yōu)選實施例,附圖中:
[0037] 圖1描繪其中可以實施說明性實施例的示例性方面的分布式數(shù)據(jù)處理環(huán)境的示 例性框圖;
[0038] 圖2是其中可以實施說明性實施例的示例性方面的數(shù)據(jù)處理系統(tǒng)的示例性框圖;
[0039] 圖3圖示其圖示給定域的數(shù)據(jù)處理系統(tǒng)與可以用于支持描述的主題的實施例的 聯(lián)邦架構組件的集成的框圖;
[0040] 圖4描繪其中可以根據(jù)本發(fā)明的實施例實施身份提供者發(fā)現(xiàn)處理的云計算環(huán)境 的抽象模型層;
[0041] 圖5圖示用于實現(xiàn)身份提供者的發(fā)現(xiàn)的一般技術;
[0042] 圖6圖示用于將終端用戶綁定或路由到特定IdP實例的已知負載平衡的基于DNS 的機制;
[0043] 圖7圖示已知的企業(yè)內(nèi)IdP實例發(fā)現(xiàn)服務(IdPIDS);
[0044] 圖8圖示圖7的實施例中的SP、IdPIDS和IdP之間的交互;
[0045] 圖9圖示F-SS0云計算環(huán)境中發(fā)現(xiàn)服務代理的實施方式;
[0046] 圖10圖示根據(jù)本公開的教導的由發(fā)現(xiàn)服務代理和IdPIDS實施的發(fā)布-訂閱機 制;以及
[0047] 圖11圖示實施為WS-通知服務的代表性發(fā)布-訂閱機制。
【具體實施方式】
[0048] 現(xiàn)在參照附圖并且特別參照圖1-2,提供了其中可以實施本公開的實施例的數(shù)據(jù) 處理環(huán)境的示例性圖示。應該理解,圖1-2僅僅是示例性的,并且不旨在斷言或暗示對于其 中可以實施公開的主題的各方面或?qū)嵤├沫h(huán)境的任何限制??梢赃M行對于描述的環(huán)境的 許多修改而不背離本發(fā)明的精神和范圍。
[0049] 客戶端-服備器樽型
[0050] 現(xiàn)在參照附圖,圖1描繪其中可以實施說明性實施例的各方面的示例性分布式數(shù) 據(jù)處理系統(tǒng)的圖形表示。分布式數(shù)據(jù)處理系統(tǒng)100可以包括其中可以實施說明性實施例的 各方面的計算機的網(wǎng)絡。分布式數(shù)據(jù)處理系統(tǒng)100包含至少一個網(wǎng)絡102,其是用于提供 各種設備與分布式數(shù)據(jù)處理系統(tǒng)1〇〇中連接在一起的計算機之間的通信鏈路的介質(zhì)。網(wǎng)絡 102可以包括諸如有線、無線通信鏈路、或者光纖的連接。
[0051] 在描繪的示例中,服務器104和服務器106與存儲單元108 -起連接到網(wǎng)絡102。 此外,客戶端110、112和114也連接到網(wǎng)絡102。這些客戶端110、112和114可以例如是個 人計算機、網(wǎng)絡計算機等。在描繪的示例中,服務器104提供諸如引導文件、操作系統(tǒng)映像 和應用的數(shù)據(jù)到客戶端110、112和114??蛻舳?10、112和114是到描繪的示例中的服務 器104的客戶端。分布式數(shù)據(jù)處理系統(tǒng)100可以包括未示出的額外的服務器、客戶端和其 他設備。
[0052] 在描繪的示例中,分布式數(shù)據(jù)處理系統(tǒng)100是具有代表使用傳輸控制協(xié)議/因特 網(wǎng)協(xié)議(TCP/IP)套件的協(xié)議相互通信的網(wǎng)絡和網(wǎng)關的全世界集合的網(wǎng)絡102的因特網(wǎng)。在 因特網(wǎng)的心臟是由路由數(shù)據(jù)和消息的成千上萬的商業(yè)、政府、教育和其他計算機系統(tǒng)構成 的主要節(jié)點或主機計算機之間的高速數(shù)據(jù)通信線路的主干網(wǎng)。當然,分布式數(shù)據(jù)處理系統(tǒng) 100還可以實施以包括多個不同類型的網(wǎng)絡,諸如例如內(nèi)聯(lián)網(wǎng)、局域網(wǎng)(LAN)、廣域網(wǎng)(WAN) 等。如上所述,圖1旨在為示例,不是作為對于公開的主題的不同實施例的架構限制,并且 因此,圖1示出的特定元件不應視為對于其中可以實施本發(fā)明的說明性實施例的環(huán)境的限 制。
[0053] 現(xiàn)在參照圖2,示出其中可以實施說明性實施例的數(shù)據(jù)處理系統(tǒng)的框圖。數(shù)據(jù)處理 系統(tǒng)200是諸如圖1中的服務器104或客戶端110的計算機的示例,其中可以為說明性實 施例定位實施處理的計算機可用程序代碼或指令。在該說明性示例中,數(shù)據(jù)處理系統(tǒng)200 包括通信組織202,其提供處理器單元204、存儲器206、永久存儲208、通信單元210、輸入/ 輸出(I/O)單元212和顯示器214之間的連接。
[0054] 處理器單元204用于執(zhí)行可以加載到存儲器206的軟件的指令。取決于具體實施 方式,處理器單元204可以是一組一個或多個處理器,或者可以是多處理器核心。此外,處 理器單元204可以使用一個或多個異構處理器系統(tǒng)實施,其中主處理器與次級處理器存在 于單個芯片上。作為另一說明性示例,處理器單元204可以是包含多個相同類型的處理器 的對稱多處理器系統(tǒng)。
[0055] 存儲器206和永久存儲208是存儲設備的示例。存儲設備是能夠臨時和/或永久 存儲信息的任何塊硬件。在這些示例中,存儲器206例如可以是隨機存取存儲器或任何其 他合適的易失性或非易失性存儲設備。取決于【具體實施方式】,永久存儲208可以采取各種 形式。例如,永久存儲208可以包含一個或多個組件或設備。例如,永久存儲208可以是硬 驅(qū)動器、閃速存儲器、可重寫光盤、可重寫磁帶或上述一些組合。由永久存儲208使用的介 質(zhì)還可以是可移除的。例如,可移除硬驅(qū)動器可以用于永久存儲208。
[0056] 在這些示例中,通信單元210提供與其他數(shù)據(jù)處理系統(tǒng)或設備的通信。在這些示 例中,通信單元210是網(wǎng)絡接口卡。通信單元210可以通過使用物理和無線通信鏈路的任 一或兩者提供通信。
[0057] 輸入/輸出單元212允許與可以連接到數(shù)據(jù)處理系統(tǒng)200的其他設備的數(shù)據(jù)的輸 入和輸出。例如,輸入/輸出單元212可以通過鍵盤和鼠標提供用于用戶輸入的連接。此 夕卜,輸入/輸出單元212可以發(fā)送輸出到打印機。顯示器214提供顯示信息給用戶的機制。
[0058] 用于操作系統(tǒng)和應用或程序的指令位于永久存儲208上。這些指令可以加載到存 儲器206中,用于由處理器單元204執(zhí)行。不同實施例的處理可以通過使用可以位于存儲 器(諸如存儲器206)中的計算機實施的指令的處理器單元204執(zhí)行。這些指令稱為可以 由處理器單元204中的處理器讀取和執(zhí)行的程序代碼、計算機可用程序代碼、或者計算機 可讀程序代碼。不同實施例中的程序代碼可以體現(xiàn)在不同物理或有形計算機可讀介質(zhì)上, 諸如存儲器206或永久存儲208。
[0059] 程序代碼216以功能形式位于可以選擇性移除的計算機可讀介質(zhì)218中,并且可 以加載到或傳送到數(shù)據(jù)處理系統(tǒng)200用于由處理器單元204執(zhí)行。在這些示例中,程序代 碼216和計算機可讀介質(zhì)218形成計算機程序產(chǎn)品220。在一個示例中,計算機可讀介質(zhì) 218可以以有形形式,諸如例如可以插入或放置到作為永久存儲208的一部分的驅(qū)動器或 其他設備用于傳送到存儲設備(諸如作為永久存儲208的一部分的硬驅(qū)動器)上的光或磁 盤。在有形形式中,計算機可讀介質(zhì)218還可以從采取永久存儲的形式,諸如連接到數(shù)據(jù)處 理系統(tǒng)200的硬驅(qū)動器、指狀儲存器或閃速存儲器。計算機可讀介質(zhì)218的有形形式也稱 為計算機可記錄存儲介質(zhì)。在一些實例中,計算機可記錄介質(zhì)218不可移除。
[0060] 可替代地,程序代碼216可以通過到通信單元210的通信鏈路和/或通過到輸入/ 輸出單元212的連接,從計算機可讀介質(zhì)218傳送到數(shù)據(jù)處理系統(tǒng)200。在說明性示例中, 通信鏈路和/或連接可以是物理的或無線的。計算機可讀介質(zhì)還可以采取非有形介質(zhì)的形 式,諸如包含程序代碼的通信鏈路或無線傳輸。為數(shù)據(jù)處理系統(tǒng)200圖示的不同組件不意 味著提供對于其中可以實施不同實施例的方式的架構限制。不同說明性實施例可以在包括 除了或替代為數(shù)據(jù)處理系統(tǒng)200圖示的那些組件的組件的數(shù)據(jù)處理系統(tǒng)中實施。圖2中示 出的其他組件可以根據(jù)示出的說明性示例而變化。作為一個示例,數(shù)據(jù)處理系統(tǒng)200中的 存儲設備是可以存儲數(shù)據(jù)的任何硬件裝置。存儲器206、永久存儲208和計算機可讀介質(zhì) 218是以有形形式的存儲設備的示例。
[0061] 在另一示例中,總線系統(tǒng)可以用于實施通信組織202,并且可以包括一個或多個總 線(諸如系統(tǒng)總線或輸入/輸出總線)。當然,總線系統(tǒng)可以使用提供附接到總線系統(tǒng)的不 同組件或設備之間的數(shù)據(jù)的傳送的任何適當類型的架構來實施。此外,通信單元可以包括 用于發(fā)送和接收數(shù)據(jù)的一個或多個設備,諸如調(diào)制解調(diào)器或網(wǎng)絡適配器。此外,存儲器可以 例如是存儲器或諸如在可以存在于通信組織202中的接口和存儲器控制器中發(fā)現(xiàn)的高速 緩存。
[0062] 用于執(zhí)行本發(fā)明的操作的計算機程序代碼可以以一種或多種編程語言的任何組 合撰寫,包括諸如Java、Smalltalk、C++等的面向?qū)ο蟮木幊陶Z言以及諸如"C"編程語言或 類似編程語言的傳統(tǒng)程序性編程語言。程序代碼可以整體地在用戶計算機、部分地在用戶 計算機(作為獨立軟件包)、部分地在用戶計算機并且部分地在遠程計算機、或整體地在遠 程計算機或服務器上執(zhí)行。在后一場景中,遠程計算機可以通過任何類型的網(wǎng)絡(包括局 域網(wǎng)(LAN)或廣域網(wǎng)(WAN))連接到用戶的計算機,或者可以進行到外部計算機的連接(例 如,通過使用因特網(wǎng)服務提供者的因特網(wǎng))。
[0063] 本領域的普通技術人員將理解圖1-2中的硬件可以取決于實施方式而變化。除了 或替代圖1-2中描繪的硬件,可以使用其他內(nèi)部硬件或外部設備(諸如閃速存儲器、等價非 易失性存儲器或光盤驅(qū)動器等)。此外,除了之前提及的SMP系統(tǒng),說明性實施例的處理可 以應用于多處理器數(shù)據(jù)處理系統(tǒng),而不背離公開的主題的精神和范圍。
[0064] 如將所見的,在此描述的技術可以結合諸如圖1中圖示的標準客戶端-服務器范 例操作,標準客戶端-服務器范例中客戶端機器與在一組一個或多個機器上運行的因特網(wǎng) 可訪問的、基于Web的門戶通信。終端用戶操作能夠訪問和與門戶交互的可連接因特網(wǎng)的 設備(例如,桌面型計算機、筆記本計算機、連網(wǎng)的移動設備等)。典型地,每個客戶端或 服務器機器是包括硬件和軟件的諸如圖2所示的數(shù)據(jù)處理系統(tǒng),并且這些實體在諸如因特 網(wǎng)、內(nèi)聯(lián)網(wǎng)、外聯(lián)網(wǎng)、專用網(wǎng)或任何其他通信介質(zhì)或鏈接的網(wǎng)絡上相互通信。數(shù)據(jù)處理系統(tǒng) 典型地包括一個或多個處理器、操作系統(tǒng)、一個或多個應用以及一個或多個實用程序。數(shù) 據(jù)處理系統(tǒng)上的應用提供對于Web服務的原生支持,包括但不限于對于HTTP、SOAP、XML、 WSDL、UDDI和WSFI的支持。關于SOAP、WSDL、UDDI和WSFL的信息可從負責開發(fā)和維護這 些標準的萬維網(wǎng)聯(lián)盟(W3C)獲得;關于HTTP和XML的進一步信息可從互聯(lián)網(wǎng)工程任務組 (IETF)獲得。假設對于這些標準熟悉。
[0065] 聯(lián)邦樽型
[0066] 如上所述,在在此的一個實施例中,在"聯(lián)邦"環(huán)境的情況下實施身份提供者實例 發(fā)現(xiàn)。因此,提供以下背景。通常,企業(yè)具有它自身的用戶登記,并且保持與它自身的用戶 組的關系。每個企業(yè)典型地具有它自身認證這些用戶的方式。然而,在聯(lián)邦方案中,企業(yè)以 集體方式協(xié)作,使得一個企業(yè)中的用戶可以通過企業(yè)參與企業(yè)的聯(lián)邦利用與一組企業(yè)的關 系。用戶可以被授權訪問處于任何聯(lián)邦企業(yè)的資源,好像它們具有與每個企業(yè)的直接關系。 用戶不需要在每個感興趣的商業(yè)處登記,并且用戶不一直要求用戶標識和認證他們自身。 因此,在該聯(lián)邦環(huán)境中,認證方案允許信息技術中迅速演化的異構環(huán)境中的單點登陸體驗。 [0067] 如所公知的,聯(lián)邦是一組獨立實體,諸如企業(yè)、企業(yè)內(nèi)的邏輯單位、組織、機構等, 其協(xié)作以為用戶提供單點登陸、易用體驗;聯(lián)邦環(huán)境不同于典型的單點登陸環(huán)境在于兩個 實體不需要具有直接的、預先建立的、定義對于用戶如何傳送和傳送什么信息的關系。在聯(lián) 邦環(huán)境內(nèi),實體提供處理認證用戶,接受由其他實體呈現(xiàn)的認證斷言(例如,認證令牌),以 及提供將用戶的擔保身份轉(zhuǎn)換為本地實體內(nèi)理解的身份的一些形式的轉(zhuǎn)換的服務。
[0068] 聯(lián)邦減輕了服務提供者的管理負擔。服務提供者可以依賴于其相對于聯(lián)邦整體的 信任關系;服務提供者不需要管理認證信息,諸如用戶密碼信息,因為它可以依賴于由用戶 的認證家域或身份提供者完成的認證。聯(lián)邦環(huán)境允許用戶在第一實體處認證,該第一實體 可以充當發(fā)出用于在第二實體處使用的關于用戶的認證斷言的發(fā)出方。用戶然后可以通過 呈現(xiàn)由第一實體發(fā)出的認證斷言,而不必在第二實體處明確地重新認證,訪問處于第二、獨 立實體(稱為響應方)的受保護的資源。從發(fā)出方傳送到響應方的信息以斷言的形式,并 且該斷言可以包含以聲明形式的不同類型的信息。例如,斷言可以是關于用戶的認證身份 的聲明,或者它可以是關于與特定用戶相關聯(lián)的用戶屬性信息的聲明。此外,該信息可以由 響應方用于基于由響應方維護的響應方的訪問控制規(guī)則、身份映射規(guī)則和可能的一些用戶 屬性,提供對于響應方的資源的訪問。
[0069]身份提供者(IdP)是特定類型的服務,其提供身份信息作為服務到聯(lián)邦計算環(huán)境 中的其他實體。對于大多數(shù)聯(lián)邦交易,對于認證斷言的發(fā)出方將通常是身份提供者;任何其 他實體可以區(qū)別于身份提供者。提供聯(lián)邦計算環(huán)境中的服務的任何其他實體可以分類為服 務提供者。一旦用戶已經(jīng)認證到身份提供者,那么聯(lián)邦中的其他實體或企業(yè)可以僅僅被視 為給定聯(lián)邦會話或給定聯(lián)邦交易期間的服務提供者。
[0070] 盡管可能在聯(lián)邦環(huán)境中存在可以充當身份提供者的多個企業(yè),例如,因為它們是 具有生成和驗證用戶的認證證書等的能力的多個企業(yè),但是聯(lián)邦交易通常僅涉及單個身份 提供者。如果僅存在能夠認證用戶的單個聯(lián)邦實體,例如,因為聯(lián)邦內(nèi)存在一個并且僅存在 一個實體用戶與其執(zhí)行聯(lián)邦登記或注冊操作,那么將預期該實體充當用戶的身份提供者, 以便支持貫穿聯(lián)邦環(huán)境的用戶的交易。
[0071] 現(xiàn)在參照圖3,框圖描繪了給定域的預先存在的數(shù)據(jù)處理系統(tǒng)與可以用于支持身 份提供者的一些聯(lián)邦架構組件的集成。聯(lián)邦環(huán)境包括為用戶提供多種服務的實體。用戶 312與可以支持瀏覽器應用316和各種其他客戶端應用318的客戶端設備314交互。用戶 312區(qū)別于客戶端設備314、瀏覽器316和充當用戶和其他設備和服務之間接口的任何其他 軟件。在一些情況下,以下描述可以在客戶端應用中明確地活動的用戶與代表用戶活動的 客戶端應用之間進行區(qū)分。通常,盡管請求者是中介,諸如基于客戶端的應用、瀏覽器、SOAP 客戶端等,但是可以假設為代表用戶活動。
[0072] 瀏覽器應用316可以是典型的瀏覽器,其包括許多模塊,諸如HTTP通信組件320 和標記語言(ML)解釋器322。瀏覽器應用316還可以支持插件程序,諸如可能或可能不要 求虛擬機運行時間環(huán)境的Web服務客戶端324和/或可下載小應用程序。Web服務客戶端 324可以使用簡單對象訪問協(xié)議(SOAP),其是用于定義在分散的分布式環(huán)境中結構化和類 型化信息的交換的輕量協(xié)議。SOAP是基于XML的協(xié)議,其包括三個部分:定義用于描述消 息中是什么以及如何處理它的框架的封裝;用于表示應用定義的數(shù)據(jù)類型的實例的一組編 碼規(guī)則;以及用于代表遠程過程調(diào)用和響應的約定。用戶312可以使用瀏覽器應用316訪 問基于web的服務,但是用戶312還可以通過客戶端設備314上的其他web服務客戶端訪 問web服務。一些聯(lián)邦操作可以采用經(jīng)由用戶的瀏覽器的HTTP重新定向。然而,描述的技 術可以在多種通信協(xié)議上支持,并且不意味著限于基于HTTP的通信。例如,當需要時,聯(lián)邦 環(huán)境中的實體可以直接通信;不要求消息通過用戶的瀏覽器重新定向。
[0073] 聯(lián)邦環(huán)境所要求的組件可以與預先存在的系統(tǒng)集成。圖3描繪用于將這些組件實 施為到預先存在的系統(tǒng)的前端的一個實施例。在聯(lián)邦域處預先存在的組件可以被視為傳統(tǒng) 應用或后端處理組件330,其以類似于圖4所示的方式包括認證服務運行時間(ASR)服務器 332。ASR服務器332負責當域控制對于應用服務器334的訪問時認證用戶,對于應用服務 器334的訪問可以被視為生成、檢索或者其他方式支持或處理受保護的資源335。域可以繼 續(xù)使用傳統(tǒng)用戶注冊應用336,以注冊用戶用于訪問應用服務器334。針對傳統(tǒng)操作認證注 冊用戶所需的信息存儲在企業(yè)用戶注冊表338中;企業(yè)用戶注冊表338也可以對于聯(lián)邦組 件可訪問。
[0074] 在加入聯(lián)邦環(huán)境之后,域可以繼續(xù)操作而不干涉聯(lián)邦組件。換句話說,可以配置 域,使得用戶可以繼續(xù)直接訪問特定應用服務器或其他受保護的資源,而不通過接觸點服 務器或?qū)嵤┰摻佑|點服務器功能的其他組件;以此方式訪問系統(tǒng)的用戶將經(jīng)歷典型的認證 流程和典型的訪問。在此情況下,然而,直接訪問傳統(tǒng)系統(tǒng)的用戶將不能建立對于域的接觸 點服務器已知的聯(lián)邦會話。
[0075] 通過使用聯(lián)邦前端處理340,域的傳統(tǒng)功能可以集成到聯(lián)邦環(huán)境中,聯(lián)邦前端處 理340包括接觸點服務器342以及自身與安全令牌服務(STS)346交互的信任代理服務器 344 (或者更簡單地,信任代理344或信任服務344)。聯(lián)邦配置應用348允許管理用戶配置 聯(lián)邦前端組件,以允許它們通過聯(lián)邦接口單元350與傳統(tǒng)后端組件對接。聯(lián)邦功能可以在 獨立的系統(tǒng)組件或模塊中實施。典型地,用于執(zhí)行聯(lián)邦操作的大多數(shù)功能可以由單個聯(lián)邦 應用內(nèi)的邏輯組件的集合實施;聯(lián)邦用戶生命周期管理應用352包括信任服務344連同單 點登陸協(xié)議服務(SPS)354。信任服務344可以包括身份和屬性服務(IAS)356,其是負責作 為聯(lián)邦功能的一部分的涉及身份映射、屬性檢索等操作的服務。身份和屬性服務356還可 以在單點登陸操作期間由單點登陸協(xié)議服務354采用。聯(lián)邦用戶注冊表358可以在特定情 況下采用以保持用于聯(lián)邦專用目的的用戶相關信息。
[0076] 云計算樽型
[0077] 云計算是一種服務交付模式,用于對共享的可配置計算資源池進行方便、按需的 網(wǎng)絡訪問。可配置計算資源是能夠以最小的管理成本或與服務提供者進行最少的交互就能 快速部署和釋放的資源,例如可以是網(wǎng)絡、網(wǎng)絡帶寬、服務器、處理、內(nèi)存、存儲、應用、虛擬 機和服務。這種云模式可以包括至少五個特征、至少三個服務模型和至少四個部署模型, 更多描述具體請參見Peter Mell和Tim Grance在2009年10月7日發(fā)表的的"Draft NIST Working Definition of Cloud Computing,'。
[0078] 具體典型特征包括:
[0079] 按需自助式服務:云的消費者在無需與服務提供者進行人為交互的情況下能夠單 方面自動地按需部署諸如服務器時間和網(wǎng)絡存儲等的計算能力。
[0080] 廣泛的網(wǎng)絡接入:計算能力可以通過標準機制在網(wǎng)絡上獲取,這種標準機制促進 了通過不同種類的瘦客戶機平臺或厚客戶機平臺(例如移動電話、膝上型電腦、個人數(shù)字 助理PDA)對云的使用。
[0081] 資源池:提供者的計算資源被歸入資源池并通過多租戶(multi-tenant)模式服 務于多重消費者,其中按需將不同的實體資源和虛擬資源動態(tài)地分配和再分配。一般情況 下,消費者不能控制或甚至并不知曉所提供的資源的確切位置,但可以在較高抽象程度上 指定位置(例如國家、州或數(shù)據(jù)中心),因此具有位置無關性。
[0082] 迅速彈性:能夠迅速、有彈性地(有時是自動地)部署計算能力,以實現(xiàn)快速擴展, 并且能迅速釋放來快速縮小。在消費者看來,用于部署的可用計算能力往往顯得是無限的, 并能在任意時候都能獲取任意數(shù)量的計算能力。
[0083] 可測量的服務:云系統(tǒng)通過利用適于服務類型(例如存儲、處理、帶寬和活躍用戶 帳號)的某種抽象程度的計量能力,自動地控制和優(yōu)化資源效用??梢员O(jiān)測、控制和報告資 源使用情況,為服務提供者和消費者雙方提供透明度。
[0084] 典型服務模型如下:
[0085] 軟件即服務(SaaS):向消費者提供的能力是使用提供者在云基礎架構上運行的 應用??梢酝ㄟ^諸如網(wǎng)絡瀏覽器的瘦客戶機接口(例如基于網(wǎng)絡的電子郵件)從各種客戶 機設備訪問應用。除了有限的特定于用戶的應用配置設置外,消費者既不管理也不控制包 括網(wǎng)絡、服務器、操作系統(tǒng)、存儲、乃至單個應用能力等的底層云基礎架構。
[0086] 平臺即服務(PaaS):向消費者提供的能力是在云基礎架構上部署消費者創(chuàng)建或 獲得的應用,這些應用利用提供者支持的程序設計語言和工具創(chuàng)建。消費者既不管理也不 控制包括網(wǎng)絡、服務器、操作系統(tǒng)或存儲的底層云基礎架構,但對其部署的應用具有控制 權,對應用托管環(huán)境配置可能也具有控制權。
[0087] 基礎架構即服務(IaaS):向消費者提供的能力是消費者能夠在其中部署并運行 包括操作系統(tǒng)和應用的任意軟件的處理、存儲、網(wǎng)絡和其他基礎計算資源。消費者既不管理 也不控制底層的云基礎架構,但是對操作系統(tǒng)、存儲和其部署的應用具有控制權,對選擇的 網(wǎng)絡組件(例如主機防火墻)可能具有有限的控制權。
[0088] 典型部署模型如下:
[0089] 私有云:云基礎架構單獨為某個組織運行。云基礎架構可以由該組織或第三方管 理并且可以存在于該組織內(nèi)部或外部。
[0090] 團體云:云基礎架構被若干組織共享并支持有共同利害關系(例如任務使命、安 全要求、政策和合規(guī)考慮)的特定團體。團體云可以由團體內(nèi)的多個組織或第三方管理并 且可以存在于該團體內(nèi)部或外部。
[0091] 公共云:云基礎架構向公眾或大型產(chǎn)業(yè)群提供并由出售云服務的組織擁有。
[0092] 混合云:云基礎架構由兩個或更多部署模型的云(私有云、團體云或公共云)組 成,這些云依然是獨特的實體,但是通過使數(shù)據(jù)和應用能夠移植的標準化技術或私有技術 (例如用于云之間的負載平衡的云突發(fā)流量分擔技術)綁定在一起。
[0093] 云計算環(huán)境是面向服務的,特點集中在無狀態(tài)性、低耦合性、模塊性和語意的互操 作性。云計算的核心是包含互連節(jié)點網(wǎng)絡的基礎架構。具有代表性的云計算節(jié)點如圖2所 示。具體來講,云計算節(jié)點具有計算機系統(tǒng)/服務器,其可與眾多其它通用或?qū)S糜嬎阆到y(tǒng) 環(huán)境或配置一起操作。眾所周知,適于與計算機系統(tǒng)/服務器一起操作的計算系統(tǒng)、環(huán)境和 /或配置的例子包括但不限于:個人計算機系統(tǒng)、服務器計算機系統(tǒng)、瘦客戶機、厚客戶機、 手持或膝上設備、基于微處理器的系統(tǒng)、機頂盒、可編程消費電子產(chǎn)品、網(wǎng)絡個人電腦、小型 計算機系統(tǒng)、大型計算機系統(tǒng)和包括上述任意系統(tǒng)的分布式云計算技術環(huán)境,等等。計算 機系統(tǒng)/服務器可以在由計算機系統(tǒng)執(zhí)行的計算機系統(tǒng)可執(zhí)行指令(諸如程序模塊)的一 般語境下描述。通常,程序模塊可以包括執(zhí)行特定的任務或者實現(xiàn)特定的抽象數(shù)據(jù)類型的 例程、程序、目標程序、組件、邏輯、數(shù)據(jù)結構等。計算機系統(tǒng)/服務器可以在通過通信網(wǎng)絡 鏈接的遠程處理設備執(zhí)行任務的分布式云計算環(huán)境中實施。在分布式云計算環(huán)境中,程序 模塊可以位于包括存儲設備的本地或遠程計算系統(tǒng)存儲介質(zhì)上。
[0094] 參照圖4,通過另外的背景,示出由云計算環(huán)境提供的一組功能抽象層。首先應當 理解,圖4所示的組件、層以及功能都僅僅是示意性的,本發(fā)明的實施例不限于此。如圖4 所示,提供下列層和對應功能:
[0095] 硬件和軟件層400包括硬件和軟件組件。硬件組件的例子包括:主機,例 如IBM? zSeries?系統(tǒng);基于RISC (精簡指令集計算機)體系結構的服務器,例如 IBM pSeries? 系統(tǒng);IBM xSeries? 系統(tǒng);IBM B丨adeCenter? 系統(tǒng);存儲設備;網(wǎng)絡 和網(wǎng)絡組件。軟件組件的例子包括:網(wǎng)絡應用服務器軟件,例如IBM WebSphere?應用服 務器軟件;數(shù)據(jù)庫軟件,例如IBM DB2?數(shù)據(jù)庫軟件。(IBM, zSeries, pSeries, xSeries, B ladeCenter, WebSphere以及DB2是國際商業(yè)機器公司在全世界各地的注冊商標)。
[0096] 虛擬層402提供一個抽象層,該層可以提供下列虛擬實體的例子:虛擬服務器、虛 擬存儲、虛擬網(wǎng)絡(包括虛擬私有網(wǎng)絡)、虛擬應用和操作系統(tǒng),以及虛擬客戶端。
[0097] 在一個示例中,管理層404可以提供下述功能:資源供應功能:提供用于在云計算 環(huán)境中執(zhí)行任務的計算資源和其它資源的動態(tài)獲取;計量和定價功能:在云計算環(huán)境內(nèi)對 資源的使用進行成本跟蹤,并為此提供帳單和發(fā)票。在一個例子中,該資源可以包括應用軟 件許可。安全功能:為云的消費者和任務提供身份認證,為數(shù)據(jù)和其它資源提供保護。用戶 門戶功能:為消費者和系統(tǒng)管理員提供對云計算環(huán)境的訪問。服務水平管理功能:提供云 計算資源的分配和管理,以滿足必需的服務水平。服務水平協(xié)議(SLA)計劃和履行功能:為 根據(jù)SLA預測的對云計算資源未來需求提供預先安排和供應。
[0098] 工作負載層406提供云計算環(huán)境可能實現(xiàn)的功能的示例。在該層中,可提供的工 作負載或功能的示例包括:地圖繪制與導航;軟件開發(fā)及生命周期管理;虛擬教室的教學 提供;數(shù)據(jù)分析處理;交易處理;以及根據(jù)本公開的教導,身份提供者實例發(fā)現(xiàn)。
[0099] 預先理解,盡管本公開包括關于云計算的詳細描述,但是在此敘述的教導的實施 方式不限于云計算環(huán)境。當然,本發(fā)明的實施例能夠結合已知或隨后開發(fā)的任何其他類型 的計算環(huán)境實施。
[0100] 因此,代表性的云計算環(huán)境具有一組高級功能組件,其包括前端身份管理器、商業(yè) 支持服務(BSS)功能組件、操作支持服務(0SS)功能組件以及計算云組件。身份管理器負 責與請求客戶端對接,以便提供身份管理,并且該組件可以用一個或多個已知系統(tǒng)實施,諸 如可從紐約Armonk的IBM公司獲得的Tivoli聯(lián)邦身份管理器(TFM)。在適當?shù)那闆r下, TFM可以用于提供F-SS0到其他云組件。商業(yè)支持服務組件提供特定管理功能,諸如賬單 支持。操作支持服務組件用于提供其他云組件(諸如虛擬機(VM)實例)的提供和管理。云 組件代表主要計算資源,其典型地是用于運行使得可經(jīng)由云訪問的目標應用410的多個虛 擬機實例。一個或多個數(shù)據(jù)庫用于存儲目錄、日志和其他工作數(shù)據(jù)。所有這些組件(包括 前端身份管理器)位于云"內(nèi)",但是這不是要求。在替代實施例中,身份管理器可以在云外 部操作。
[0101] 身份提供者實例發(fā)現(xiàn)
[0102] 還已知提供身份提供者(IdP)實例發(fā)現(xiàn)服務,有時稱為"IdPIDS"。優(yōu)選地,在終端 用戶訪問服務提供者以從應用獲得服務之后,從聯(lián)邦服務提供者(SP)自動訪問(例如,經(jīng) 由Web服務調(diào)用)IdPIDS。通常地,IdPIDS操作來從多個這樣的實例選擇(或者"選取") 身份提供者實例。如在此使用的,"實例"指由身份提供者執(zhí)行的一組功能,其中這樣的功能 在每個其他"實例"中復制或鏡像。因此,至少對于終端用戶客戶端交互的處理,每個身份 提供者"實例"可以被認為功能上等價于另一這樣的實例。特定身份提供者實例因此可以 存在于特定位置,特定時間,或者在給定發(fā)生。通常,IdPIDS操作來從可以用于接收終端用 戶綁定的多個這樣的實例定位"最佳的"身份提供者實例,盡管術語"最佳的"不應用于限 制公開的主題。特定"實例"可以是比另一這樣的實例"更好",但是不必然相對于一些抽象 或定義的標準"最好"。最低限度,IdPIDS操作來基于給定的"選擇"標準在另一這樣的實 例上選擇給定的IdP實例。如將在下面更詳細描述的,選擇標準可以是完全變化的,但是典 型的是以下之一:計算實體(例如,終端用戶客戶端機器或一些其他機器)和一個或多個身 份提供者實例之間的網(wǎng)絡相近性、計算實體和一個或多個身份提供者實例之間的地理相近 性、與一個或多個身份提供者實例相關聯(lián)的負載、一個或多個身份提供者實例的可用性、與 一個或多個身份提供者實例相關聯(lián)的能力(包括但不限于IdP實例是否支持要求的F-SS0 協(xié)議/方法)、與一個或多個身份提供者實例相關聯(lián)的性能度量、與一個或多個身份提供者 實例相關聯(lián)的現(xiàn)有綁定、SP是否具有與一個或多個特定實例建立的伙伴關系等。
[0103] 以下提供一般地基于身份提供者發(fā)現(xiàn)的問題的額外背景。在圖5中,假設終端用 戶500希望從服務提供者502獲得服務,并且具有多個獨立的身份提供者選項,諸如身份提 供者504、506、508和510。在該示例中,身份提供者相互非附屬,并且代表商業(yè)認證服務。已 知的發(fā)現(xiàn)服務實施方式(諸如圖5中圖示的)以獨立方式操作,或者通過直接嵌入服務提 供者操作。在高等級,發(fā)現(xiàn)模型工作如下。終端用戶500訪問服務提供者502 (如在此使用 的,"服務提供者"和相關聯(lián)的SP "應用"可以同時使用),然后手動地選擇身份提供者。月艮 務提供者然后將終端用戶重新定向到他或她希望使用的選擇的身份提供者(例如,"WWW. yahoo, com" IdP 504)。終端用戶對身份提供者認證,身份提供者(在認證之后)然后將終 端用戶重新定向(典型地通過基于HTTP重定向)回SP 502。IdP 504還為SP 502提供身 份斷言,諸如安全斷言標記語言(SAML)斷言或令牌,其提供聯(lián)邦用戶已經(jīng)認證的證明。然 后在聯(lián)邦用戶和SP之間建立終端用戶會話以完成該處理。
[0104] 圖5中示出的方法不涉及身份提供者"實例",由于每個身份提供者504、506、508 和510獨立操作?,F(xiàn)在參照圖6,已知的單個邏輯IdP發(fā)現(xiàn)服務提供有多個IdP實例。發(fā)現(xiàn) 服務可由服務提供者602訪問。在該實施例中,所有IdP實例604、606、608和610優(yōu)選地共 享公共站點(DNS)名,諸如"idp.xyz.com",并且每個實例位于特定位置(東京、班加羅爾、 倫敦和紐約)。全局服務負載平衡(GSLB)機制605將終端用戶600路由到特定IdP實例。 在一個方法中,GSLB是基于DNS的,盡管路由可以在傳統(tǒng)0SI模型的其他層執(zhí)行。因此,在 替代方法中,基于BGP的路由標準可以用于確定選擇哪個實例。更復雜的基于GSLB的方法 可以包括實現(xiàn)更精細粒度的地點選擇標準的顧問組件。
[0105] 圖7描述在其中企業(yè)具有多個IdP實例并且支持實施為聯(lián)邦服務提供者的多個應 用的實施例中的企業(yè)內(nèi)IdP發(fā)現(xiàn)技術。在該實施例中,如在圖6中,存在多個身份提供者實 例704、706、708和710,僅為了圖示的目的,多個身份提供者實例704、706、708和710位于 獨立的地理位置,諸如東京、班加羅爾、倫敦和紐約。不像圖6,其中使用基于GSLB的路由機 制選擇IdP實例,在此身份提供者發(fā)現(xiàn)執(zhí)行或?qū)嵤?服務"自身。由身份提供者實例發(fā)現(xiàn) 服務或" IdPIDS"提供發(fā)現(xiàn)方法。在該場景中,終端用戶700對服務提供者702進行請求,并 且該請求自動(或者程序化地)調(diào)用IdPIDS服務705, IdPIDS服務705然后用于從多個實 例704、706、708和710選擇IdP實例,多個實例704、706、708和710的每個由其唯一子域 [city], idp.xyz.com標識。同樣如圖7所示,一個或多個其他服務提供者(諸如SP 712) 也使用IdPIDS服務705。IdPIDS服務基于一個或多個標準選擇給定的IdP實例,一個或多 個標準包括但不限于到每個IdP的用戶相近性(網(wǎng)絡或地理)、IdP負載或可用性、IdP能 力、現(xiàn)有IdP綁定、或者其一些組合。優(yōu)選地,服務進行選擇而不要求選擇給定實例的處理 中直接終端用戶介入(盡管終端用戶最初可以介入選擇身份提供者服務)。
[0106] 圖8更詳細地圖示IdP實例發(fā)現(xiàn)處理。在該示例中,終端用戶800優(yōu)選地經(jīng)由SSL、 TLS等已經(jīng)建立到服務提供者802的連接。在步驟(1),客戶端瀏覽器通過將請求(諸如 " https://www.xyz.com/application/")傳遞到服務提供者802。在步驟(2),服務提供 者802對IdPIDS服務805進行對于IdP實例的Web服務請求。在步驟(3),IdPIDS從實例 804、806、808和810選擇IdP實例。在該示例中,IdPIDS 805已經(jīng)選擇倫敦實例。因此,在 步驟(4),IdPIDS 805返回對于在步驟(2)傳遞的請求的響應。典型地,該響應是URL,其 在步驟(5)由SP返回到客戶端瀏覽器作為重新定向目標。在步驟6,瀏覽器重新定向到選 擇的IdP實例,在此情況下的倫敦實例808,并且請求對于倫敦IdP實例的認證。在用戶以 已知方式認證之后,在步驟(7),基于倫敦的IdP實例808發(fā)出重新定向到終端用戶瀏覽器, 該重新定向使得客戶端瀏覽器返回到服務提供者802。這是步驟(8)。服務提供者802具 有域選擇的IdP實例的信任關系(如上參照圖3描述的)。然而,SP可以有或者可以沒有 域每個IdP實例的信任關系;在適當?shù)那闆r下,并且如上注意的,這樣的關系的存在(或者 其缺乏)可以是使用的選擇標準中。用戶的認證身份通過該聯(lián)邦信任關系812從IdP實例 808傳遞到服務提供者802,其可以使用包括SAML、OpenID等的多種已知機制實施。這完成 該處理。
[0107] 因此,根據(jù)實施例,當終端用戶(客戶端)訪問應用(服務提供者)時,服務提供者 對于IdPIDS進行請求,將其傳遞到客戶端的IP地址或其他相關信息(例如,應用標識符、 指示之前IdP綁定的cookie等)。作為服務,IdPIDS通過一個或多個技術確定適當?shù)腎dP 實例,并且將響應返回到服務提供者。服務提供者然后將客戶端重新定向到IdP,典型地通 過HTTP重新定向。取決于使用的特定F-SS0協(xié)議/綁定和本地配置的任何要求,該重新定 向可以適當?shù)卣{(diào)用IdP發(fā)起的或SP發(fā)起的F-SS0端點。IdP以通常方式認證客戶端,然后 將用戶重新定向回服務提供者。用戶的認證身份(如有選擇的IdP實例生成)經(jīng)由聯(lián)邦信 任關系傳遞到服務提供者。以此方式,選擇的F-SS0協(xié)議/綁定用于將適當?shù)纳矸菪畔?遞到SP,并且最終用戶重新定向到原始請求的服務。
[0108] 如所述的,IdPIDS可以實施多種方式來確定適當?shù)膶嵗@?,基于客戶端IP地 址,IdPIDS可以基于到IdP實例的接近(或者最佳)網(wǎng)絡相近性進行選擇??梢酝ㄟ^延遲、 往返時間(RTT)、自主系統(tǒng)(AS)跳躍的數(shù)目、分組丟失或其組合確定網(wǎng)絡相近性。替代網(wǎng) 絡相近性,決定可以基于地理相近性,在此情況下可以選擇"最近的"數(shù)據(jù)中心。在該處理 期間,可以使用IP范圍映射或IP到國家/地理映射。選擇標準可以時網(wǎng)絡和地理定位兩 者的給定函數(shù)?;蛘撸x擇處理可以基于具體IdP實例可能如何"忙"(負載),或者在具體 請求時間IdP實例是否可用。為此目的,優(yōu)選地每個IdP實例與IdPIDS服務通信,并且適 當?shù)恼埱?響應協(xié)議用于將狀態(tài)和負載數(shù)據(jù)從IdP實例傳送到服務。概括來說,每個IdP 實例的狀態(tài)典型地對于所有IdP實例是已知的(或者可能已知),這可以通過多種方式實 現(xiàn),諸如使用直接警告或提供數(shù)據(jù)(潛在地包括關于特定IdP組件或從屬實體的數(shù)據(jù))到 IdPIDS實例指示IdP實例的"健康"或可用性的監(jiān)視能力。負載數(shù)據(jù)可以包括但不限于CPU 負載、存儲負載等。當考慮實例負載時,服務可以執(zhí)行作為哪個實例在請求時最小負載的函 數(shù)的實例選擇。在替代中,實例選擇可以基于網(wǎng)絡和/或地理定位以及負載的組合。因此, 例如,特定IdP實例可能比另一 IdP實例更近(網(wǎng)絡方式),但是更重負載,在此情況下IdP 可能選擇更遠(網(wǎng)絡方式)的更少負載的IdP實例。
[0109] 選擇標準可以基于其他因素。因此,例如,一個或多個服務提供者實例(或者,更 一般地多個服務提供者實例的子集)可以具有不由所有實例共享的特定能力。在這樣的情 況下,IdPIDS將請求定向到具有希望的能力(或者可能最近或最小負載的實例,如果存在 若干共享能力的實例)的實例之一。通常,選擇可以基于與一個或多個服務提供者實例相 關聯(lián)的一些其他性能?;蛘?,選擇可以利用與一個或多個服務提供者實例相關聯(lián)的現(xiàn)有綁 定。該綁定可以以任何已知方式(諸如cookie)捕獲。
[0110] 除了定位、負載、能力或可用性外,選擇可以基于循環(huán)機制。
[0111] 服務提供者實例發(fā)現(xiàn)服務通過其執(zhí)行實例選擇的各種技術的上面的描述僅僅是 代表性的。一個或多個這些標準可以相互結合使用,服務可以在特定情況下使用這些技術 而不是別的(例如,在特定日子、在特定時間、在不同負載條件下等),服務可以默認、或者 在特定服務提供者(而不是其他)的情況下、對于特定類型的聯(lián)邦終端用戶等,使用一個或 其他技術。所有這些的變化視為在發(fā)現(xiàn)機制和在此實施的方法的范圍內(nèi)。
[0112] IdPIDS可以實施為云服務,諸如圖4中代表的。
[0113] 為了擴展和/或性能和可用性,IdPIDS自身可以具有處于多個傳遞地點的多個、 群集的實例。"群集的"IdPIDS服務實施例對于多個聯(lián)邦應用提供高可擴展和高可用身份提 供者"后端"發(fā)現(xiàn)服務。在該方法中,有應用請求驅(qū)動后端服務(與直接和用戶交互的典型 的前端服務相反)。IdP實例組織為"群集",其中每個群集位于給定定位,并且群集中的每 個實例與該群集中的所有其他實例"共同定位"。每個"群集"自身運行其自己的IdPIDS服 務;因此,IdPIDS自身在每個群集定位處"復制"或"鏡像"。通常,處于特定群集的IdPIDS 服務實例在自身共同定位的實例之間執(zhí)行"實例"選擇,或者IdPIDS可以將請求定向到位 于另一地點的另一 IdPIDS服務(例如,到另一群集)。因此,為了多個原因之一,用戶可以 定向到處于不同傳遞地點的身份提供者;如果本地IdPIDS那時不可用或過度負載,為了其 他負載平衡的目的,或者如果本地IdPIDS沒有提供有應用要求的具體能力。該群集方法也 是有利的,由于其實現(xiàn)本地IdP實例(或者這樣的實例的群集)取下用于維護,同時對于正 使用后端服務的聯(lián)邦應用保持完整的F-SS0能力。
[0114] 對于由IdPIDS返回的特定請求的響應可以包括聯(lián)邦專用URL。
[0115] 特定IdP實例可以使用全局服務負載平衡(GSLB)機制虛擬化。
[0116] 發(fā)現(xiàn)服備代理一利用發(fā)布-訂閱的IdP實例發(fā)現(xiàn)
[0117] 在以上作為背景的情況下,現(xiàn)在描述本公開的技術。
[0118] 在該方法中,"發(fā)現(xiàn)服務代理"集成到F-SS0基于云的環(huán)境,并且與外部身份提供者 (IdP)實例發(fā)現(xiàn)服務(諸如上面描述的IdPIDS實施例的任何)交互。通常地,代理將IdP 實例請求代理到發(fā)現(xiàn)服務,并且接收包括IdP實例分配和可能其他數(shù)據(jù)(諸如實例狀態(tài)) 的響應。代理保持實例分配的高速緩存(有時稱為本地高速緩存)。隨著接收新的實例請 求,高速緩存的分配數(shù)據(jù)(如果當前,如將描述的)用于提供適當?shù)捻憫娲鷮⑦@些請求代 理到發(fā)現(xiàn)服務。因為IdPIDS典型地位于遠離F-SS0環(huán)境,所以本地高速緩存的實例分配數(shù) 據(jù)的使用減少識別請求的IdP實例的所需的時間。根據(jù)本公開,代理通過訂閱來自發(fā)現(xiàn)服 務的更新動態(tài)地保持和管理其高速緩存。更新識別在包括IdP服務的地理上分布的實例的 組(或者實例群集)中或相關聯(lián)地出現(xiàn)IdP實例改變(諸如服務器為了維護而離線、添加 新的服務等)。優(yōu)選地,更新經(jīng)由發(fā)布-訂閱模型從IdPIDS提供到代理。以此方式,代理 主動(并且相對于實例請求不同步地)接收改變通知。代理使用該通知更新其本地高速緩 存,使得實例分配是當前的,并且反映 IdP實例(或者實例群集)真實的當時存在的后端狀 態(tài)。
[0119] 如所述的發(fā)現(xiàn)服務代理典型地以硬件和軟件實施,諸如圖2所示和上述。代理包 括(或者具有與其相關聯(lián)的)高速緩存(或者,更具體地,數(shù)據(jù)存儲),其中保持實例分配數(shù) 據(jù)。代理中的一個或多個控制例程用于提供高速緩存的各種功能,即,初始化高速緩存、用 初始實例分配數(shù)據(jù)布居高速緩存、接收實例分配請求和使用高速緩存的分配數(shù)據(jù)響應實例 分配請求、以及從遠程發(fā)現(xiàn)服務接收改變通知(優(yōu)選地,經(jīng)由發(fā)布-訂閱訂閱模型)并且適 當?shù)馗赂咚倬彺妗_@些功能下面更詳細描述。
[0120] 圖9圖示在基于云的環(huán)境的實施例中發(fā)現(xiàn)服務代理的實施方式,基于云的環(huán)境的 實施例實施F-SSO認證以及對云中支持的一個或多個商業(yè)應用的訪問。通常,并且如將描 述的,發(fā)現(xiàn)服務代理用于提供到(典型地,遠程的)發(fā)現(xiàn)服務的接口,發(fā)現(xiàn)服務用于確定要 用于服務特定IdP實例請求的適當IdP實例。
[0121] 如上一般地描述的,云環(huán)境900包括一組高等級組件,其典型地包括前端身份管 理器、商業(yè)支持服務(BSS)功能組件、運行支持服務(0SS)功能組件(未示出)以及計算云 組件。如圖9所示,其已經(jīng)為了說明的目的簡化,經(jīng)由可從IBM商業(yè)地獲得的用于電子商務 的Tiν〇Π l;【方問管理器(TAMeb)產(chǎn)品實施基礎訪問管理器902。由協(xié)議服務模塊904提供 F-SS0支持,其可以由可從IBM獲得的Tivoli聯(lián)邦身份管理器(TFM)實施。協(xié)議服務模塊 904包括相關聯(lián)的安全性令牌服務(STS) 906,其實施Web服務信任(WS-Trust)的消息傳送 機制以定義對于安全性令牌的發(fā)出、交換和驗證。WS-Trust協(xié)議允許Web服務客戶端請求 特定安全性令牌交換另一個的一些受信權限。高性能、多線程Web服務器908(附圖中稱為 WebSEAL)典型地ΤΑΜ組件管理對于身份管理器的訪問。商業(yè)支持服務(BSS)組件910提 供對于環(huán)境的管理功能,如已經(jīng)描述的。在該示例中,一個或多個商業(yè)應用912在多個虛擬 機實例(未示出)中運行。在LDAP中支持顧客的外部數(shù)據(jù)。顧客的環(huán)境916包括接觸點 918(諸如WebSEAL)和LDAP目錄918。經(jīng)由Web瀏覽器920或經(jīng)由"富有的(rich) "客戶 端(即,支持直接訪問客戶端的機器)提供客戶端訪問。以已知方式提供其他公共管理平 臺組件、數(shù)據(jù)庫和服務。當然,云計算基礎設施的特定細節(jié)不旨在為限制性的。
[0122] 在圖9中,發(fā)現(xiàn)服務代理922位于云計算環(huán)境中,并且它包括Web服務客戶端 (WS-C)924。在替代中,WS-C 924可以嵌入WebSEAL代理908,或在TFIM SS0協(xié)議服務模塊 904中,或在一些其他組件中。WS-C 924調(diào)用遠程身份提供者實例發(fā)現(xiàn)服務(IdPIDS) 926 以檢索要使用的適當?shù)纳矸萏峁┱邔嵗臉俗R(URL)。如上已經(jīng)描述的,該決定(通過 IdPIDS)可以基于多個因素,諸如發(fā)現(xiàn)服務代理的當前定位、意圖的IdP、請求F-SS0的應用 以及其他信息,包括但不限于IdPIDS已知的"后端"信息,諸如負載、網(wǎng)絡狀態(tài)等。
[0123] 為了支持性能環(huán)境,包括可能操作的IdPIDS服務自身變?yōu)椴豢捎玫囊粋€環(huán)境,發(fā) 現(xiàn)服務代理922保持實例分配的高速緩存928。如上注意的,代理還運行更新服務,以便動 態(tài)地保持和管理其本地高速緩存?,F(xiàn)在描述該操作。
[0124] 圖10圖示本技術的優(yōu)選操作。在該示例中,發(fā)現(xiàn)服務代理1000使用其相關聯(lián)的 WS-C 1002與遠程IdPIDS 1004通信。該交互可以在任何合適的協(xié)議(例如,REST、SOAP、 TLS (傳輸層安全性)上的HTTP等、或其一些組合)上發(fā)生。發(fā)現(xiàn)服務代理1000還訂閱由發(fā) 現(xiàn)服務發(fā)布的改變通知,如將描述的。在該操作場景中,隨著接收對于IdP實例的請求,發(fā) 現(xiàn)服務代理1000執(zhí)行(對于發(fā)現(xiàn)服務1004) -系列初始布居請求。這些請求與特定主機名 稱相關聯(lián),諸如該示例中的》¥¥.〇1〇11(1-;[13111.(301]1。優(yōu)選地,通過目標111^("¥¥¥.(31〇11(1-;[13111· com")、本地IP地址(例如,前端Web服務器1006的9. X. X. X)、請求F-SS0的應用(Web服 務器1006對其中介F-SS0的URL)等,區(qū)分IdP實例請求。因此,IdP請求數(shù)據(jù)可以包括這 些信息之一或組合。參照圖10,步驟(1)圖示W(wǎng)S-C發(fā)出相對于主機名稱的對于IdP實例的 請求,并且步驟(2)圖示發(fā)現(xiàn)服務提供它(服務)已經(jīng)確定應該用于服務特定請求的IdP 實例。隨著由發(fā)現(xiàn)服務1004服務這些初始布居請求,發(fā)現(xiàn)服務代理接收IdP分配。分配因 此將"請求數(shù)據(jù)"與"IdP實例"相關聯(lián)。在步驟(3),代理用實例分配數(shù)據(jù)布居它的本地高 速緩存,并且該數(shù)據(jù)可以包括諸如時間戳等的其他信息。數(shù)據(jù)存儲、查詢和從高速緩存的取 回可以基于IdP請求中的任何信息。隨著新的請求類別到達,代理用意圖的目的地(URL/IP 地址)布居它的本地高速緩存。盡管圖10中未圖示,隨著在代理處接收重復請求,發(fā)現(xiàn)服 務代理執(zhí)行對于高速緩存的查詢,并且假如現(xiàn)有信息仍是當前的,則重新使用它。因此,特 定的分配數(shù)據(jù)可以在高速緩存中具有存活時間(TTL);因此,當在代理處接收新的(重復) 請求時,代理檢查以確定它是否具有對于主機名稱(或其他請求數(shù)據(jù))的當前分配數(shù)據(jù);如 果是,則高速緩存重新使用存儲的分配數(shù)據(jù),而不是將請求代理到遠程發(fā)現(xiàn)服務。
[0125] 如上注意的,代理1000還訂閱由實例發(fā)現(xiàn)服務發(fā)布以提供整體服務的性能上的 額外提高、可靠性和可用性的改變通信。為此,發(fā)現(xiàn)服務提供發(fā)現(xiàn)服務代理訂閱的改變通知 服務。訂閱-通知機制可以以一對一或一對多的方式操作。因此,發(fā)現(xiàn)服務通知服務可以發(fā) 布可用于多個代理的更新。取決于實施方式,特定的訂閱-通知機制可以是任何傳統(tǒng)類型。 在示例性實施例中,可以利用由WS-通知指定的訂閱-通知機制。WS-通知使用基于主題 的發(fā)布/訂閱消息發(fā)送方式提供用于Web服務通信的開放標準。盡管具體WS-通知將依賴 于idPlDS實施方式細節(jié),但是在一個實例實施例中,通知服務可以使用IBM WebSphere? 應用服務器V7. 0實施,其對于基于XML的Web服務(JAX-WS)實施基于Java API的WS-通 知,已知為版本7. 0 WS-通知。
[0126] 在替代中,可以使用在OGSI (開放網(wǎng)格服務基礎設施)中指定的訂閱-通知機制。 為此目的可以使用的其他發(fā)布-訂閱(pub-sub)機制包括但不限于可從Microsoft獲得 的 WSP。
[0127] 概括來說,并且如在圖1所見,通知服務包括在IdPIDS中運行的通知生產(chǎn)者組件, 以及在代理(或與其相關聯(lián)的WS-C)中運行的通知消費者組件。以軟件實施每個這樣的組 件,軟件存儲在存儲器中作為一組計算機程序指令,并且由作為專業(yè)或?qū)S脵C器的一個或 多個處理器運行。使用適當?shù)幕趙eb的或可編程的接口,創(chuàng)建一個或多個"訂閱"。訂閱 是代表通知消費者組件、通知生產(chǎn)者組件、主題和各種其他過濾表示、策略和環(huán)境信息之間 的關系的WS-資源。訂閱者是充當發(fā)送訂閱請求消息到通知生產(chǎn)者組件的服務請求者的實 體(在該示例中,代理或WS-C)。訂閱者可以不同于通知消費者組件。為了生產(chǎn)具有額外規(guī) 模的通知服務,可以以與WS-通知規(guī)范一致的已知方式,實施訂閱管理器和/或訂閱中間人 組件。
[0128] 使用這種類型的發(fā)布-訂閱模型,本公開的發(fā)現(xiàn)服務代理訂閱來自發(fā)現(xiàn)服務的更 新。這允許服務代理接收關于對于包括IdP示例發(fā)現(xiàn)服務的資源(例如,網(wǎng)絡、服務群集、月艮 務器、服務等)的改變的通知。通知可以完全變化,并且它們可以以任何格式提供。因此, 可以實施WS-通知規(guī)范的含義內(nèi)的任何主題。通知為服務代理提供一般地關于發(fā)現(xiàn)服務并 且關于發(fā)現(xiàn)服務中的特定資源的最新和時間信息。因此,在沒有限制的情況下,通知可以有 任何屬性和類型。這么可以是粗糙粒度(例如,"發(fā)現(xiàn)服務是活動的")或精細粒度(例如, 在定位A的發(fā)現(xiàn)服務群集實例當前由于維護而暫停服務)等,并且它們可以周期性地(每 小時、每分鐘或每秒)或者非同步地(隨著特定時間出現(xiàn))或者以其一些組合來提供。通 知可以是資源特定的,諸如"[指名的資源]當前處于75%負載"、"[指名的資源]響應時 間>2ms"等。通知還可以提供可以由代理用于便利發(fā)現(xiàn)的信息,示例是"屬性服務不可用, 所有請求屬性的請求應該路由到X"等。在后一示例中,然后可以基于返回的標準選擇IdP 實例。當然,所有這些示例僅僅是為了說明的目的,并且不應視為限制。
[0129] 典型地,訂閱與特定主機名稱或發(fā)現(xiàn)服務中的其他可識別資源相關聯(lián)。通知服務 優(yōu)選地可由IdPIDS提供者或與服務代理自身相關聯(lián)配置。因此,在一種實施方式中,服務 代理輸出包括一個或多個可以在其配置通知的顯示屏幕的Web接口。
[0130] 返回參照圖10,步驟(4)圖示發(fā)現(xiàn)服務代理訂閱關于IdP實例"www. cloud-ibm. com"的更新,步驟(5)圖示發(fā)現(xiàn)服務發(fā)布對于該實例的更新。隨著由代理接收更新,代理確 定(基于策略或其他商業(yè)邏輯)是否以及如何更新它的實例分配數(shù)據(jù)的高速緩存。特定策 略或商業(yè)邏輯可以完全變化,盡管接收更新典型地實施一個或多個高速緩存無效規(guī)則。因 此,例如,如果發(fā)現(xiàn)服務中的服務器1. 2. 3. 4已經(jīng)用于服務之前在時間t的實例請求,那么 高速緩存可以存儲諸如WWW. cloud-ibm. com-服務器1.2. 3.4 {時間t}的條目。一旦接 收指示服務器1. 2. 3. 4當機用于維護的更新時,高速緩存那么可以使該高速緩存條目無效 (例如,通過清除它),或者另外改變到一些其他分配的關聯(lián)。以此方式,當由代理接收對于 主機名稱的新的(重復)請求時,更新(或者"當前")分配可以提供給請求的客戶端。通 過基于發(fā)現(xiàn)服務更新來更新高速緩存,代理動態(tài)地保持和管理它的關于后端IdP實例的信 息。這使得代理能夠可靠地并且以可擴展的方式從它的本地高速緩存服務實例請求,從而 擺脫必須由(典型地遠程)發(fā)現(xiàn)服務來服務的請求。
[0131] 概括來說,通知服務包括在IdPIDS中運行的通知生產(chǎn)者組件,以及在代理(或者 與其相關聯(lián)的WS-C)中運行的通知消費者組件。每個這樣的組件以軟件實施,軟件存儲在 計算機存儲器中作為一組計算機程序指令,并且由作為專業(yè)或?qū)S脵C器的一個或多個處理 器運行。使用適當?shù)幕趙eb的或可編程的接口,創(chuàng)建一個或多個"訂閱"。訂閱是代表通 知消費者組件、通知生產(chǎn)者組件、主題和各種其他過濾表示、策略和環(huán)境信息之間的關系的 WS-資源。訂閱者是充當發(fā)送訂閱請求消息到通知生產(chǎn)者組件的服務請求者的實體(在該 示例中,代理或WS-C)。為了生產(chǎn)具有額外規(guī)模的通知服務,可以以與WS-通知規(guī)范一致的 已知方式,實施訂閱管理器和/或訂閱中間人組件。
[0132] 上述技術提供了許多優(yōu)點,如已經(jīng)描述的。代理擺脫了實例發(fā)現(xiàn)。其使得F-SS0操 作能夠在云環(huán)境中安全地和有效地實施。此外,發(fā)布-訂閱模式便于代理和發(fā)現(xiàn)服務之間 的改變通知服務,其通過確保其分配數(shù)據(jù)的高速緩存是當前的并且反映可用于發(fā)現(xiàn)服務的 資源的實際狀態(tài),提升了代理的操作。該方法確保發(fā)現(xiàn)服務代理知曉關于后端資源的可用 性問題(例如,IdP實例離線或者過載,或者以其他方式不可用);因此,代理可以使用它的 高速緩存中的分配數(shù)據(jù)來響應請求,或者如果需要前進到服務(例如,因為高速緩存丟失 或其他),則請求將繼續(xù)。通過以此方式動態(tài)地保持和管理它的本地高速緩存,最小化識別 請求的IdP實例的時間。此外,通過在高速緩存響應于實例請求,最小化對于服務的負載。 當要求對于服務的請求時,通知服務確保這樣的請求定向到活動的資源。結果是更高可用、 高可靠和高可擴展發(fā)現(xiàn)服務。
[0133] 上述功能可以實施為獨立的方法,例如由處理器運行的基于軟件的功能,或者可 以用作管理服務(包括作為經(jīng)由S0AP/XML接口的Web服務)。在此描述的特定硬件和軟件 實施方式細節(jié)僅僅是為了說明的目的,而不意在限制描述的主題的范圍。
[0134] 更一般地,在公開的發(fā)明的環(huán)境中的計算設備每個是包括硬件和軟件的數(shù)據(jù)處理 系統(tǒng)(諸如圖2所示),并且這些實體通過網(wǎng)絡(諸如因特網(wǎng)、內(nèi)聯(lián)網(wǎng)、外聯(lián)網(wǎng)、專用網(wǎng)絡、 或者任何其他通信介質(zhì)或鏈路)相互通信。數(shù)據(jù)處理系統(tǒng)上的應用提供對于Web和其他 已知服務和協(xié)議的原生支持,包括但不限于對于HTTP、FTP、SMTP、SOAP、XML、WSDL、SAML、 Liberty、Shibboleth、OpenID、WS-Federation、Cardspace、WS-Trust、UDDI 和 WSFL 等的 支持。關于SOAP、WSDL、UDDI和WSFL的信息可從負責開發(fā)和維護這些標準的萬維網(wǎng)聯(lián)盟 (W3C)獲得;關于HTTP和XML的進一步信息可從互聯(lián)網(wǎng)工程任務組(IETF)獲得。假設對 于這些標準熟悉。
[0135] 除了基于云的基礎架構,在此描述的方案可以以或結合各種服務器側(cè)架構實施。 這些包括但不限于簡單η層架構、Web門戶、聯(lián)邦系統(tǒng)等。
[0136] 如上面的示例說明的,一個或多個身份提供者示例發(fā)現(xiàn)功能可以在云內(nèi)或外主 辦。
[0137] 更一般地,在此描述的主題可以采取完全硬件實施例、完全軟件實施例或包含硬 件和軟件元素兩者的實施例的形式。在優(yōu)選實施例中,以軟件實施分層的注銷功能,軟件包 括但不限于固件、駐留軟件、微代碼等。數(shù)據(jù)可以配置到數(shù)據(jù)結構(例如,陣列、鏈接的列表 等)并且存儲在數(shù)據(jù)存儲(諸如計算機存儲器)中。此外,如上注意的,在此描述的身份提 供者實例發(fā)現(xiàn)功能采取計算機程序產(chǎn)品的形式,計算機程序產(chǎn)品可從提供用于由或結合計 算機或任何指令運行系統(tǒng)使用的程序代碼的計算機可用或計算機可讀介質(zhì)獲得。為了描述 的目的,計算機可用或計算機可讀介質(zhì)可以是包含或存儲用于由或結合指令運行系統(tǒng)、裝 置或設備使用的任何裝置。介質(zhì)可以是電、磁、光、電磁、紅外或者半導體系統(tǒng)(或者裝置或 設備)。計算機可讀介質(zhì)的示例包括半導體或固態(tài)存儲器、磁帶、可移除計算機盤、隨機存取 存儲器(RAM)、只讀存儲器(ROM)、硬磁盤和光盤。光盤的當前示例包括致密盤-只讀存儲 器(CD-ROM)、致密盤-讀/寫(CD-R/W)和DVD。計算機可讀介質(zhì)是有形物品。
[0138] 計算機程序產(chǎn)品可以是具有實施一個或多個描述的功能的程序指令(或者程序 代碼)的產(chǎn)品。這些指令或代碼可以在通過網(wǎng)絡從遠程數(shù)據(jù)處理系統(tǒng)下載之后存儲在數(shù)據(jù) 處理系統(tǒng)中的計算機可讀存儲介質(zhì)中?;蛘?,那些指令或代碼可以存儲在服務器數(shù)據(jù)處理 系統(tǒng)中的計算機可讀存儲介質(zhì)中,并且適于通過網(wǎng)絡下載到遠程數(shù)據(jù)處理系統(tǒng)用于在遠程 系統(tǒng)中的計算機可讀存儲介質(zhì)中使用。
[0139] 在代表性實施例中,在專用計算機中,優(yōu)選地在由一個或多個處理器運行的軟件 中實施身份提供者實例發(fā)現(xiàn)組件。相關聯(lián)的配置(安全級別、狀態(tài)、定時器)存儲在相關聯(lián) 的數(shù)據(jù)存儲中。軟件還保持在一個或多個數(shù)據(jù)存儲或與一個或多個處理器相關聯(lián)的存儲器 中,并且軟件可以實施為一個或多個計算機程序。
[0140] 身份提供者實例發(fā)現(xiàn)功能可以實施為現(xiàn)有訪問管理器或策略管理解決方案的附 屬或擴展。
[0141] 盡管上面描述了由本發(fā)明的某些實施例執(zhí)行的特定順序的操作,但是應該理解這 樣的順序是示例性的,由于替代實施例可以以不同順序執(zhí)行操作,組合某些操作,疊加某些 操作等。說明書中對于給定實施例的參照指示描述的實施例可以包括特定特征、結構或特 性,但是每個實施例可以不必包括特定特征、結構或特性。
[0142] 最后,盡管已經(jīng)分別描述了系統(tǒng)的給定組件,但是本領域的普通技術人員將理解 一些功能可以在給定指令、程序序列、代碼部分等中組合或共享。
[0143] 如此在使用的,"客戶端側(cè)"應用廣泛地理解為指應用、與應用相關聯(lián)的頁面或者 由對于應用的客戶端側(cè)請求調(diào)用的一些其他資源或功能。如在此使用的"瀏覽器"不旨在 指任何具體瀏覽器(例如,Internet Explorer、Safari、FireFox等),而是應該廣泛地理解 為指可以訪問和顯示因特網(wǎng)可獲得的資源的任何客戶端側(cè)渲染引擎。此外,盡管典型地客 戶端側(cè)交互使用HTTP出現(xiàn),但是這也不是限制??蛻舳藗?cè)交互可以格式化為符合簡單對象 訪問協(xié)議(SOAP),并且可以使用在HTTP上(公共因特網(wǎng)上)的行進、FTP、或者任何其他可 靠的傳輸機制(諸如IBMK MQSeriesN支術和C0RBA,用于在企業(yè)內(nèi)聯(lián)網(wǎng)上的傳輸)。通 過提供到另一應用的鉤連(hook)、通過便于作為插件的機制的使用,通過鏈接到該機制等, 在此描述的任何應用或功能可以實施為原生代碼。
[0144] 如在此使用的,"身份提供者實例"是也可用在一個或多個其他這樣的實例中的身 份提供者的例示或?qū)嵤┓绞健R虼?,通常?實例"典型地是完全特征化的身份提供者(IdP), 其功能在至少一個其他這樣的實例中鏡像或復制。
[0145] 當然,在此描述的任何商業(yè)產(chǎn)品的標識不意在取為對于公開的主題的限制。
[0146] 已經(jīng)描述了本發(fā)明,現(xiàn)在要求保護如下。
【權利要求】
1. 一種用于使用身份提供者實例發(fā)現(xiàn)服務提供身份提供者服務的方法,包括: 在由發(fā)現(xiàn)服務處理對于身份提供者實例的請求時,接收和存儲識別身份提供者實例的 數(shù)據(jù); 接收關于與所述發(fā)現(xiàn)服務相關聯(lián)的資源的更新,經(jīng)由在硬件元件上支持的發(fā)布-訂閱 通知服務接收所述更新; 基于所述更新,修改所述數(shù)據(jù);以及 在接收對于身份提供者實例的新請求時,響應于所述新請求使用修改的數(shù)據(jù)以識別用 于使用的身份提供者實例。
2. 如權利要求1所述的方法,其中所述數(shù)據(jù)是將請求與由所述發(fā)現(xiàn)服務選擇以服務所 述請求的身份提供者實例相關聯(lián)的分配數(shù)據(jù)。
3. 如權利要求1所述的方法,其中周期性地或非同步地接收所述更新。
4. 如權利要求1所述的方法,其中所述通知服務是由所述身份提供者實例發(fā)現(xiàn)服務提 供的Web服務。
5. 如權利要求1所述的方法,還包括訂閱所述更新。
6. 如權利要求1所述的方法,其中所述更新包括以下之一:與一個或多個身份提供者 實例相關聯(lián)的負載、一個或多個身份提供者實例的可用性、與一個或多個身份提供者實例 相關聯(lián)的性能度量、以及與一個或多個身份提供者實例相關聯(lián)的現(xiàn)有綁定。
7. 如權利要求1所述的方法,其中根據(jù)策略或商業(yè)邏輯修改所述數(shù)據(jù)。
8. -種用于使用身份提供者實例發(fā)現(xiàn)服務提供身份提供者服務的裝置,包括: 處理器; 保持計算機程序指令的計算機存儲器,當計算機程序指令由處理器運行時執(zhí)行一種方 法,包括: 在由發(fā)現(xiàn)服務處理對于身份提供者實例的請求時,接收和存儲識別身份提供者實例的 數(shù)據(jù); 接收關于與所述發(fā)現(xiàn)服務相關聯(lián)的資源的更新,經(jīng)由在硬件元件上支持的發(fā)布-訂閱 通知服務接收所述更新; 基于所述更新,修改所述數(shù)據(jù);以及 在接收對于身份提供者實例的新請求時,響應于所述新請求使用修改的數(shù)據(jù)以識別用 于使用的身份提供者實例。
9. 如權利要求8所述的裝置,其中所述數(shù)據(jù)是將請求與由所述發(fā)現(xiàn)服務選擇以服務所 述請求的身份提供者實例相關聯(lián)的分配數(shù)據(jù)。
10. 如權利要求8所述的裝置,其中周期性地或非同步地接收所述更新。
11. 如權利要求8所述的裝置,其中所述通知服務是由所述身份提供者實例發(fā)現(xiàn)服務 提供的Web服務。
12. 如權利要求8所述的裝置,其中所述方法還包括訂閱所述更新。
13. 如權利要求8所述的裝置,其中所述更新包括以下之一:與一個或多個身份提供者 實例相關聯(lián)的負載、一個或多個身份提供者實例的可用性、與一個或多個身份提供者實例 相關聯(lián)的性能度量、以及與一個或多個身份提供者實例相關聯(lián)的現(xiàn)有綁定。
14. 如權利要求1所述的裝置,其中根據(jù)策略或商業(yè)邏輯修改所述數(shù)據(jù)。
15. -種用于在數(shù)據(jù)處理系統(tǒng)中使用的計算機可讀介質(zhì)中的計算機程序產(chǎn)品,用于使 用身份提供者實例發(fā)現(xiàn)服務提供身份提供者服務,計算機程序產(chǎn)品保持計算機程序指令, 當由數(shù)據(jù)處理系統(tǒng)運行時,執(zhí)行一種方法,包括: 在由發(fā)現(xiàn)服務處理對于身份提供者實例的請求時,接收和存儲識別身份提供者實例的 數(shù)據(jù); 接收關于與所述發(fā)現(xiàn)服務相關聯(lián)的資源的更新,經(jīng)由在硬件元件上支持的發(fā)布-訂閱 通知服務接收所述更新; 基于所述更新,修改所述數(shù)據(jù);以及 在接收對于身份提供者實例的新請求時,響應于所述新請求使用修改的數(shù)據(jù)以識別用 于使用的身份提供者實例。
16. 如權利要求15所述的計算機程序產(chǎn)品,其中所述數(shù)據(jù)是將請求與由所述發(fā)現(xiàn)服務 選擇以服務所述請求的身份提供者實例相關聯(lián)的分配數(shù)據(jù)。
17. 如權利要求15所述的計算機程序產(chǎn)品,其中周期性地或非同步地接收所述更新。
18. 如權利要求15所述的計算機程序產(chǎn)品,其中所述通知服務是由所述身份提供者實 例發(fā)現(xiàn)服務提供的Web服務。
19. 如權利要求15所述的計算機程序產(chǎn)品,其中所述方法還包括訂閱所述更新。
20. 如權利要求15所述的計算機程序產(chǎn)品,其中所述更新包括以下之一:與一個或多 個身份提供者實例相關聯(lián)的負載、一個或多個身份提供者實例的可用性、與一個或多個身 份提供者實例相關聯(lián)的性能度量、以及與一個或多個身份提供者實例相關聯(lián)的現(xiàn)有綁定。
21. 如權利要求15所述的計算機程序產(chǎn)品,其中根據(jù)策略或商業(yè)邏輯修改所述數(shù)據(jù)。
22. -種用于識別身份提供者實例的系統(tǒng),包括: 在硬件元件上支持并且具有與其相關聯(lián)的高速緩存的代理,所述代理發(fā)出身份提供者 實例發(fā)現(xiàn)請求; 身份提供者實例發(fā)現(xiàn)服務,其接收由所述代理發(fā)出的每個身份提供者實例發(fā)現(xiàn)請求, 進行選擇,并且將識別所述選擇的數(shù)據(jù)返回所述代理,用于在所述高速緩存中存儲;以及 通知服務,所述代理通過所述通知服務訂閱以從所述身份提供者實例發(fā)現(xiàn)服務接收更 新,至少一個更新關于與發(fā)現(xiàn)服務相關聯(lián)的資源,并且由所述代理用于更新所述高速緩存 中存儲的所述數(shù)據(jù)。
23. 如權利要求22所述的系統(tǒng),其中所述通知服務根據(jù)發(fā)布-訂閱模型操作。
24. 如權利要求22所述的系統(tǒng),其中周期性地或非同步地提供所述更新。
25. 如權利要求22所述的系統(tǒng),其中所述高速緩存中存儲的所述數(shù)據(jù)根據(jù)策略或商業(yè) 邏輯更新。
【文檔編號】G06F17/00GK104145261SQ201380010721
【公開日】2014年11月12日 申請日期:2013年1月29日 優(yōu)先權日:2012年2月23日
【發(fā)明者】H.M.欣頓, R.J.麥卡迪, C.盧尼 申請人:國際商業(yè)機器公司