專利名稱:用于異構(gòu)型聯(lián)合環(huán)境中的本機(jī)認(rèn)證協(xié)議的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及改進(jìn)的數(shù)據(jù)處理系統(tǒng),并特別涉及用于多計(jì)算機(jī)數(shù)據(jù)傳送的方法和裝置。更特別地,本發(fā)明涉及網(wǎng)絡(luò)化的計(jì)算機(jī)系統(tǒng)。
背景技術(shù):
通常,企業(yè)期望跨越多種網(wǎng)絡(luò),包括因特網(wǎng),以一種用戶友好的方式向授權(quán)用戶提供對(duì)受保護(hù)資源的安全訪問。盡管提供安全認(rèn)證機(jī)制降低了對(duì)受保護(hù)資源的未經(jīng)授權(quán)的訪問的風(fēng)險(xiǎn),然而同樣的安全認(rèn)證機(jī)制可能會(huì)成為用戶與受保護(hù)資源交互的障礙。用戶通常會(huì)期望這樣的能力,即從與一個(gè)應(yīng)用的交互切換至與另一個(gè)應(yīng)用的交互,而無需關(guān)心認(rèn)證障礙,這些認(rèn)證障礙用于保護(hù)支持這些應(yīng)用的每一個(gè)特定系統(tǒng)。
由于用戶變得更加成熟,他們期望計(jì)算機(jī)系統(tǒng)協(xié)調(diào)他們的動(dòng)作,以便減輕加在用戶身上的負(fù)擔(dān)。這類期望也應(yīng)用在認(rèn)證過程上。用戶會(huì)設(shè)想一旦他或她通過了某計(jì)算機(jī)系統(tǒng)的認(rèn)證,那么這種認(rèn)證就應(yīng)當(dāng)在該用戶的工作會(huì)話期間內(nèi)一直有效,或者至少在一個(gè)特定時(shí)間段內(nèi)有效,而不管對(duì)于用戶來說幾乎不可見的各種計(jì)算機(jī)體系結(jié)構(gòu)的邊界。企業(yè)通常會(huì)試圖在他們所部署的系統(tǒng)的操作特性中滿足這樣的期望,不僅可以安撫用戶,而且可以提高用戶的效率,不論這種效率是與雇員生產(chǎn)力還是與顧客滿意度相關(guān)。
更明確地說,在當(dāng)前的計(jì)算機(jī)環(huán)境中,許多應(yīng)用具有基于Web的可通過常規(guī)瀏覽器訪問的用戶界面,就這樣的計(jì)算機(jī)環(huán)境而言,用戶期望得到更高的用戶友好度,以及從一個(gè)基于Web的應(yīng)用切換至另一個(gè)時(shí)較低的或較少出現(xiàn)的障礙。在這種情境中,用戶會(huì)期望這樣的能力,即從與一個(gè)因特網(wǎng)域上的一個(gè)應(yīng)用的交互切換至與另一個(gè)域上的另一個(gè)應(yīng)用的交互,而無需關(guān)心保護(hù)每一特定域的認(rèn)證障礙。然而,即使許多系統(tǒng)通過易用的、基于Web的界面提供了安全認(rèn)證,用戶仍然要被迫對(duì)付多個(gè)認(rèn)證過程,這些認(rèn)證過程妨礙了用戶跨越一組域的訪問。在給定的時(shí)間范圍中,使用戶經(jīng)歷多個(gè)認(rèn)證過程會(huì)極大地影響用戶的效率。
多種技術(shù)被用來降低用戶和計(jì)算機(jī)系統(tǒng)管理員的認(rèn)證負(fù)擔(dān)。這些技術(shù)通常被叫做“單次登錄”(SSO)過程,因?yàn)樗鼈冇幸粋€(gè)共同的目標(biāo)在用戶完成一次登錄操作后,即通過認(rèn)證后,用戶隨后就不需要再進(jìn)行另一次認(rèn)證操作了。因此,目標(biāo)就是在一個(gè)特定的用戶會(huì)話期間,用戶僅需要完成一次認(rèn)證過程。
當(dāng)單次登錄的解決方案在一家給定企業(yè)的內(nèi)部實(shí)施時(shí),該種方案是成功的。然而,當(dāng)更多的企業(yè)參與電子商務(wù)市場(chǎng)或其他通過因特網(wǎng)連接的協(xié)作工作時(shí),由多個(gè)認(rèn)證過程或系統(tǒng)所帶來的障礙正在變得越來越尋常。以前的企業(yè)之間的單次登錄解決方案局限于同構(gòu)型環(huán)境,在這種環(huán)境中,參與企業(yè)之間存在預(yù)先建立的業(yè)務(wù)協(xié)定。這些業(yè)務(wù)協(xié)定部分應(yīng)用于建立信任,以及限制與規(guī)定怎樣以一種安全的方式在企業(yè)間傳輸信息。這些業(yè)務(wù)協(xié)定也包括了關(guān)于這樣的規(guī)則的技術(shù)協(xié)定,這些規(guī)則是關(guān)于怎樣在一家企業(yè)和另一家企業(yè)之間轉(zhuǎn)換或映射用戶身份,以及怎樣在參與企業(yè)之間傳輸用于為用戶擔(dān)保的信息。
換句話說,以前的單次登錄解決方案允許一家企業(yè)基于事先商議好或事先配置好的協(xié)定信任由其他企業(yè)生成的認(rèn)證聲明(連同此聲明中所提供的用戶身份)。每家不同的企業(yè)都了解怎樣創(chuàng)建和解釋這樣的認(rèn)證聲明,該聲明可以被曾交換過類似協(xié)定的企業(yè)例如在同一電子商務(wù)市場(chǎng)內(nèi)的企業(yè)所理解。由于存在著企業(yè)了解的一種確定性的關(guān)系可用來在系統(tǒng)之間映射用戶身份,這些同構(gòu)型環(huán)境是緊密結(jié)合的。由于存在用于建立單次登錄環(huán)境的業(yè)務(wù)協(xié)定,這種緊密關(guān)系是可能的。
盡管參與企業(yè)可能在同構(gòu)型環(huán)境中通過使用以前的單次登錄解決方案來互相合作,但考慮到需要和期望互連多個(gè)同構(gòu)型環(huán)境例如互連的電子商務(wù)市場(chǎng),這種環(huán)境是有局限性的。因此,擁有這樣的方法和系統(tǒng)是很有優(yōu)勢(shì)的,在該方法和系統(tǒng)中,在參與企業(yè)之間不存在預(yù)先建立的業(yè)務(wù)和技術(shù)轉(zhuǎn)換協(xié)定的情況下,企業(yè)可以為用戶提供類似的單次登錄體驗(yàn)。
發(fā)明內(nèi)容
提供了這樣的一種方法、裝置、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品,其中,聯(lián)合(federated)域在一個(gè)聯(lián)合環(huán)境中交互。該聯(lián)合中的域可以為在其他的聯(lián)合域上的用戶啟動(dòng)聯(lián)合的單次登錄操作。在一個(gè)域中的接觸點(diǎn)(point-of-contact)服務(wù)器依靠該域中的信任代理(proxy)來管理該域與該聯(lián)合之間的信任關(guān)系。信任代理在必要時(shí)解釋來自其他聯(lián)合域的聲明(assertion)。信任代理可與一個(gè)或多個(gè)信任中介(broker)建立信任關(guān)系,并且,信任代理可依靠信任中介的協(xié)助來解釋聲明。
在所附權(quán)利要求中提出了被認(rèn)為是本發(fā)明的特征的新穎的特色。通過參考以下的詳細(xì)說明并同時(shí)查看附圖,能夠最好地理解本發(fā)明本身、本發(fā)明的進(jìn)一步目標(biāo)和優(yōu)勢(shì),其中,圖1A描述了一個(gè)典型的數(shù)據(jù)處理系統(tǒng)的網(wǎng)絡(luò),其中每個(gè)系統(tǒng)均可實(shí)施本發(fā)明;圖1B描述了一個(gè)典型的計(jì)算機(jī)體系結(jié)構(gòu),它可以應(yīng)用于可實(shí)施本發(fā)明的數(shù)據(jù)處理系統(tǒng)中;圖1C描述了一個(gè)數(shù)據(jù)流圖,它說明了當(dāng)客戶端試圖訪問服務(wù)器上的受保護(hù)資源時(shí)可使用的一個(gè)典型認(rèn)證過程;圖1D描述了一個(gè)網(wǎng)絡(luò)圖,它說明了可實(shí)施本發(fā)明的一個(gè)典型的基于Web的環(huán)境;圖1E描述了一個(gè)框圖,它說明了一個(gè)典型的在線事務(wù)的示例,該事務(wù)可能需要用戶實(shí)施多個(gè)認(rèn)證操作;圖2A描述了一個(gè)框圖,它說明了針對(duì)一個(gè)事務(wù)的聯(lián)合環(huán)境的術(shù)語,該事務(wù)由用戶向第一家聯(lián)合企業(yè)提出,作為響應(yīng),該企業(yè)在聯(lián)合環(huán)境中的下游實(shí)體上調(diào)用動(dòng)作;圖2B描述了一個(gè)框圖,它說明了在給定域內(nèi)事先存在的系統(tǒng)與根據(jù)本發(fā)明的實(shí)施例的本發(fā)明的一些聯(lián)合體系結(jié)構(gòu)組件的集成;圖2C描述了一個(gè)框圖,它說明了根據(jù)本發(fā)明的一實(shí)施的聯(lián)合體系結(jié)構(gòu);圖2D描述了一個(gè)框圖,它說明了根據(jù)本發(fā)明在使用信任代理和信任中介的各聯(lián)合域之間的一組示例性的信任關(guān)系;圖3A描述了一個(gè)流程圖,它說明了在發(fā)布域中的一個(gè)普遍過程,此過程是為了在聯(lián)合環(huán)境中創(chuàng)建一個(gè)聲明;圖3B描述了一個(gè)流程圖,它說明了在依賴域中的一個(gè)普遍過程,此過程是為了拆開一個(gè)聲明;圖3C描述了一個(gè)流程圖,它說明了一個(gè)特定的過程,此過程是為了從發(fā)布域向依賴域推一個(gè)聲明,作為對(duì)發(fā)布域上的用戶動(dòng)作的響應(yīng);圖3D描述了一個(gè)流程圖,它說明了一個(gè)特定的過程,此過程是為了從發(fā)布域向依賴域推一個(gè)聲明,作為對(duì)發(fā)布域主動(dòng)截取一個(gè)發(fā)往依賴域的外傳請(qǐng)求的響應(yīng);圖3E描述了一個(gè)流程圖,它說明了一個(gè)拉模型,在此模型中,當(dāng)依賴域試圖滿足來自發(fā)送請(qǐng)求的用戶的一個(gè)資源訪問請(qǐng)求時(shí),依賴域?yàn)橛脩魪陌l(fā)布域請(qǐng)求獲得任何需要的聲明;和圖4描述了一個(gè)框圖,它說明了一個(gè)聯(lián)合環(huán)境,該環(huán)境支持聯(lián)合的單次登錄操作。
具體實(shí)施例方式
一般而言,可包含本發(fā)明或者與本發(fā)明相關(guān)的設(shè)備包括了多種多樣的數(shù)據(jù)處理技術(shù)。因此,在對(duì)本發(fā)明進(jìn)行更詳細(xì)的描述之前,作為背景,首先描述分布式數(shù)據(jù)處理系統(tǒng)內(nèi)的硬件和軟件組件的一個(gè)典型組織。
現(xiàn)在參考附圖,圖1A描述了一個(gè)典型的數(shù)據(jù)處理系統(tǒng)的網(wǎng)絡(luò),其中每一個(gè)數(shù)據(jù)處理系統(tǒng)均可實(shí)施本發(fā)明。分布式的數(shù)據(jù)處理系統(tǒng)100包含了網(wǎng)絡(luò)101,該網(wǎng)絡(luò)101作為一種媒介,用于為分布式數(shù)據(jù)處理系統(tǒng)100內(nèi)的連接在一起的各種設(shè)備和計(jì)算機(jī)提供通信鏈路。網(wǎng)絡(luò)101可包括永久連接,如導(dǎo)線或光纖線纜,或者通過電話或無線通訊建立的臨時(shí)連接。在所描述的例子中,服務(wù)器102和服務(wù)器103與存儲(chǔ)單元104一起與網(wǎng)絡(luò)101相連接。另外,客戶端105-107也與網(wǎng)絡(luò)101相連接??蛻舳?05-107和服務(wù)器102-103可以由各種計(jì)算機(jī)設(shè)備如主機(jī)、個(gè)人計(jì)算機(jī)、個(gè)人數(shù)字助理(PDA)等等來代表。分布式數(shù)據(jù)處理系統(tǒng)100可包括未顯示出的其他的服務(wù)器、客戶端、路由器、其他設(shè)備、以及對(duì)等體系結(jié)構(gòu)。
在所描述的例子中,分布式數(shù)據(jù)處理系統(tǒng)100可包括因特網(wǎng),其中網(wǎng)絡(luò)101代表了全世界的使用各種協(xié)議來彼此通信的網(wǎng)絡(luò)和網(wǎng)關(guān)的集合,這些協(xié)議例如有LDAP(輕型目錄訪問協(xié)議)、TCP/IP(傳輸控制協(xié)議/網(wǎng)際協(xié)議)、HTTP(超文本傳送協(xié)議)等等。當(dāng)然,分布式數(shù)據(jù)處理系統(tǒng)100也可包括若干不同類型的網(wǎng)絡(luò),如內(nèi)聯(lián)網(wǎng)、局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)。例如,服務(wù)器102直接支持客戶端109以及結(jié)合了無線通信鏈路的網(wǎng)絡(luò)110。支持網(wǎng)絡(luò)的電話111通過無線鏈路112與網(wǎng)絡(luò)110相連接,而個(gè)人數(shù)字助理113通過無線鏈路114與網(wǎng)絡(luò)110相連接。電話111和個(gè)人數(shù)字助理113也可利用適當(dāng)?shù)募夹g(shù)例如藍(lán)牙無線技術(shù)通過無線鏈路115在彼此之間直接傳輸數(shù)據(jù),這樣就可以建立起所謂的個(gè)人區(qū)域網(wǎng)或個(gè)人自組織(ad-hoc)網(wǎng)。通過類似方式,個(gè)人數(shù)字助理113與個(gè)人數(shù)字助理107可以通過無線通信鏈路116傳輸數(shù)據(jù)。
本發(fā)明可以實(shí)施于多種硬件平臺(tái)上和軟件環(huán)境中。圖1A旨在作為異構(gòu)型計(jì)算環(huán)境的一個(gè)示例,但不表明本發(fā)明在體系結(jié)構(gòu)上的限制。
現(xiàn)在參考圖1B,此圖示描述了一個(gè)數(shù)據(jù)處理系統(tǒng)的典型的計(jì)算機(jī)體系結(jié)構(gòu),該數(shù)據(jù)處理系統(tǒng)例如為圖1A中所示可實(shí)施本發(fā)明的數(shù)據(jù)處理系統(tǒng)。數(shù)據(jù)處理系統(tǒng)120包含了與內(nèi)部系統(tǒng)總線123相連接的一個(gè)或多個(gè)中央處理器(CPU)122,內(nèi)部系統(tǒng)總線123與隨機(jī)存取存儲(chǔ)器(RAM)124、只讀存儲(chǔ)器126和輸入/輸出適配器128相互連接,輸入/輸出適配器128支持各種輸入/輸出設(shè)備,如打印機(jī)130、盤單元132、或者其他未顯示出的設(shè)備,如音頻輸出系統(tǒng)等。系統(tǒng)總線123也與通信適配器134連接,通信適配器134提供了對(duì)通信鏈路136的訪問。用戶接口適配器148與各種用戶設(shè)備相連接,這些用戶設(shè)備例如有鍵盤140和鼠標(biāo)142,或其他未顯示出的設(shè)備,如觸摸屏、指示筆、麥克風(fēng)等等。顯示適配器144將系統(tǒng)總線123與顯示設(shè)備146相連接。
本領(lǐng)域中的普通技術(shù)人員會(huì)認(rèn)識(shí)到,取決于系統(tǒng)的實(shí)現(xiàn),圖1B中的硬件也可能不同。例如,該系統(tǒng)可能有一個(gè)或多個(gè)處理器,如一個(gè)基于IntelPentium的處理器和一個(gè)數(shù)字信號(hào)處理器(DSP),以及一種或多種類型的易失性存儲(chǔ)器和非易失性存儲(chǔ)器。其他外圍設(shè)施可以附加到圖1B的硬件中或者代替圖1B中描述的硬件。此處描述的示例并不意味著對(duì)于本發(fā)明的體系結(jié)構(gòu)上的限制。
本發(fā)明除了能夠?qū)嵤┯诟鞣N硬件平臺(tái)上之外,還可以實(shí)施于各種軟件環(huán)境之中。一個(gè)典型的操作系統(tǒng)可以用于控制每個(gè)數(shù)據(jù)處理系統(tǒng)內(nèi)部的程序執(zhí)行。例如,一個(gè)設(shè)備可以運(yùn)行Unix操作系統(tǒng),而另一個(gè)設(shè)備包含了一個(gè)簡(jiǎn)單的Java運(yùn)行時(shí)環(huán)境。一個(gè)典型的計(jì)算機(jī)平臺(tái)可包括瀏覽器,瀏覽器是眾所周知的一種軟件應(yīng)用,用來訪問各種格式的超文本文檔,如圖形文件、字處理軟件、可擴(kuò)展標(biāo)記語言(XML)、超文本標(biāo)記語言(HTML)、手持設(shè)備標(biāo)記語言(HDML)、無線標(biāo)記語言(WML)、以及其他各種格式和類型的文件。還應(yīng)該注意到,在設(shè)想中,如圖1A所示的分布式數(shù)據(jù)處理系統(tǒng)完全能夠支持各種對(duì)等子網(wǎng)絡(luò)和對(duì)等服務(wù)。
現(xiàn)在參考圖1C,此數(shù)據(jù)流圖說明了當(dāng)客戶端試圖訪問服務(wù)器上的受保護(hù)資源時(shí)的一個(gè)典型認(rèn)證過程。如圖所示,客戶端工作站150的用戶通過運(yùn)行于該客戶端工作站上的、用戶的Web瀏覽器,尋求經(jīng)由計(jì)算機(jī)網(wǎng)絡(luò)訪問在服務(wù)器151上的受保護(hù)資源。受保護(hù)資源由統(tǒng)一資源定位器(URL),或更一般地說,由統(tǒng)一資源標(biāo)識(shí)符(URI)所識(shí)別,只有被認(rèn)證并授權(quán)的用戶才能訪問該統(tǒng)一資源定位器或統(tǒng)一資源標(biāo)識(shí)符。該計(jì)算機(jī)網(wǎng)絡(luò)可能是因特網(wǎng)、內(nèi)聯(lián)網(wǎng)或其他網(wǎng)絡(luò),如圖1A或圖1B所示,而服務(wù)器可能是Web應(yīng)用服務(wù)器(WAS)、服務(wù)器應(yīng)用、小服務(wù)程序進(jìn)程,或諸如此類。
當(dāng)用戶請(qǐng)求訪問受保護(hù)資源,如域“ibm.com”內(nèi)的網(wǎng)頁時(shí)(步驟152),該過程就被啟動(dòng)。該Web瀏覽器(或關(guān)聯(lián)的應(yīng)用或小應(yīng)用程序)生成一個(gè)HTTP請(qǐng)求消息,此消息被發(fā)送至寄放域“ibm.com”的Web服務(wù)器(步驟153)。此服務(wù)器確定它沒有該客戶端的活動(dòng)會(huì)話(步驟154),于是服務(wù)器通過向客戶端發(fā)送某種類型的認(rèn)證質(zhì)詢,要求用戶執(zhí)行一認(rèn)證過程(步驟155)。該認(rèn)證質(zhì)詢可有多種格式,如超文本標(biāo)記語言(HTML)的形式。接著用戶提供被請(qǐng)求或要求的信息(步驟156),如用戶標(biāo)識(shí)符及關(guān)聯(lián)的口令,或者客戶端會(huì)自動(dòng)返回某種信息。
該認(rèn)證響應(yīng)信息被發(fā)送至服務(wù)器(步驟157),在此時(shí),服務(wù)器對(duì)該用戶或該客戶端進(jìn)行認(rèn)證(步驟158),例如,通過檢索先前提交的注冊(cè)信息并且將所呈現(xiàn)的認(rèn)證信息與用戶存儲(chǔ)的信息進(jìn)行匹配來進(jìn)行認(rèn)證。假定該認(rèn)證成功,就為該通過認(rèn)證的用戶或客戶端建立一個(gè)活動(dòng)會(huì)話。
接著服務(wù)器檢索被請(qǐng)求的Web頁面并發(fā)送一個(gè)HTTP響應(yīng)信息到該客戶端(步驟159)。在此時(shí),用戶可能會(huì)在瀏覽器中通過單擊一個(gè)超文本鏈接請(qǐng)求訪問“ibm.com”中的另一頁面(步驟160),于是瀏覽器發(fā)送另一個(gè)HTTP請(qǐng)求到該服務(wù)器(步驟161)。此時(shí),該服務(wù)器確認(rèn)該用戶已有一個(gè)活動(dòng)會(huì)話(步驟162),并通過另一個(gè)HTTP響應(yīng)消息將被請(qǐng)求的Web頁面發(fā)送回客戶端(步驟163)。盡管圖1C描述了一個(gè)典型的現(xiàn)有技術(shù)的過程,應(yīng)該注意到,其他可選的會(huì)話狀態(tài)管理技術(shù)也會(huì)被描述到,例如,在活動(dòng)會(huì)話中利用cookie來識(shí)別用戶,包括利用用于提供認(rèn)證證明的同一cookie。
現(xiàn)在參考圖1D,此網(wǎng)絡(luò)圖說明了可實(shí)現(xiàn)本發(fā)明的一個(gè)典型的基于Web的環(huán)境。在此環(huán)境中,在客戶端171上的瀏覽器170的用戶想要訪問受保護(hù)資源,該受保護(hù)資源位于DNS域173內(nèi)的Web應(yīng)用服務(wù)器172上,或位于DNS域175內(nèi)的Web應(yīng)用服務(wù)器174上。
用與圖1C所示類似的方式,用戶可以從許多域中的一個(gè)域上請(qǐng)求訪問受保護(hù)資源。圖1C僅僅展示了在特定域內(nèi)的單一服務(wù)器,與圖1C相反,圖1D中的每個(gè)域都有多個(gè)服務(wù)器。尤其是,每個(gè)域可具有相關(guān)聯(lián)的認(rèn)證服務(wù)器176和177。
在這個(gè)示例中,在客戶端171發(fā)出了對(duì)域173上受保護(hù)資源的請(qǐng)求后,Web應(yīng)用服務(wù)器172確定它沒有用于該客戶端171的活動(dòng)會(huì)話,于是它請(qǐng)求認(rèn)證服務(wù)器176對(duì)客戶端171執(zhí)行一個(gè)適當(dāng)?shù)恼J(rèn)證操作。認(rèn)證服務(wù)器176將認(rèn)證操作的結(jié)果傳達(dá)給Web應(yīng)用服務(wù)器172。如果用戶(或代表該用戶的瀏覽器170或客戶端171)成功地通過認(rèn)證,那么Web應(yīng)用服務(wù)器172為客戶端171建立一個(gè)會(huì)話并返回所請(qǐng)求的受保護(hù)資源。典型的是,一旦該用戶被認(rèn)證服務(wù)器所認(rèn)證,一個(gè)cookie會(huì)被設(shè)定并存放在瀏覽器里的cookie緩存中。圖1D只不過是這樣一種方式的一個(gè)示例,在這種方式中,一個(gè)域的處理資源可被多個(gè)服務(wù)器共享,特別是以便執(zhí)行認(rèn)證操作。
用類似的方式,在客戶端171發(fā)出對(duì)域175上的受保護(hù)資源的請(qǐng)求之后,認(rèn)證服務(wù)器177對(duì)客戶端171執(zhí)行一個(gè)適當(dāng)?shù)恼J(rèn)證操作,在此之后,Web應(yīng)用服務(wù)器174為客戶端171建立一個(gè)會(huì)話并返回所請(qǐng)求的受保護(hù)資源。
因此,圖1D說明了客戶端171可能有在不同的域中并行的會(huì)話,不過它需要完成多個(gè)認(rèn)證操作來建立這些并行的會(huì)話。
現(xiàn)在參考圖1E,此框圖說明了一個(gè)典型的在線事務(wù)的例子,該事務(wù)可能需要用戶實(shí)施多個(gè)認(rèn)證操作。再次參照?qǐng)D1C和圖1D,如圖1C所示,用戶在獲得對(duì)受控制資源的訪問之前,可能需要完成一次認(rèn)證操作。盡管未顯示在圖1C中,可在服務(wù)器151上部署一個(gè)認(rèn)證管理器,以檢索并使用對(duì)用戶進(jìn)行認(rèn)證時(shí)所需要的用戶信息。如圖1D所示,用戶可以在不同的域173和175中有多個(gè)當(dāng)前會(huì)話,并且盡管未顯示在圖1D中,但每個(gè)域均可以使用一個(gè)認(rèn)證管理器來替代或附加到認(rèn)證服務(wù)器。用類似方式,圖1E也說明了一組域,其中每個(gè)域都支持某種認(rèn)證管理器。圖1E說明了當(dāng)用戶訪問多個(gè)域,并且需要對(duì)每個(gè)域完成一次認(rèn)證操作時(shí),用戶會(huì)經(jīng)歷到的一些困難。
可將用戶190注冊(cè)于支持認(rèn)證管理器192的ISP域191,認(rèn)證管理器192對(duì)用戶190進(jìn)行認(rèn)證,以便完成與域191有關(guān)的事務(wù)。ISP域191可以是一個(gè)因特網(wǎng)服務(wù)提供者(ISP),它提供了因特網(wǎng)連接服務(wù)、電子郵件服務(wù)、以及其他可能的電子商務(wù)服務(wù)?;蛘?,ISP域191可以是用戶190經(jīng)常訪問的因特網(wǎng)門戶。
類似的,域193、195和197代表了典型的Web服務(wù)提供者。政府域193支持認(rèn)證管理器194,該認(rèn)證管理器194為了完成各種與政府相關(guān)的事務(wù)而對(duì)用戶進(jìn)行認(rèn)證。銀行業(yè)務(wù)域195支持認(rèn)證管理器196,該認(rèn)證管理器196為了完成與在線銀行的事務(wù)而對(duì)用戶進(jìn)行認(rèn)證。電子商務(wù)域197支持認(rèn)證管理器198,該認(rèn)證管理器198為了完成在線購買而對(duì)用戶進(jìn)行認(rèn)證。
如前所述,當(dāng)用戶通過訪問不同域的資源以試圖從因特網(wǎng)或Web內(nèi)的一個(gè)域轉(zhuǎn)移到另一個(gè)域時(shí),用戶會(huì)經(jīng)歷多個(gè)用戶認(rèn)證請(qǐng)求或要求,這會(huì)顯著延緩用戶跨越一系列域的進(jìn)展。將圖1E作為示例性環(huán)境,用戶190可能參與與電子商務(wù)域197的一個(gè)復(fù)雜的在線事務(wù),在該在線事務(wù)中,用戶試圖購買一種在線服務(wù),此服務(wù)只限于提供給那些18歲以上、擁有有效駕照、有效信用卡以及美國銀行帳戶的用戶。這個(gè)在線事務(wù)可能涉及域191、193、195和197。
典型的是,用戶可能不會(huì)在參與了典型的在線事務(wù)的每個(gè)域內(nèi)維護(hù)身份。在這個(gè)示例中,用戶190可能已經(jīng)在用戶的ISP上注冊(cè)了他或她的身份,但是為了完成在線事務(wù),可能也要求該用戶在域193、195和197中進(jìn)行認(rèn)證。如果不是每個(gè)域都為該用戶維護(hù)身份,那么該用戶的在線事務(wù)就會(huì)失敗。即便該用戶可以被每個(gè)域所認(rèn)證,那也無法保證不同域能夠在它們之間傳輸信息以完成該用戶的事務(wù)。對(duì)于圖1E所示的用戶190來說,沒有現(xiàn)有技術(shù)的環(huán)境允許用戶190通過第一個(gè)Web站點(diǎn)如ISP 191的認(rèn)證,并接著為實(shí)現(xiàn)單次登錄而將一個(gè)認(rèn)證權(quán)標(biāo)(token)傳輸給其他Web服務(wù)提供者,例如域193、195和197。
在給出了上述的對(duì)一些當(dāng)前技術(shù)的簡(jiǎn)要描述后,對(duì)其余附圖的描述涉及本發(fā)明可在其中操作的聯(lián)合計(jì)算機(jī)環(huán)境。不過,在更詳細(xì)地討論本發(fā)明之前,介紹一些術(shù)語。
術(shù)語術(shù)語“實(shí)體”和“方”通常指的是一個(gè)組織、一個(gè)個(gè)人或者一個(gè)系統(tǒng),該系統(tǒng)代表一個(gè)組織、一個(gè)個(gè)人或另一個(gè)系統(tǒng)進(jìn)行操作。術(shù)語“域”意味著網(wǎng)絡(luò)環(huán)境中的其他特征,不過,術(shù)語“實(shí)體”、“方”和“域”可互換地使用。例如,術(shù)語“域”也可以指一個(gè)DNS(域名系統(tǒng))域,或更一般的說,指一個(gè)數(shù)據(jù)處理系統(tǒng),該系統(tǒng)包括了對(duì)于外部實(shí)體表現(xiàn)為一邏輯單元的各種設(shè)備和應(yīng)用。
術(shù)語“請(qǐng)求”和“響應(yīng)”應(yīng)理解為包含數(shù)據(jù)格式化,該數(shù)據(jù)格式化適合于在特定操作中涉及的信息例如消息、通信協(xié)議信息或其他相關(guān)信息的傳輸。受保護(hù)資源是一種對(duì)其的訪問受控制或受限制的資源(應(yīng)用、對(duì)象、文檔、頁面、文件、可執(zhí)行代碼、或其他計(jì)算資源、通信類資源等等)。
權(quán)標(biāo)提供了成功操作的直接證據(jù),并由執(zhí)行該操作的實(shí)體生成,例如,經(jīng)過一次成功認(rèn)證操作后生成的認(rèn)證權(quán)標(biāo)。Kerberos權(quán)標(biāo)是可以應(yīng)用在本發(fā)明中的認(rèn)證權(quán)標(biāo)的一個(gè)示例。在以下文獻(xiàn)中可以找到關(guān)于Kerberos的更多信息Kohl等人所著的“The Kerberos Network AuthenticationService(V5)”,Internet Engineering Task Force(IETF)Request forComments(RFC)1510,09/1993。
聲明為一些動(dòng)作提供了間接的證據(jù)。聲明可以為身份、認(rèn)證、屬性、授權(quán)決定、或其他信息和/或操作提供間接的證據(jù)。認(rèn)證聲明通過這樣一個(gè)實(shí)體為認(rèn)證提供間接的證據(jù),該實(shí)體不是認(rèn)證服務(wù),而是監(jiān)聽該認(rèn)證服務(wù)的實(shí)體。
安全性聲明標(biāo)記語言(SAML)的聲明是可應(yīng)用在本發(fā)明中的聲明格式的一個(gè)示例。SAML已經(jīng)被結(jié)構(gòu)化信息標(biāo)準(zhǔn)促進(jìn)組織(OASIS)頒布,OASIS是一個(gè)非盈利的全球社團(tuán)。在“Assertions and Protocol for theOASIS Security Assertion Markup Language(SAML)”,CommitteeSpecification 01,05/31/2002中,關(guān)于SAML有如下的描述安全性聲明標(biāo)記語言(SAML)是一種用于交換安全信息的基于XML的框架。這種安全信息表示為關(guān)于主體的聲明的形式,這里的主體是在某個(gè)安全域中具有身份的實(shí)體(人類或計(jì)算機(jī))。主體的一個(gè)典型示例是人,由他或她在特定因特網(wǎng)DNS域中的電子郵件地址所識(shí)別。聲明能夠傳達(dá)關(guān)于主體所執(zhí)行的認(rèn)證動(dòng)作、主體的屬性和關(guān)于是否允許該主體訪問某些資源的認(rèn)證決定的信息。聲明表示為XML的構(gòu)造,并具有嵌套結(jié)構(gòu),借此一個(gè)單獨(dú)的聲明可能包含關(guān)于認(rèn)證、授權(quán)和屬性的幾個(gè)不同的內(nèi)部陳述。應(yīng)注意,包含了認(rèn)證陳述的聲明僅僅描述了以前發(fā)生的認(rèn)證動(dòng)作。聲明由SAML管理機(jī)構(gòu)即認(rèn)證管理機(jī)構(gòu)、屬性管理機(jī)構(gòu)和策略決定點(diǎn)所發(fā)布。SAML定義了一個(gè)協(xié)議,通過該協(xié)議,客戶端可以請(qǐng)求SAML管理機(jī)構(gòu)發(fā)出聲明,并獲得SAML管理機(jī)構(gòu)的響應(yīng)。這個(gè)協(xié)議由基于XML的請(qǐng)求和響應(yīng)消息格式所組成,它可以綁定于許多不同的底層通信和傳送協(xié)議;目前SAML定義了一個(gè)與HTTP上的SOAP的綁定。SAML管理機(jī)構(gòu)可以使用各種信息源,例如外部策略存儲(chǔ)和作為輸入在請(qǐng)求中被接收的聲明,以便建立響應(yīng)。這樣,盡管客戶端總是使用聲明,SAML管理機(jī)構(gòu)既可以是聲明的生成者也可以是聲明的使用者。
該SAML規(guī)范規(guī)定了聲明是一個(gè)信息包,該信息包提供由發(fā)布者生成的一個(gè)或多個(gè)陳述。SAML允許發(fā)布者生成三種不同類別的聲明陳述認(rèn)證,其中指定的主體在特定的時(shí)間通過特定的方法被認(rèn)證;授權(quán),其中允許指定的主體訪問指定的資源的一個(gè)請(qǐng)求被同意或被拒絕;以及屬性,其中指定的主體與提供的屬性相關(guān)聯(lián)。在下文的深入討論中,在必要時(shí)各種聲明的格式可以被轉(zhuǎn)換成其他聲明格式。
認(rèn)證是驗(yàn)證一組由用戶提供或代表用戶提供的證書的過程。認(rèn)證可以通過驗(yàn)證用戶所知、用戶所有、或用戶所是,即關(guān)于用戶的某物理特征來完成。用戶所知可包括共享的秘密,如用戶的口令,或者通過驗(yàn)證僅為特定用戶所知的某事物,如用戶的加密密鑰。用戶所有可包括智能卡或硬件權(quán)標(biāo)。關(guān)于用戶的某物理特征可包括生物測(cè)量輸入,如指紋或視網(wǎng)膜圖紋。
一個(gè)認(rèn)證證書是用于各種認(rèn)證協(xié)議的一組的質(zhì)詢/響應(yīng)信息。例如,用戶名和口令的組合是認(rèn)證證書最常見的形式。其他認(rèn)證證書的形式可包括各種形式的質(zhì)詢/響應(yīng)信息、公鑰基礎(chǔ)設(shè)施(PKI)證書、智能卡、生物測(cè)量等等。認(rèn)證證書與認(rèn)證聲明的區(qū)別在于認(rèn)證證書由用戶提交,作為與認(rèn)證服務(wù)器或認(rèn)證服務(wù)的認(rèn)證協(xié)議序列的一部分,而認(rèn)證聲明是關(guān)于用戶認(rèn)證證書的成功提交和驗(yàn)證的陳述,隨后在必要時(shí)認(rèn)證聲明在實(shí)體之間傳輸。
區(qū)別現(xiàn)有技術(shù)的單次登錄解決方案如上所述,現(xiàn)有技術(shù)的單次登錄解決方案限于同構(gòu)型環(huán)境,在這種同構(gòu)型環(huán)境中已經(jīng)有在參與企業(yè)之間預(yù)先建立的業(yè)務(wù)協(xié)定。這些業(yè)務(wù)協(xié)定建立了企業(yè)之間的信任,并規(guī)定了企業(yè)之間的信息的安全傳輸。這些業(yè)務(wù)協(xié)定也包括關(guān)于這樣的規(guī)則的技術(shù)協(xié)定,這些規(guī)則是關(guān)于怎樣將用戶身份從一家企業(yè)向另一家企業(yè)轉(zhuǎn)換或映射,以及怎樣在參與企業(yè)之間傳輸用于對(duì)用戶進(jìn)行擔(dān)保的信息。
換句話說,以前的單次登錄解決方案允許一家企業(yè)基于預(yù)先協(xié)商或預(yù)先配置的協(xié)定信任由另一家企業(yè)所生成的認(rèn)證聲明(連同聲明中提供的用戶身份)。每家不同的企業(yè)了解怎樣創(chuàng)建和解釋這樣的認(rèn)證聲明,該認(rèn)證聲明可以被與其交換過類似協(xié)定的企業(yè)例如在同一電子商務(wù)市場(chǎng)里的企業(yè)所理解。由于存在企業(yè)知道的用來跨越這些系統(tǒng)映射用戶身份的一種確定性的關(guān)系,這些同構(gòu)型的環(huán)境是緊密結(jié)合的。由于存在著用于建立單次登錄環(huán)境的業(yè)務(wù)協(xié)定,這種緊密關(guān)系是可能的。
本發(fā)明的聯(lián)合模型在萬維網(wǎng)的情景中,用戶開始期望這樣的能力,即從與一個(gè)因特網(wǎng)域上的應(yīng)用的交互切換至與另一個(gè)域上的另一個(gè)應(yīng)用的交互,而極少關(guān)心每一特定域之間的信息障礙。用戶不想有由于不得不為了單個(gè)事務(wù)而進(jìn)行多個(gè)域的認(rèn)證所引起的挫折感。換句話說,用戶期望各組織可以實(shí)現(xiàn)互操作,不過用戶通常還需要域尊重他們的隱私。另外,用戶可能更希望限制永久存儲(chǔ)隱私信息的域。這些用戶期望存在于一個(gè)快速發(fā)展的異構(gòu)型環(huán)境中,在此環(huán)境中,許多企業(yè)和組織都在發(fā)布相競(jìng)爭(zhēng)的認(rèn)證技術(shù)。
與現(xiàn)有技術(shù)的系統(tǒng)相反,本發(fā)明提供了一個(gè)聯(lián)合模型,該模型允許企業(yè)向用戶提供單次登錄體驗(yàn),而無需特定企業(yè)之間特定的、預(yù)先建立的業(yè)務(wù)和技術(shù)協(xié)定。換句話說,本發(fā)明支持一種聯(lián)合的異構(gòu)型環(huán)境。作為本發(fā)明的目標(biāo)的一個(gè)示例,再次參考圖1E,用戶190能夠在域191中進(jìn)行認(rèn)證,并隨后讓域191向每個(gè)可能參與該事務(wù)的下游的域提供適當(dāng)?shù)穆暶鳌_@些下游域要能夠理解并信任驗(yàn)證聲明和/或其他類型的聲明,即使域191與其他下游域之間并沒有預(yù)先建立的聲明格式。除了識(shí)別該些聲明之外,即便沒有預(yù)先建立的身份映射關(guān)系,下游的域要能夠?qū)⒙暶鲀?nèi)所包含的身份轉(zhuǎn)換為特定域內(nèi)代表了用戶190的身份。
本發(fā)明涉及一個(gè)聯(lián)合環(huán)境。一般而言,企業(yè)有自己的用戶注冊(cè)表并維護(hù)與自己這些用戶的關(guān)系。典型情況下,每家企業(yè)都有自己的對(duì)用戶進(jìn)行認(rèn)證的方法。然而,本發(fā)明的聯(lián)合模式允許企業(yè)以一種集體的方式進(jìn)行合作,以便通過一家企業(yè)對(duì)企業(yè)聯(lián)合的參與,一家企業(yè)的用戶可以利用與一組企業(yè)的關(guān)系。用戶被允許訪問任何一個(gè)聯(lián)合企業(yè)中的資源,就好像他們與每家企業(yè)均有直接的關(guān)系。用戶不需要在每一個(gè)感興趣的企業(yè)處注冊(cè),并且用戶也不需要經(jīng)常對(duì)他們自己進(jìn)行識(shí)別和認(rèn)證。因此,在這種聯(lián)合環(huán)境內(nèi),認(rèn)證模式允許在信息技術(shù)領(lǐng)域內(nèi)快速發(fā)展的異構(gòu)型環(huán)境中實(shí)現(xiàn)單次登錄體驗(yàn)。
在本發(fā)明中,一個(gè)聯(lián)合是這樣的一組不同的實(shí)體,如企業(yè)、組織、機(jī)構(gòu)等,這些實(shí)體相互合作以為用戶提供單次登錄的、便于使用的體驗(yàn)。在本發(fā)明中,聯(lián)合環(huán)境與典型的單次登錄環(huán)境不同,在聯(lián)合環(huán)境中,兩家企業(yè)無需具有直接的、預(yù)先建立的定義了怎樣傳輸用戶信息以及傳輸什么樣的用戶信息的關(guān)系。在聯(lián)合環(huán)境內(nèi),實(shí)體提供服務(wù),該些服務(wù)負(fù)責(zé)處理對(duì)用戶進(jìn)行認(rèn)證、接受由其他實(shí)體提交的認(rèn)證聲明如認(rèn)證權(quán)標(biāo)、以及提供被擔(dān)保的用戶的身份向本地實(shí)體內(nèi)可以理解的身份的某種形式的轉(zhuǎn)換。
聯(lián)合減輕了服務(wù)提供者的管理負(fù)擔(dān)。服務(wù)提供者可以依靠它與總體上的聯(lián)合的信任關(guān)系;服務(wù)提供者無需管理認(rèn)證信息,如用戶口令信息,因?yàn)樗梢砸揽坑脩舻恼J(rèn)證主域(home domain)完成的認(rèn)證。
本發(fā)明也涉及了聯(lián)合身份管理系統(tǒng),該系統(tǒng)建立了一個(gè)基礎(chǔ),在此基礎(chǔ)上,松散結(jié)合的認(rèn)證、用戶登記、用戶簡(jiǎn)檔管理和/或授權(quán)服務(wù)跨越安全域進(jìn)行合作。聯(lián)合身份管理允許在完全不同的安全的域上存在的服務(wù)安全地實(shí)現(xiàn)互相操作和合作,即便這些完全不同的域上的底層安全機(jī)制和操作系統(tǒng)平臺(tái)存在差異。一旦用戶在聯(lián)合內(nèi)建立了他們的參與,單次登錄體驗(yàn)就建立起來了。
主域、發(fā)布方和依賴方如下面進(jìn)行更詳細(xì)地深入解釋的,本發(fā)明提供了重要的用戶利益。本發(fā)明允許用戶在第一個(gè)實(shí)體處進(jìn)行認(rèn)證,在下文中該實(shí)體也被稱為用戶的主域或認(rèn)證主域。該第一個(gè)實(shí)體可以擔(dān)當(dāng)發(fā)布方,它發(fā)布了用于在第二個(gè)實(shí)體上使用的對(duì)該用戶的認(rèn)證聲明。接著該用戶通過提交第一個(gè)實(shí)體發(fā)布的認(rèn)證聲明,而無需在第二個(gè)實(shí)體處顯式地進(jìn)行再次認(rèn)證,就能夠訪問第二個(gè)、不同的實(shí)體上的受保護(hù)資源,這里的第二個(gè)實(shí)體被稱為依賴方。從發(fā)布方傳遞給依賴方的信息采用一種聲明的形式,且該聲明包含了采取陳述形式的不同類型的信息。例如,一個(gè)聲明可能是關(guān)于被認(rèn)證的用戶身份的陳述,或者它可能是與特定用戶相關(guān)聯(lián)的用戶屬性信息的陳述。
現(xiàn)在參考圖2A,此框圖說明了針對(duì)一個(gè)事務(wù)的聯(lián)合環(huán)境的術(shù)語,該事務(wù)由用戶向第一家聯(lián)合企業(yè)發(fā)起,作為回應(yīng),該企業(yè)在聯(lián)合環(huán)境中的下游實(shí)體處調(diào)用動(dòng)作。圖2A表明,取決于聯(lián)合內(nèi)的實(shí)體的視角,關(guān)于一個(gè)給定的聯(lián)合操作的術(shù)語會(huì)有所不同。用戶202通過對(duì)企業(yè)204中的受保護(hù)資源的請(qǐng)求來啟動(dòng)一個(gè)事務(wù)。如果用戶202已經(jīng)通過了企業(yè)204的認(rèn)證,那么在這次聯(lián)合會(huì)話中,企業(yè)204就是用戶的主域。假定該事務(wù)需要企業(yè)206的某種操作,并且企業(yè)204傳輸一個(gè)聲明到企業(yè)206,那么企業(yè)204是對(duì)于此特定操作的發(fā)布域,而企業(yè)206是該操作的依賴域。假定該事務(wù)需要更多的操作,并且企業(yè)206傳輸一個(gè)聲明到企業(yè)208,那么企業(yè)206是對(duì)于此所請(qǐng)求操作的發(fā)布域,而企業(yè)208是該操作的依賴域。
在本發(fā)明的聯(lián)合環(huán)境中,用戶進(jìn)行認(rèn)證的域被稱為用戶的(認(rèn)證)主域。主域維護(hù)認(rèn)證證書。主域可以是用戶的雇主、用戶的ISP、或某種其他服務(wù)提供者。由于可能有多個(gè)企業(yè)有能力生成并驗(yàn)證用戶的認(rèn)證證書,因此在一聯(lián)合環(huán)境中可能會(huì)有多個(gè)企業(yè)皆可擔(dān)當(dāng)用戶的主域。
從認(rèn)證的視角看,認(rèn)證聲明的發(fā)布方通常是用戶的認(rèn)證主域。用戶的主域也許會(huì)、也許不會(huì)為該用戶維護(hù)個(gè)人信息或簡(jiǎn)檔信息。于是,從涉及個(gè)人的可識(shí)別信息、個(gè)性化信息或其他用戶屬性的視角看,一個(gè)屬性聲明的發(fā)布域也許是、也許不是用戶的認(rèn)證主域。為了避免混亂,可使用分別的術(shù)語來表示屬性主域和認(rèn)證主域,不過,下文中的術(shù)語“主域”可以解釋為指認(rèn)證主域。
然而,在給定聯(lián)合會(huì)話的范圍內(nèi),通常有且僅有一個(gè)域擔(dān)當(dāng)用戶的主域。一旦用戶在該域進(jìn)行了認(rèn)證,在此會(huì)話持續(xù)期間,該聯(lián)合內(nèi)所有其他的域或企業(yè)都被視為依賴域。
已知本發(fā)明提供了一個(gè)聯(lián)合的基礎(chǔ)設(shè)施,該基礎(chǔ)設(shè)施可被添加到現(xiàn)存系統(tǒng)中而同時(shí)最小化對(duì)現(xiàn)存的非聯(lián)合體系結(jié)構(gòu)的影響,那么主域也可參與到聯(lián)合環(huán)境中的事實(shí)并不會(huì)改變?cè)谟脩糁饔蛏线M(jìn)行的認(rèn)證。換句話說,即便主域被集成到依照本發(fā)明實(shí)施的聯(lián)合環(huán)境中,當(dāng)用戶在用戶主域執(zhí)行認(rèn)證操作時(shí),也應(yīng)該具有相同的最終用戶的體驗(yàn)。不過應(yīng)該注意到,并非給定企業(yè)的所有用戶都必須要參與到聯(lián)合環(huán)境中。
此外,主域也可參與到聯(lián)合環(huán)境中的事實(shí)不會(huì)改變用戶的注冊(cè),如用戶帳戶的建立。用戶通過獨(dú)立于聯(lián)合環(huán)境的注冊(cè)過程在域上建立帳戶。換句話說,在主域上建立用戶帳戶并不包括建立在整個(gè)聯(lián)合中皆有效的帳戶信息,如身份的轉(zhuǎn)換信息。如果存在單個(gè)聯(lián)合域能夠?qū)τ脩暨M(jìn)行認(rèn)證,也就是說,在聯(lián)合內(nèi)有且僅有一個(gè)域是用戶已向其注冊(cè)過的,那么這個(gè)域總是擔(dān)當(dāng)該用戶的主域,并會(huì)指引該用戶在聯(lián)合環(huán)境中的移動(dòng)。
如果用戶在聯(lián)合環(huán)境內(nèi)有多個(gè)可能的主域,那么用戶可通過不止一個(gè)登錄點(diǎn)進(jìn)入此聯(lián)合。換句話說,用戶可在多個(gè)域擁有帳戶,并且這些域并不必然擁有關(guān)于其他域的信息和在其他域上關(guān)于用戶身份的信息。
當(dāng)用戶進(jìn)行認(rèn)證所在的域被稱為主域時(shí),發(fā)布域是一個(gè)發(fā)布為另一個(gè)域即依賴域所使用的聲明的聯(lián)合實(shí)體。發(fā)布域通常是用戶的主域,但不是必然如此。因此,通常是這樣的情況如上所述,發(fā)布方已經(jīng)通過典型的認(rèn)證協(xié)議對(duì)用戶進(jìn)行了認(rèn)證。然而,有可能該發(fā)布域之前曾擔(dān)當(dāng)過依賴域,并由此從不同的發(fā)布域接收過聲明。換句話說,由于用戶發(fā)起的事務(wù)可能在聯(lián)合環(huán)境內(nèi)級(jí)聯(lián)通過一系列的企業(yè),接收方可隨后為下游的事務(wù)擔(dān)當(dāng)發(fā)布方。一般而言,能夠代表用戶發(fā)布認(rèn)證聲明的任何域均可擔(dān)當(dāng)發(fā)布域。
依賴域是接收來自發(fā)布方的聲明的域。依賴域能夠接受、信任和理解第三方即發(fā)布域代表用戶所發(fā)布的聲明。使用適當(dāng)?shù)恼J(rèn)證管理機(jī)構(gòu)來解釋認(rèn)證聲明通常是依賴方的責(zé)任。此外,有可能依賴域能夠?qū)μ囟ㄓ脩暨M(jìn)行認(rèn)證,也就是說,擔(dān)當(dāng)用戶的主域,但是也有可能依賴域不能通過常規(guī)方法對(duì)特定用戶進(jìn)行認(rèn)證。因此,依賴域是這樣的域或企業(yè),該域或企業(yè)依靠由用戶提交的認(rèn)證聲明,并為用戶提供了單次登錄的體驗(yàn),而不是提示用戶輸入用戶的認(rèn)證證書作為與用戶的交互式會(huì)話的一部分。
聯(lián)合體系結(jié)構(gòu)——用于舊系統(tǒng)的聯(lián)合前端現(xiàn)在參考圖2B,此框圖說明了在指定域內(nèi)事先存在的系統(tǒng)和與本發(fā)明的實(shí)施例相一致的本發(fā)明的一些聯(lián)合體系結(jié)構(gòu)組件的集成。聯(lián)合環(huán)境包括了為用戶提供多種服務(wù)的聯(lián)合實(shí)體。用戶212與客戶端設(shè)備214相交互,客戶端設(shè)備214可支持瀏覽器應(yīng)用216和其他的各種客戶端應(yīng)用218。用戶212與客戶端214、瀏覽器216或任何其他擔(dān)當(dāng)了用戶與其他設(shè)備和服務(wù)之間的接口的軟件是不同的。在一些情況下,以下描述會(huì)界定出在客戶端應(yīng)用中顯式地執(zhí)行動(dòng)作的用戶和代表用戶執(zhí)行動(dòng)作的客戶端應(yīng)用之間的區(qū)別。不過一般而言,請(qǐng)求者是可被假定為代表用戶執(zhí)行動(dòng)作的中介,如基于客戶端的應(yīng)用、瀏覽器、SOAP客戶端等等。
瀏覽器應(yīng)用216可以是典型的瀏覽器,該瀏覽器包含了許多模塊,例如HTTP通信組件220和標(biāo)記語言(ML)解釋器222。瀏覽器應(yīng)用216也可支持插件,例如Web服務(wù)客戶端224,和/或可下載的小應(yīng)用程序,這些小應(yīng)用程序可能需要、也可能不需要一個(gè)虛擬機(jī)運(yùn)行時(shí)環(huán)境。Web服務(wù)客戶端224可使用簡(jiǎn)單對(duì)象訪問協(xié)議(SOAP),SOAP是一個(gè)輕量的協(xié)議,用于定義在分散的、分布式的環(huán)境中結(jié)構(gòu)化和類型化的信息的交換。SOAP是基于XML的協(xié)議,由三部分組成包封,它定義了一個(gè)框架,以描述消息內(nèi)有什么內(nèi)容以及怎樣處理該消息;一組編碼規(guī)則,以表示由應(yīng)用定義的數(shù)據(jù)類型的實(shí)例;以及一個(gè)約定,以表示遠(yuǎn)程的過程調(diào)用和響應(yīng)。用戶212可使用瀏覽器應(yīng)用216訪問基于Web的服務(wù),不過用戶212也會(huì)通過客戶端設(shè)備214上的其他Web服務(wù)客戶端來訪問Web服務(wù)。在以下圖中所示的本發(fā)明的一些示例通過用戶的瀏覽器使用了HTTP重定向,以在聯(lián)合環(huán)境中的實(shí)體之間交換信息。不過應(yīng)該注意到,本發(fā)明可基于各種通信協(xié)議實(shí)施,而不是僅限于基于HTTP的通信。例如,聯(lián)合環(huán)境中的實(shí)體在必要時(shí)可以直接通信;消息不需要通過用戶的瀏覽器進(jìn)行重定向。
本發(fā)明可用這樣一種方式實(shí)施,以便聯(lián)合環(huán)境所需的組件可以與預(yù)先存在的系統(tǒng)集成在一起。圖2B說明了將這些組件實(shí)現(xiàn)為一個(gè)預(yù)先存在的系統(tǒng)的前端的一個(gè)實(shí)施例。在聯(lián)合域中的預(yù)先存在的組件可被認(rèn)為是舊的應(yīng)用或后端處理組件230,它們以與圖2C所示的方式類似地包括了認(rèn)證服務(wù)運(yùn)行時(shí)(ASR)服務(wù)器232。當(dāng)域控制了對(duì)應(yīng)用服務(wù)器234的訪問時(shí),ASR服務(wù)器232負(fù)責(zé)對(duì)用戶進(jìn)行認(rèn)證,這里的應(yīng)用服務(wù)器234可被認(rèn)為生成、檢索、或以其他方式處理受保護(hù)資源。域可繼續(xù)使用舊的用戶注冊(cè)應(yīng)用236來注冊(cè)用戶,以便訪問應(yīng)用服務(wù)器234。認(rèn)證已注冊(cè)用戶所需的信息被存儲(chǔ)在舊的用戶注冊(cè)表238中。
在域加入聯(lián)合環(huán)境之后,會(huì)繼續(xù)進(jìn)行操作而沒有聯(lián)合組件的干涉。換句話說,可以配置域以便用戶可以繼續(xù)直接訪問特定的應(yīng)用服務(wù)器或其他受保護(hù)資源,而無需通過接觸點(diǎn)服務(wù)器或執(zhí)行該接觸點(diǎn)服務(wù)器功能的其他組件;以這種方式訪問系統(tǒng)的用戶會(huì)經(jīng)歷典型的認(rèn)證流程和典型的訪問。然而,當(dāng)這樣做時(shí),直接訪問舊的系統(tǒng)的用戶將無法建立域內(nèi)的接觸點(diǎn)服務(wù)器所知道的聯(lián)合會(huì)話。
域的舊的功能可以通過使用聯(lián)合前端處理240集成到聯(lián)合環(huán)境中,該聯(lián)合前端處理240包括接觸點(diǎn)服務(wù)器242和信任代理服務(wù)器244(或更簡(jiǎn)單地,信任代理244),信任代理244本身包括了安全權(quán)標(biāo)服務(wù)(STS)245,所有這些在下文中都參照?qǐng)D2C進(jìn)行了更詳細(xì)的描述。聯(lián)合配置應(yīng)用246允許管理用戶對(duì)聯(lián)合的前端組件進(jìn)行配置,以允許它們通過聯(lián)合接口單元248連接舊的后端組件。
給定企業(yè)的舊的或預(yù)先存在的認(rèn)證服務(wù)可使用各種著名的認(rèn)證方法或權(quán)標(biāo),例如用戶名/口令或基于智能卡權(quán)標(biāo)的信息。不過在本發(fā)明中,通過使用接觸點(diǎn)服務(wù)器,舊的認(rèn)證服務(wù)的功能可以用于聯(lián)合環(huán)境中。用戶可以繼續(xù)直接訪問舊的認(rèn)證服務(wù)器,而無需通過接觸點(diǎn)服務(wù)器,盡管用戶以這種方式訪問系統(tǒng)會(huì)經(jīng)歷典型的認(rèn)證流程和典型的訪問;直接訪問舊的認(rèn)證系統(tǒng)的用戶將無法根據(jù)本發(fā)明生成聯(lián)合認(rèn)證聲明以作為身份證明。聯(lián)合前端的任務(wù)之一是將接觸點(diǎn)服務(wù)器接收到的聯(lián)合認(rèn)證權(quán)標(biāo)轉(zhuǎn)換成為舊的認(rèn)證服務(wù)能夠理解的一種格式。因此,通過接觸點(diǎn)服務(wù)器訪問聯(lián)合環(huán)境的用戶就無需向舊的認(rèn)證服務(wù)的再次認(rèn)證。優(yōu)選地,通過接觸點(diǎn)服務(wù)器和信任代理的結(jié)合向舊的認(rèn)證服務(wù)進(jìn)行用戶認(rèn)證,從而看上去就好像用戶正在參加認(rèn)證會(huì)話。
聯(lián)合體系結(jié)構(gòu)——接觸點(diǎn)服務(wù)器、信任代理和信任中介現(xiàn)在參考圖2C,此框圖說明了根據(jù)本發(fā)明的實(shí)施的聯(lián)合體系結(jié)構(gòu)。聯(lián)合環(huán)境包括為用戶提供了各種服務(wù)的聯(lián)合企業(yè)或類似實(shí)體。通過客戶端設(shè)備上的應(yīng)用,用戶可試圖訪問位于各種實(shí)體如企業(yè)250處的資源。在每個(gè)聯(lián)合企業(yè)中的接觸點(diǎn)服務(wù)器,如企業(yè)250的接觸點(diǎn)(POC)服務(wù)器252,是用戶進(jìn)入聯(lián)合環(huán)境的登錄點(diǎn)。由于接觸點(diǎn)服務(wù)器處理了許多聯(lián)合需求,所以它減輕了對(duì)現(xiàn)存非聯(lián)合體系結(jié)構(gòu)如舊的系統(tǒng)中的現(xiàn)存組件的影響。接觸點(diǎn)服務(wù)器提供了會(huì)話管理、協(xié)議轉(zhuǎn)換,并可能啟動(dòng)認(rèn)證聲明的轉(zhuǎn)換。例如,接觸點(diǎn)服務(wù)器可以將HTTP或HTTPS消息轉(zhuǎn)換成SOAP消息,反之亦然。如在下文更詳細(xì)和深入解釋的,接觸點(diǎn)服務(wù)器也可用于調(diào)用信任代理來轉(zhuǎn)換認(rèn)證聲明,如,從發(fā)布方接收到的SAML權(quán)標(biāo)可以被轉(zhuǎn)換成接收方能夠理解的Kerberos權(quán)標(biāo)。
信任代理或信任代理服務(wù)器,例如在企業(yè)250處的信任代理(TP)254,建立并維護(hù)聯(lián)合內(nèi)的兩個(gè)實(shí)體之間的信任關(guān)系。信任代理通常能夠處理認(rèn)證權(quán)標(biāo)格式的轉(zhuǎn)換(通過安全權(quán)標(biāo)服務(wù),此服務(wù)在下文進(jìn)行更詳細(xì)和深入的描述),將發(fā)布方使用的一種格式轉(zhuǎn)換為接收方理解的一種格式。
接觸點(diǎn)服務(wù)器和信任代理的共同使用最小化了在現(xiàn)存的非聯(lián)合系統(tǒng)上實(shí)施聯(lián)合體系結(jié)構(gòu)的影響。因此,本發(fā)明的聯(lián)合體系結(jié)構(gòu)需要為每個(gè)聯(lián)合實(shí)體配備至少一個(gè)接觸點(diǎn)服務(wù)器和至少一個(gè)信任代理,而不管該實(shí)體是企業(yè)、域、或其他邏輯實(shí)體或物理實(shí)體。不過本發(fā)明的聯(lián)合體系結(jié)構(gòu)不一定需要改變現(xiàn)存的一組非聯(lián)合系統(tǒng)。優(yōu)選地,對(duì)于給定的聯(lián)合實(shí)體,有一單個(gè)信任代理,但出于可用性目的,可以有多個(gè)信任代理,或者,對(duì)于企業(yè)內(nèi)部的各種較小的實(shí)體,如企業(yè)內(nèi)部的單獨(dú)的子公司來說,可以有多個(gè)信任代理。有可能給定的實(shí)體可以屬于不止一個(gè)聯(lián)合,不過這種情況不一定需要多個(gè)信任代理,因?yàn)橐粏蝹€(gè)信任代理能夠管理多個(gè)聯(lián)合內(nèi)的信任關(guān)系。
信任代理的任務(wù)之一是確定另一個(gè)域和/或該域中的信任代理所需要的權(quán)標(biāo)類型。信任代理能夠處理認(rèn)證權(quán)標(biāo)格式的轉(zhuǎn)換,將發(fā)布方使用的格式轉(zhuǎn)換為接收方理解的格式。信任代理254也負(fù)責(zé)對(duì)于企業(yè)250發(fā)生的任何用戶身份轉(zhuǎn)換或?qū)傩赞D(zhuǎn)換。然而,如下所述,信任代理可調(diào)用信任中介以尋求協(xié)助。可能需要身份的轉(zhuǎn)換以映射用戶的身份和屬性,將發(fā)布方已知的用戶身份和屬性映射成為對(duì)接收方有意義的用戶身份和屬性。這樣的轉(zhuǎn)換可能被發(fā)布域的信任代理或接收域的信任代理所調(diào)用。
信任代理254可包括內(nèi)部化的組件,該組件被顯示為安全權(quán)標(biāo)服務(wù)(STS)組件255,它將提供權(quán)標(biāo)的轉(zhuǎn)換,并將調(diào)用認(rèn)證服務(wù)運(yùn)行時(shí)(ASR)256來驗(yàn)證和生成權(quán)標(biāo)。安全權(quán)標(biāo)服務(wù)提供了信任代理所需的權(quán)標(biāo)發(fā)布和驗(yàn)證服務(wù)。于是,安全權(quán)標(biāo)服務(wù)包括了到現(xiàn)存的認(rèn)證服務(wù)運(yùn)行時(shí)的接口,或者它將認(rèn)證服務(wù)運(yùn)行時(shí)合并在該服務(wù)自身中。不是將安全權(quán)標(biāo)服務(wù)組件內(nèi)部化在信任代理中,它也可實(shí)現(xiàn)為一個(gè)獨(dú)立的組件,例如將被信任代理所調(diào)用的組件,或者它可被內(nèi)部化在事務(wù)服務(wù)器中,例如作為應(yīng)用服務(wù)器的一部分。
例如,STS組件可接收到發(fā)布Kerberos權(quán)標(biāo)的請(qǐng)求。作為將為其創(chuàng)建權(quán)標(biāo)的用戶的認(rèn)證信息的一部分,則該請(qǐng)求可包含含有用戶名和口令的二進(jìn)制權(quán)標(biāo)。STS組件將對(duì)比一LDAP運(yùn)行時(shí)來驗(yàn)證該用戶名和口令(典型的認(rèn)證),并將調(diào)用一個(gè)Kerberos KDC(密鑰分發(fā)中心)來為用戶生成Kerberos 權(quán)證(ticket)。這個(gè)權(quán)標(biāo)將被返回到信任代理,以在企業(yè)內(nèi)部使用;然而,這種使用可能包括將該權(quán)標(biāo)外部化,以便傳輸?shù)皆撀?lián)合內(nèi)的其他域。
以針對(duì)圖1D所描述的類似方式,用戶可期望訪問在聯(lián)合環(huán)境內(nèi)的多個(gè)企業(yè)如企業(yè)250和企業(yè)260兩者的資源。以在上文中針對(duì)企業(yè)250所描述的方式,企業(yè)260包含接觸點(diǎn)服務(wù)器262、信任代理264、安全權(quán)標(biāo)服務(wù)265和認(rèn)證服務(wù)運(yùn)行時(shí)266。盡管用戶可以直接啟動(dòng)與每個(gè)企業(yè)的單獨(dú)的事務(wù),該用戶也可啟動(dòng)與企業(yè)250的、級(jí)聯(lián)地通過聯(lián)合環(huán)境的事務(wù)。企業(yè)250可能需要與聯(lián)合環(huán)境內(nèi)的其他多家企業(yè)如企業(yè)260合作,以完成特定的事務(wù),即使當(dāng)用戶啟動(dòng)事務(wù)時(shí)可能還不知道這樣的必要性。企業(yè)260作為下游域參與其中,而且,本發(fā)明允許企業(yè)250在必要時(shí)向企業(yè)260提交一個(gè)聯(lián)合聲明以促進(jìn)用戶的事務(wù)。
也許有這樣的情況,信任代理不知道怎樣解釋由關(guān)聯(lián)的接觸點(diǎn)服務(wù)器接收的認(rèn)證權(quán)標(biāo),和/或怎樣轉(zhuǎn)換給定用戶的身份和屬性。在這種情況下,該信任代理可選擇調(diào)用信任中介組件例如信任中介268的功能。信任中介維護(hù)與各個(gè)信任代理的關(guān)系,并由此提供了信任代理之間可傳遞的信任。使用信任中介允許聯(lián)合環(huán)境內(nèi)的每個(gè)實(shí)體,例如企業(yè)250和260,建立與信任中介的信任關(guān)系,而無需建立與聯(lián)合環(huán)境中的每個(gè)域的多個(gè)單獨(dú)的信任關(guān)系。例如,當(dāng)企業(yè)260作為被企業(yè)250的用戶所啟動(dòng)的事務(wù)的下游域參與時(shí),企業(yè)250處的信任代理254能夠確信企業(yè)260處的信任代理264通過在必要時(shí)調(diào)用信任中介268的協(xié)助,可以理解來自信任代理254的聲明。盡管圖2C描述了有一單個(gè)信任中介的聯(lián)合環(huán)境,但是一個(gè)聯(lián)合環(huán)境可以有多個(gè)信任中介。
應(yīng)該注意到,盡管圖2C描述了作為不同實(shí)體的接觸點(diǎn)服務(wù)器252、信任代理254、安全權(quán)標(biāo)服務(wù)組件255和認(rèn)證服務(wù)運(yùn)行時(shí)256,但是這些組件不是必須在分離的設(shè)備上實(shí)現(xiàn)。例如,對(duì)于這些分離的組件的功能來說,有可能將它們實(shí)現(xiàn)為在一單個(gè)物理設(shè)備上執(zhí)行的應(yīng)用,或者可以將它們結(jié)合成一單個(gè)應(yīng)用。此外,圖2C描述了用于一家企業(yè)的單個(gè)接觸點(diǎn)服務(wù)器、單個(gè)信任代理和單個(gè)安全權(quán)標(biāo)服務(wù)器,不過可替代的配置可包括用于每家企業(yè)的多個(gè)接觸點(diǎn)服務(wù)器、多個(gè)信任代理和多個(gè)安全權(quán)標(biāo)服務(wù)。接觸點(diǎn)服務(wù)器、信任代理、安全權(quán)標(biāo)服務(wù)以及其他聯(lián)合的實(shí)體能夠以多種方式實(shí)現(xiàn),這些方式如軟件應(yīng)用、對(duì)象、模塊、軟件庫等等。
一個(gè)信任代理/STS可能有能力接受并驗(yàn)證許多不同的認(rèn)證證書,包括傳統(tǒng)的證書,如用戶名和口令的結(jié)合和Kerberos權(quán)證,以及聯(lián)合的認(rèn)證權(quán)標(biāo)格式,該種格式包括由第三方生成的認(rèn)證權(quán)標(biāo)。信任代理/STS可允許接受認(rèn)證權(quán)標(biāo)作為在別處的認(rèn)證的證明。該認(rèn)證權(quán)標(biāo)由發(fā)布方生成,并用于指明用戶已經(jīng)通過了發(fā)布方的認(rèn)證。發(fā)布方生成認(rèn)證權(quán)標(biāo),作為一種聲明用戶的已通過認(rèn)證的身份的方法。
安全權(quán)標(biāo)服務(wù)在必要時(shí)調(diào)用認(rèn)證服務(wù)運(yùn)行時(shí)。認(rèn)證服務(wù)運(yùn)行時(shí)支持有能力對(duì)用戶進(jìn)行認(rèn)證的認(rèn)證服務(wù)。認(rèn)證服務(wù)擔(dān)當(dāng)了認(rèn)證管理機(jī)構(gòu),該認(rèn)證管理機(jī)構(gòu)通過認(rèn)證響應(yīng)提供了成功或失敗的認(rèn)證嘗試的指示。信任代理/STS可以使認(rèn)證的服務(wù)內(nèi)部化,例如這種情況,其中有一個(gè)不需要與現(xiàn)存的舊的基礎(chǔ)設(shè)施相交互的、Web服務(wù)的全新安裝。否則,STS組件將調(diào)用外部的認(rèn)證服務(wù)來驗(yàn)證認(rèn)證權(quán)標(biāo)。例如,STS組件可以“解開”一個(gè)含有用戶名/口令的二進(jìn)制權(quán)標(biāo),并隨后使用LDAP服務(wù)訪問用戶注冊(cè)表來驗(yàn)證提交的證書。
當(dāng)STS組件被其他組件如應(yīng)用服務(wù)器使用時(shí),STS組件可以被用于生成單次登錄到舊的認(rèn)證系統(tǒng)所需的權(quán)標(biāo)。因此,STS組件可以用于權(quán)標(biāo)的轉(zhuǎn)換,該權(quán)標(biāo)的轉(zhuǎn)換可以為了內(nèi)部目標(biāo),也就是在企業(yè)內(nèi)部,也可以為了外部目標(biāo),也就是在聯(lián)合內(nèi)跨越各個(gè)企業(yè)。作為內(nèi)部目標(biāo)的一個(gè)示例,Web應(yīng)用服務(wù)器可以通過IBM CICS(客戶信息控制系統(tǒng))事務(wù)網(wǎng)關(guān)與主機(jī)相連接;CICS是應(yīng)用服務(wù)器和連接器的一個(gè)族,提供了企業(yè)級(jí)別的用于使命關(guān)鍵性的應(yīng)用的在線事務(wù)管理以及連接性。Web應(yīng)用服務(wù)器可調(diào)用STS組件來把Kerberos權(quán)證(如被該Web應(yīng)用服務(wù)器內(nèi)部使用的)轉(zhuǎn)換為CICS的事務(wù)網(wǎng)關(guān)所需的IBM RACF的通過權(quán)證(passticket)。
圖2C所示的實(shí)體可以用上面介紹過的術(shù)語如“發(fā)布方”和“依賴方”來解釋。作為建立和維護(hù)信任關(guān)系的一部分,發(fā)布方的信任代理可以確定依賴方的信任代理需要/接受什么樣的權(quán)標(biāo)類型。那么,當(dāng)從安全權(quán)標(biāo)服務(wù)調(diào)用權(quán)標(biāo)服務(wù)時(shí),信任代理就使用這個(gè)信息。當(dāng)發(fā)布域的信任代理需要為依賴方生成認(rèn)證聲明時(shí),該信任代理確定所需的權(quán)標(biāo)類型,并從安全權(quán)標(biāo)服務(wù)請(qǐng)求適當(dāng)?shù)臋?quán)標(biāo)。
當(dāng)依賴域的信任代理從發(fā)布方接收到認(rèn)證聲明時(shí),該信任代理知道它所期望的聲明的類型,以及在依賴域內(nèi)部使用所需要的聲明的類型。于是,依賴域的信任代理請(qǐng)求安全權(quán)標(biāo)服務(wù)基于接收到的認(rèn)證聲明中的權(quán)標(biāo),生成所需的內(nèi)部使用的權(quán)標(biāo)。
信任代理和信任中介都有能力把從發(fā)布方接收到的聲明轉(zhuǎn)換為依賴方可以理解的格式。信任中介有能力為每個(gè)有直接的信任關(guān)系的信任代理解釋聲明格式,從而允許該信任中介在發(fā)布方和依賴方之間提供聲明的轉(zhuǎn)換。任一方均可通過它本地的信任代理請(qǐng)求這種轉(zhuǎn)換。因此,發(fā)布方的信任代理可以在聲明被發(fā)送到依賴方之前請(qǐng)求對(duì)聲明進(jìn)行轉(zhuǎn)換。同樣的,依賴方的信任代理可以請(qǐng)求對(duì)從發(fā)布方接收到的聲明進(jìn)行轉(zhuǎn)換。
對(duì)聲明的轉(zhuǎn)換包含了用戶身份轉(zhuǎn)換、認(rèn)證聲明轉(zhuǎn)換、屬性聲明轉(zhuǎn)換、或其他形式的聲明轉(zhuǎn)換。重申以上觀點(diǎn),對(duì)聲明的轉(zhuǎn)換由聯(lián)合內(nèi)部的信任組件,即信任代理和信任中介,來處理。信任代理可以在發(fā)布域或者依賴域?qū)嵤┍镜剞D(zhuǎn)換,或者信任代理也可以調(diào)用來自信任中介的協(xié)助。
假定發(fā)布方和依賴方已經(jīng)具有與信任中介的單獨(dú)的信任關(guān)系,該信任中介在必要時(shí)能夠動(dòng)態(tài)地建立即中介安排發(fā)布方和依賴方之間的新的信任關(guān)系。在信任中介提供了初始的信任關(guān)系中介安排操作之后,發(fā)布方和依賴方就可以直接維護(hù)此關(guān)系,這樣就無需為未來轉(zhuǎn)換請(qǐng)求調(diào)用信任中介了。應(yīng)該注意到,認(rèn)證權(quán)標(biāo)的轉(zhuǎn)換可以在三個(gè)可能的地點(diǎn)發(fā)生發(fā)布方的信任代理、依賴方的信任代理和信任中介。優(yōu)選地,發(fā)布方的信任代理生成可以被信任中介所理解的認(rèn)證聲明,并且信任中介將該認(rèn)證聲明發(fā)送到依賴方。接著依賴方請(qǐng)求將來自信任中介的該權(quán)標(biāo)轉(zhuǎn)換為可被依賴方識(shí)別的格式。權(quán)標(biāo)的轉(zhuǎn)換可以發(fā)生在認(rèn)證聲明的傳輸之前、或傳輸之后、或發(fā)生在傳輸前與后。
聯(lián)合體系結(jié)構(gòu)內(nèi)部的信任關(guān)系在依照本發(fā)明實(shí)施的聯(lián)合環(huán)境內(nèi)部,有兩種“信任域”必須被管理企業(yè)信任域和聯(lián)合信任域。這兩種信任域的不同點(diǎn)部分地基于管理與信任域的信任關(guān)系的業(yè)務(wù)協(xié)定以及建立信任所用的技術(shù)。企業(yè)信任域包含了由企業(yè)所管理的組件;該信任域內(nèi)的所有組件互相信任。一般而言,在企業(yè)內(nèi)建立信任是不需要業(yè)務(wù)協(xié)定的,因?yàn)樗渴鸬募夹g(shù)在企業(yè)內(nèi)建立了固有的信任,如通過要求組件之間相互認(rèn)證的SSL會(huì)話。參考圖2B,舊的應(yīng)用和后端的處理系統(tǒng)可以代表企業(yè)的信任域。
聯(lián)合信任域是那些跨越了企業(yè)邊界的域;從一個(gè)視角看,聯(lián)合信任域表示不同企業(yè)信任域之間的信任關(guān)系。聯(lián)合信任域通過跨越企業(yè)邊界的信任代理來建立。聯(lián)合信任關(guān)系包括某種引導(dǎo)過程,通過該引導(dǎo)過程在信任代理之間建立初始的信任。部分該引導(dǎo)過程可包括共享密鑰和規(guī)則的建立,這里的規(guī)則定義了期望的和/或允許的權(quán)標(biāo)類型以及標(biāo)識(shí)符的轉(zhuǎn)換。一般而言,這種引導(dǎo)過程是帶外(out-of-band)執(zhí)行的,因?yàn)檫@種引導(dǎo)過程也包括了業(yè)務(wù)協(xié)定的建立,該些業(yè)務(wù)協(xié)定管理企業(yè)對(duì)聯(lián)合的參與以及與這種參與相關(guān)聯(lián)的責(zé)任。
有多種機(jī)制用來在聯(lián)合業(yè)務(wù)模型中建立信任。在一個(gè)聯(lián)合模型中,出于業(yè)務(wù)原因,需要提供在聯(lián)合的參與者之間有信任的基本概念,以便提供一種程度的確信,確信在參與者之間傳輸?shù)穆暶?包括權(quán)標(biāo)和屬性信息)是有效的。如果信任關(guān)系不存在,那么依賴域就不能依靠從發(fā)布域接收的聲明;依賴域無法使用這種聲明來決定怎樣解釋從發(fā)布域接收的任何信息。
例如,一家大公司可能想要與幾千名全球客戶建立聯(lián)系,并且該企業(yè)可以使用現(xiàn)有技術(shù)的解決方案。作為第一個(gè)示例,該公司可以請(qǐng)求全球客戶使用來自一家商業(yè)證書管理機(jī)構(gòu)的數(shù)字證書來建立相互的信任。該商業(yè)證書管理機(jī)構(gòu)使得該公司的服務(wù)器信任位于每個(gè)全球用戶處的信任服務(wù)器。作為第二個(gè)示例,該公司可以使用Kerberos實(shí)現(xiàn)第三方的信任;該公司及其全球客戶可以實(shí)現(xiàn)受信任的第三方Kerberos域服務(wù),該域服務(wù)實(shí)現(xiàn)了基于共享秘密的信任。作為第三個(gè)示例,該公司可以就專有的安全消息權(quán)標(biāo)建立一個(gè)專用方案,該權(quán)標(biāo)被其全球客戶的服務(wù)器相互信任。
如果該公司需要管理與少量全球客戶的信任關(guān)系,上述任何一個(gè)方法可能都可以接受,但是如果有成百上千個(gè)潛在的聯(lián)合伙伴,則這會(huì)變得無法管理。例如,盡管該公司有可能強(qiáng)制它的較小伙伴運(yùn)行一個(gè)專用方案,但是它不太可能對(duì)它的較大伙伴施加許多要求。
就本發(fā)明而言,企業(yè)將使用通過信任代理、也許還有信任中介建立和維護(hù)的信任關(guān)系。本發(fā)明的聯(lián)合體系結(jié)構(gòu)的優(yōu)勢(shì)在于,它不在企業(yè)及它的潛在聯(lián)合伙伴的當(dāng)前基礎(chǔ)設(shè)施之上和之外施加額外的要求。
然而,本發(fā)明不會(huì)減輕一家企業(yè)及其潛在的聯(lián)合伙伴的初步工作,即建立為參與聯(lián)合所需要的業(yè)務(wù)和責(zé)任協(xié)定所需的初步工作。此外,參與者不能忽視信任關(guān)系的技術(shù)引導(dǎo)。本發(fā)明允許這種引導(dǎo)具有靈活性,例如,第一個(gè)聯(lián)合伙伴可以確定的信息發(fā)布Kerberos消息,而第二個(gè)聯(lián)合伙伴可以確定的信息發(fā)布SAML認(rèn)證聲明。
在本發(fā)明中,信任關(guān)系由聯(lián)合信任代理所管理,該些信任代理可包括安全權(quán)標(biāo)服務(wù),該安全權(quán)標(biāo)服務(wù)基于在兩個(gè)信任代理之間預(yù)先建立的關(guān)系,驗(yàn)證和轉(zhuǎn)換從發(fā)布方接收到的權(quán)標(biāo)。在有些情況下,一家聯(lián)合企業(yè)無法與另一家聯(lián)合企業(yè)建立信任關(guān)系(以及權(quán)標(biāo)轉(zhuǎn)換),這時(shí)可調(diào)用信任中介。然而,聯(lián)合企業(yè)仍必須與信任中介建立關(guān)系。
現(xiàn)在參考圖2D,此框圖說明了根據(jù)本發(fā)明在使用一些信任代理和一信任中介的各聯(lián)合域之間的一組示例性的信任關(guān)系。盡管圖2C已經(jīng)介紹了信任中介,圖2D還說明了在本發(fā)明的聯(lián)合體系結(jié)構(gòu)內(nèi)的可傳遞的信任關(guān)系的重要性。
聯(lián)合域271-273分別包括信任代理274-276。信任代理274與275具有直接的信任關(guān)系277。信任中介280與信任代理275具有直接的信任關(guān)系278,信任中介280還與信任代理276具有直接的信任關(guān)系279?;谂c其他聯(lián)合伙伴的可傳遞的信任,信任中介280被用于代表該聯(lián)合的參與者來建立信任關(guān)系。可傳遞信任的原理允許信任代理275和信任代理276通過信任中介280具有被中介安排的信任關(guān)系281。信任代理275和信任代理276都無需了解怎樣轉(zhuǎn)換或驗(yàn)證另一方的聲明;可以調(diào)用信任中介將該聲明轉(zhuǎn)換為在另一個(gè)信任代理上有效的、被信任的和可理解的聲明。
通過使用ebXML(使用XML的電子商務(wù))標(biāo)準(zhǔn),可以用XML來表示規(guī)定了關(guān)于聯(lián)合企業(yè)之間的信任關(guān)系的契約義務(wù)和責(zé)任的業(yè)務(wù)協(xié)定。例如,可以在ebXML文檔中表示直接的信任關(guān)系;共享直接信任關(guān)系的每個(gè)聯(lián)合域會(huì)有一份以ebXML文檔表示的合同的副本。聯(lián)合內(nèi)部各種實(shí)體的操作特征可以在ebXML編排(choreography)內(nèi)規(guī)定并發(fā)布在ebXML注冊(cè)表里;希望參與一個(gè)特定聯(lián)合例如以便操作信任代理或信任中介的任何企業(yè)均需要符合已發(fā)布的要求,這些要求是該特定聯(lián)合為聯(lián)合內(nèi)所有的信任代理或信任中介規(guī)定的。安全權(quán)標(biāo)服務(wù)可以解析這些ebXML文檔,以獲得關(guān)于來自其他域的權(quán)標(biāo)將被轉(zhuǎn)換的方式的操作細(xì)節(jié)。不過需要注意的是,對(duì)于怎樣實(shí)現(xiàn)聯(lián)合內(nèi)的信任關(guān)系的方式,本發(fā)明可以使用其他標(biāo)準(zhǔn)和機(jī)制來規(guī)定關(guān)于此方式的細(xì)節(jié)。
聯(lián)合體系結(jié)構(gòu)內(nèi)的聲明處理如上所述,聯(lián)合內(nèi)的用戶體驗(yàn)部分地由關(guān)于用戶或?yàn)榱擞脩舳豢缬騻鬏數(shù)穆暶魉鶝Q定。聲明提供了關(guān)于用戶認(rèn)證狀態(tài)的信息、屬性信息以及其他信息。通過應(yīng)用認(rèn)證聲明可以使用戶無需在訪問每個(gè)站點(diǎn)時(shí)重新進(jìn)行認(rèn)證。在聯(lián)合環(huán)境內(nèi)部存在兩種模型可以使依賴方從發(fā)布方得到聲明推模型和拉模型。在推模型中,用戶聲明與用戶對(duì)發(fā)布方的請(qǐng)求一同傳播。在拉模型中,在依賴方只接收用戶的請(qǐng)求,而沒有任何其他信息,接著依賴方向發(fā)布方請(qǐng)求相關(guān)的或所需的聲明。
給定在聯(lián)合環(huán)境內(nèi)使用聲明的這些模型后,現(xiàn)在本發(fā)明的描述轉(zhuǎn)向?yàn)橐唤M圖,該組圖描述了在本發(fā)明的聯(lián)合環(huán)境內(nèi)部創(chuàng)建和使用聲明的一組過程。圖3A描述了在發(fā)布域中的一個(gè)普遍過程,此過程是為了在聯(lián)合環(huán)境中創(chuàng)建一個(gè)聲明,而圖3B描述了在依賴域中的一個(gè)普遍過程,此過程是為了“拆開”一個(gè)聲明,也就是說,通過提取和分析聲明的信息,將聲明分解為它的基本信息。圖3C和圖3D通過描述推模型的兩個(gè)變種顯示了圖3A所示的普遍過程的更詳細(xì)過程,在推模型中,聲明在發(fā)布域中生成,并接著與用戶請(qǐng)求一起被傳輸?shù)揭蕾囉?。圖3E描述了一個(gè)拉模型,在此模型中,當(dāng)依賴域試圖滿足由依賴域從發(fā)請(qǐng)求的用戶處接收到的一個(gè)資源請(qǐng)求時(shí),依賴域請(qǐng)求從發(fā)布域獲得用戶的任何所要求的聲明。
現(xiàn)在參考圖3A,此流程圖說明了在發(fā)布域中的一個(gè)普遍過程,此過程是為了在聯(lián)合環(huán)境中創(chuàng)建一個(gè)聲明。當(dāng)發(fā)布域的接觸點(diǎn)服務(wù)器就一個(gè)聲明所觸發(fā)時(shí),此過程即開始(步驟302)。接觸點(diǎn)服務(wù)器可以接收一個(gè)來自依賴域的用于給定用戶的特定聲明的請(qǐng)求,或者它也可以截取一個(gè)發(fā)向已知依賴域的要求聲明的外出請(qǐng)求;這些情形分別通過圖3C和圖3D進(jìn)行了如下更詳細(xì)的描述。響應(yīng)于就一個(gè)聲明而被觸發(fā),發(fā)布域的接觸點(diǎn)服務(wù)器請(qǐng)求從發(fā)布域的信任代理獲得該聲明(步驟304),該信任代理生成該聲明(步驟306);在必要時(shí),發(fā)布域的信任代理會(huì)請(qǐng)求信任中介的協(xié)助來生成要求的聲明。在生成聲明后,發(fā)布域的信任代理接著將該聲明返回發(fā)布域的接觸點(diǎn)服務(wù)器(步驟308),接著發(fā)布域的接觸點(diǎn)服務(wù)器以適當(dāng)?shù)姆绞綄⒙暶鞑迦氲酵鈧鞯臄?shù)據(jù)流中(步驟310),例如,將聲明插入到外傳的HTTP或SOAP消息中,從而完成該過程。
圖3A說明了在發(fā)布域創(chuàng)建聲明的過程,該過程中無需使用“本地錢包”(local wallet)。不過,本發(fā)明可以包括本地錢包的功能。一般而言,本地錢包是客戶端一方的代碼,為了便利于事務(wù),它擔(dān)當(dāng)了用戶屬性信息或其他信息的安全數(shù)據(jù)存儲(chǔ);客戶端一方的代碼也可參與到聲明傳輸?shù)耐颇P秃?或拉模型中。當(dāng)本地錢包主動(dòng)地參與到協(xié)議中時(shí),在生成聲明以及將聲明插入?yún)f(xié)議流的這一方面,本地錢包實(shí)現(xiàn)了接觸點(diǎn)服務(wù)器的一部分功能。使用本地錢包不允許本地錢包實(shí)施發(fā)生在接觸點(diǎn)服務(wù)器與信任代理之間的基于信任的交互。在需要附加的信任代理的情況時(shí),必須調(diào)用接觸點(diǎn)服務(wù)器。
現(xiàn)在參考圖3B,此流程圖說明了在依賴域中的一個(gè)普遍過程,此過程是為了拆開一個(gè)聲明。當(dāng)依賴域的接觸點(diǎn)服務(wù)器接收到一個(gè)消息及其相關(guān)聯(lián)的聲明時(shí)(步驟322),該過程開始,然后接觸點(diǎn)服務(wù)器提取該聲明并將該聲明轉(zhuǎn)發(fā)給依賴域的信任代理(步驟324)。依賴域的信任代理從聲明中提取信息,該信息包括從發(fā)布域接收到的安全權(quán)標(biāo)(步驟326);依賴域的信任代理會(huì)調(diào)用安全權(quán)標(biāo)服務(wù)來驗(yàn)證這個(gè)權(quán)標(biāo),如果合適,就向用戶返回一個(gè)本地有效的權(quán)標(biāo)(步驟328)。
作為步驟326的一部分,信任代理將確定聲明的來源,即發(fā)布方。如果信任代理能夠理解從該發(fā)布域接收的信任聲明,那么信任代理會(huì)在內(nèi)部執(zhí)行步驟328。如果信任代理無法理解/信任從該發(fā)布方接收的信任聲明,那么信任代理會(huì)調(diào)用來自信任中介的協(xié)助。如果聲明不能被驗(yàn)證,那么就會(huì)生成相應(yīng)的錯(cuò)誤響應(yīng)。
假設(shè)聲明被驗(yàn)證,那么依賴域的信任代理為該用戶建立所需的本地信息(步驟330)。例如,本地信息可能包括后端的舊應(yīng)用所需的認(rèn)證證書。依賴域的信任代理將所需的信息返回依賴域的接觸點(diǎn)服務(wù)器(步驟332),該接觸點(diǎn)服務(wù)器為用戶建立一個(gè)本地會(huì)話。
在接觸點(diǎn)服務(wù)器為用戶建立會(huì)話后,該用戶成為已通過認(rèn)證的用戶。接觸點(diǎn)服務(wù)器可使用此會(huì)話信息來進(jìn)一步管理用戶與域之間的任何事務(wù),直到注銷或超時(shí)事件出現(xiàn)為止。給定了接觸點(diǎn)服務(wù)器擁有用戶的被認(rèn)證的身份,那么在必要時(shí),基于此特定用戶的身份和與此特定用戶相關(guān)聯(lián)的任何授權(quán)策略,接觸點(diǎn)服務(wù)器會(huì)為這個(gè)請(qǐng)求獲得授權(quán)。接觸點(diǎn)服務(wù)器接著將該用戶的請(qǐng)求以及任何相關(guān)信息轉(zhuǎn)發(fā)給所請(qǐng)求的后端應(yīng)用或服務(wù)(步驟334),從而完成該過程。
應(yīng)該注意到,在接觸點(diǎn)服務(wù)器和信任代理之間傳輸?shù)臄?shù)據(jù)項(xiàng)以及這些數(shù)據(jù)項(xiàng)的格式可能不同。不是從消息中提取聲明并僅僅將聲明轉(zhuǎn)發(fā)給信任代理,接觸點(diǎn)服務(wù)器可將整個(gè)消息轉(zhuǎn)發(fā)給信任代理。例如,在信任代理上的處理過程可包括諸如在SOAP消息上的簽名驗(yàn)證這樣的步驟,該步驟需要整個(gè)SOAP包封。
現(xiàn)在參考圖3C,此流程圖說明了一個(gè)特定的過程,此過程是為了從發(fā)布域向依賴域推一個(gè)聲明,作為對(duì)發(fā)布域上的用戶動(dòng)作的響應(yīng)。當(dāng)用戶從發(fā)布域內(nèi)的Web頁面或類似資源上訪問一個(gè)指向依賴域的鏈接時(shí)(步驟342),該過程開始,從而調(diào)用某種形式的CGI(通用網(wǎng)關(guān)接口)型處理來建立一個(gè)特定的聲明。發(fā)布域有能力識(shí)別依賴域?qū)β暶鞯男枨螅@意味著與這樣的現(xiàn)存的舊系統(tǒng)的緊密集成,在該舊系統(tǒng)上本發(fā)明的聯(lián)合基礎(chǔ)設(shè)施被實(shí)施。這也意味著發(fā)布方和依賴方之間的緊密耦合,以至于發(fā)布方不需要調(diào)用信任代理來建立所需的會(huì)話;在某些類型的已經(jīng)很好地建立了信任關(guān)系的聯(lián)合實(shí)體之間,這種緊密的耦合可能是適合的。
在發(fā)布域的后端處理過程被調(diào)用以建立所需的聲明(步驟344),該過程可包括調(diào)用本地信任代理的功能。接下來,對(duì)依賴域的用戶請(qǐng)求,包括所需的聲明,被建立起來(步驟346),并且發(fā)布域?qū)⒃撀暶饕约坝脩粽?qǐng)求傳輸?shù)揭蕾囉?步驟348),從而完成該過程。當(dāng)依賴域接收到該請(qǐng)求及其相關(guān)聯(lián)的聲明時(shí),會(huì)接著以圖3B所示的方式對(duì)聲明進(jìn)行驗(yàn)證。
現(xiàn)在參考圖3D,此流程圖說明了一個(gè)特定的過程,此過程是為了從發(fā)布域向依賴域推一個(gè)聲明,作為對(duì)發(fā)布域主動(dòng)截取一個(gè)發(fā)往依賴域的外傳請(qǐng)求的響應(yīng)。當(dāng)用戶請(qǐng)求依賴域上的受保護(hù)資源時(shí)(步驟352),該過程開始。接觸點(diǎn)服務(wù)器截取了外傳的請(qǐng)求(步驟354),例如,通過過濾外傳的消息中的預(yù)先確定的統(tǒng)一資源標(biāo)識(shí)符(URI)、消息的某些類型、消息內(nèi)容的某些類型,或通過其他的一些方式。接著發(fā)布域的接觸點(diǎn)服務(wù)器請(qǐng)求從發(fā)布域的信任代理生成一個(gè)適當(dāng)?shù)穆暶?356),該信任代理在必要時(shí)通過信任中介的協(xié)助生成聲明(步驟358)。發(fā)布域接著將用戶請(qǐng)求和生成的聲明傳輸?shù)揭蕾嚪?步驟360),從而完成該過程。當(dāng)依賴域接收到請(qǐng)求及其相關(guān)聯(lián)的聲明時(shí),依賴域會(huì)以圖3B所示的方式驗(yàn)證該聲明。
現(xiàn)在參考圖3E,此流程圖說明了一個(gè)拉模型,在此模型中,當(dāng)依賴域試圖滿足從發(fā)請(qǐng)求的用戶處收到的一個(gè)資源請(qǐng)求時(shí),依賴域?yàn)橛脩魪陌l(fā)布域請(qǐng)求任何需要的聲明。當(dāng)依賴域接收到用戶對(duì)于受保護(hù)資源的請(qǐng)求時(shí)(步驟372),該過程開始。與圖3C或圖3D所示的示例相反,圖3E中所示的示例描述了和依賴域接收的用戶請(qǐng)求相關(guān)聯(lián)的處理過程,而不存在關(guān)于用戶的任何所需聲明。在這種情況下,發(fā)布域無法截取或以其他方式處理用戶的請(qǐng)求以便將所需的聲明插入該用戶請(qǐng)求。例如,用戶可能已經(jīng)以這樣的方式輸入了一個(gè)統(tǒng)一資源定位器(URL)或使用了一個(gè)被標(biāo)記為書簽的對(duì)資源的引用,以至于外傳的請(qǐng)求未被發(fā)布域的接觸點(diǎn)服務(wù)器截取。因此,依賴域向發(fā)布域請(qǐng)求聲明。
接著依賴域確定用戶的主域(步驟374),也即相關(guān)的發(fā)布域。在基于HTTP的實(shí)現(xiàn)中,用戶可能已經(jīng)預(yù)先建立了與依賴域的關(guān)系,這導(dǎo)致了依賴域在用戶的客戶端設(shè)備上設(shè)置永久的cookie。這個(gè)永久的cookie會(huì)包含用戶主域即發(fā)布域的身份。在基于SOAP的實(shí)現(xiàn)中,用戶以某種方式操作一個(gè)Web服務(wù)客戶端,依賴域的Web服務(wù)會(huì)通過WSDL(Web服務(wù)描述語言)通告(advertise)服務(wù)需求,包括權(quán)標(biāo)需求。這就會(huì)需要用戶的Web服務(wù)客戶端/SOAP實(shí)現(xiàn)來提供所需的權(quán)標(biāo)類型。如果該需求沒有滿足,那么從技術(shù)上講Web服務(wù)會(huì)返回一個(gè)錯(cuò)誤。在一些情況下,它會(huì)返回一個(gè)錯(cuò)誤代碼,該錯(cuò)誤代碼會(huì)允許在用戶的Web服務(wù)客戶端提示輸入認(rèn)證信息,以便該請(qǐng)求可以適當(dāng)?shù)臋?quán)標(biāo)被重復(fù)。
依賴域的接觸點(diǎn)服務(wù)器向依賴域的信任代理啟動(dòng)一個(gè)對(duì)聲明的請(qǐng)求(步驟376),依賴域的信任代理為用戶從發(fā)布域的信任代理請(qǐng)求一個(gè)聲明(步驟378)。如果該實(shí)施例使用基于HTTP的通信,那么依賴域的信任代理向發(fā)布域的信任代理提出的聲明請(qǐng)求會(huì)被依賴域的接觸點(diǎn)服務(wù)器所傳輸,通過用戶的瀏覽器應(yīng)用重定向到發(fā)布域的接觸點(diǎn)服務(wù)器,發(fā)布域的接觸點(diǎn)服務(wù)器將聲明請(qǐng)求轉(zhuǎn)發(fā)給發(fā)布域的信任代理。
如果該實(shí)施例使用基于SOAP的實(shí)現(xiàn),那么依賴方會(huì)向用戶的Web服務(wù)客戶端返回一個(gè)錯(cuò)誤代碼。此錯(cuò)誤代碼允許Web服務(wù)客戶端對(duì)用戶提示輸入認(rèn)證信息。Web服務(wù)客戶端接著會(huì)生成所請(qǐng)求的權(quán)標(biāo)。用戶的Web服務(wù)客戶端可直接調(diào)用信任代理,如果依賴域的信任代理已被通告于UDDI(統(tǒng)一描述、發(fā)現(xiàn)與集成)注冊(cè)表中,從而允許用戶的Web服務(wù)客戶端找到信任代理。一般而言,該情形只對(duì)內(nèi)部用戶有效,其中信任代理只在企業(yè)內(nèi)部的專用UDDI中被通告,因?yàn)樾湃未聿惶赡鼙煌ǜ嬗谝蛱鼐W(wǎng)上的公開UDDI中或可普遍地從聯(lián)合外部訪問到。
發(fā)布域的信任代理生成所請(qǐng)求的聲明(步驟380),并將其以這樣的一種方式返回(步驟382),該種方式反映了接收聲明請(qǐng)求時(shí)所采用的方式。在依賴域的信任代理接收到所請(qǐng)求的聲明之后(步驟384),依賴域的信任代理從聲明中提取信息(步驟386)并嘗試解釋和/或驗(yàn)證該聲明(步驟388);信任代理在必要時(shí)會(huì)調(diào)用信任中介的協(xié)助來轉(zhuǎn)換該聲明。如果該聲明無法被驗(yàn)證,會(huì)生成一個(gè)適當(dāng)?shù)腻e(cuò)誤響應(yīng)。假設(shè)該聲明被驗(yàn)證,那么依賴域的信任代理以適當(dāng)?shù)母袷浇⒈镜匦畔ⅲ摲N格式是為后端服務(wù)的使用所需要的,此后端服務(wù)將試圖滿足用戶對(duì)受保護(hù)資源的請(qǐng)求(步驟390)。例如,本地信息可包括后端的舊的應(yīng)用所需的認(rèn)證證書。依賴域的信任代理將所需信息返回到依賴域的接觸點(diǎn)服務(wù)器(步驟392),接著該接觸點(diǎn)服務(wù)器為用戶建立一個(gè)本地會(huì)話并將用戶請(qǐng)求和任何相關(guān)的信息轉(zhuǎn)發(fā)給所請(qǐng)求的后端應(yīng)用或服務(wù)(步驟394),從而完成該過程。
聯(lián)合體系結(jié)構(gòu)內(nèi)的單次登錄圖2A-2D的描述集中于根據(jù)本發(fā)明的聯(lián)合數(shù)據(jù)處理環(huán)境內(nèi)實(shí)體的操作特征,而圖3A-3E的描述集中于在那些實(shí)體之間發(fā)生的一些過程。與這些描述相反,參考圖4對(duì)本發(fā)明的描述集中在為用戶完成事務(wù)并同時(shí)為用戶提供單次登錄體驗(yàn)的目標(biāo)上。
換句話說,下文的描述討論了在上文已經(jīng)討論過的實(shí)體和過程,不過以下的描述更多的集中于本發(fā)明的這樣的概覽,該概覽是關(guān)于用戶在用戶會(huì)話中可以具有單次登錄體驗(yàn)的方式。一次會(huì)話可以被定義為從(并包括)初始的用戶認(rèn)證即登錄開始到注銷的一系列事務(wù)。在一次會(huì)話中,用戶的動(dòng)作將部分地被為該會(huì)話授權(quán)給用戶的特權(quán)所管理。在一個(gè)聯(lián)合內(nèi),用戶期望具有單次登錄體驗(yàn),其中用戶僅完成一單次認(rèn)證操作,并且該認(rèn)證操作在會(huì)話的持續(xù)階段是足夠的,而不管在該會(huì)話中被訪問的聯(lián)合伙伴。
在用戶會(huì)話期間,用戶會(huì)訪問許多的聯(lián)合域以使用那些域提供的Web服務(wù)。域可使用標(biāo)準(zhǔn)的規(guī)范如UDDI和WSDL來公布它們所提供的服務(wù)的描述,UDDI和WSDL二者都使用XML作為共同的數(shù)據(jù)格式。用戶通過也遵循這些標(biāo)準(zhǔn)規(guī)范的應(yīng)用來發(fā)現(xiàn)可用的服務(wù)及服務(wù)提供者。SOAP提供了用于對(duì)于以XML表示的請(qǐng)求和響應(yīng)進(jìn)行通信的一個(gè)范式(paradigm)。聯(lián)合環(huán)境內(nèi)的實(shí)體可以除其他標(biāo)準(zhǔn)之外使用這些標(biāo)準(zhǔn)。
為了便利于單次登錄體驗(yàn),支持聯(lián)合環(huán)境的Web服務(wù)也將支持使用由第三方生成的認(rèn)證聲明或安全權(quán)標(biāo),以提供對(duì)用戶的認(rèn)證的證明。這種聲明將包含用戶在發(fā)布方進(jìn)行的成功認(rèn)證的某種證據(jù),以及該用戶的標(biāo)識(shí)符。因此,用戶可以向一個(gè)聯(lián)合伙伴提交傳統(tǒng)的認(rèn)證證書,如用戶名及口令,并隨后向不同的聯(lián)合伙伴提供由認(rèn)證/發(fā)布方所生成的SAML認(rèn)證聲明。
Web服務(wù)環(huán)境中的認(rèn)證是檢驗(yàn)Web服務(wù)請(qǐng)求所聲稱的身份的一種行為,以便于企業(yè)可以將訪問限制于被授權(quán)客戶端。請(qǐng)求或調(diào)用Web服務(wù)的用戶幾乎總是被認(rèn)證,因此在本發(fā)明的聯(lián)合環(huán)境內(nèi)部進(jìn)行認(rèn)證的需求與當(dāng)前的Web服務(wù)的用戶認(rèn)證需求并無任何差別。聯(lián)合環(huán)境也允許Web服務(wù)或其他應(yīng)用請(qǐng)求Web服務(wù),并且這些Web服務(wù)也會(huì)被認(rèn)證。
未參與到聯(lián)合會(huì)話中的用戶的認(rèn)證不會(huì)受到本發(fā)明的聯(lián)合體系結(jié)構(gòu)的影響。例如,現(xiàn)存的用戶通過HTTP/S上的基于表單的認(rèn)證機(jī)制進(jìn)行認(rèn)證,以訪問特定域上的非聯(lián)合資源,那么該用戶不會(huì)被該域上引入對(duì)聯(lián)合環(huán)境的支持所影響。認(rèn)證部分地由接觸點(diǎn)服務(wù)器處理,接觸點(diǎn)服務(wù)器轉(zhuǎn)而可調(diào)用單獨(dú)的信任代理組件。接觸點(diǎn)服務(wù)器的使用最大程度地降低了對(duì)現(xiàn)存的域的基礎(chǔ)設(shè)施的影響。例如,接觸點(diǎn)服務(wù)器可被配置為使所有的非聯(lián)合請(qǐng)求通過,以由域上的后端的或舊的應(yīng)用和系統(tǒng)所處理。
接觸點(diǎn)服務(wù)器可以選擇調(diào)用基于HTTP的認(rèn)證方法,如基本認(rèn)證、基于表單的認(rèn)證、或某種其他的認(rèn)證方法。接觸點(diǎn)服務(wù)器也支持聯(lián)合信任域,這是通過識(shí)別由用戶提交的作為認(rèn)證證明的聲明,如SAML認(rèn)證聲明,其中該聲明跨越了企業(yè)信任域。接觸點(diǎn)服務(wù)器可以調(diào)用信任代理,信任代理會(huì)轉(zhuǎn)而調(diào)用它的安全權(quán)標(biāo)服務(wù)來驗(yàn)證認(rèn)證證書/安全權(quán)標(biāo)。
Web服務(wù)或其他應(yīng)用的認(rèn)證包含了與用戶認(rèn)證相同的過程。來自Web服務(wù)的請(qǐng)求攜帶了包含認(rèn)證聲明的安全權(quán)標(biāo),并且信任代理/安全權(quán)標(biāo)服務(wù)會(huì)以與用戶提交權(quán)標(biāo)相同的方式驗(yàn)證該安全權(quán)標(biāo)。來自Web服務(wù)的請(qǐng)求應(yīng)一直攜帶著這個(gè)權(quán)標(biāo),因?yàn)閃eb服務(wù)會(huì)發(fā)現(xiàn)在UDDI中通告的所請(qǐng)求的服務(wù)需要什么樣的認(rèn)證聲明/安全權(quán)標(biāo)。
現(xiàn)在參考圖4,此框圖說明了一個(gè)聯(lián)合環(huán)境,該環(huán)境支持聯(lián)合的單次登錄操作。通過客戶端設(shè)備和適當(dāng)?shù)目蛻舳藨?yīng)用,如瀏覽器,用戶400期望訪問由企業(yè)/域410提供的Web服務(wù),該企業(yè)/域支持在聯(lián)合環(huán)境內(nèi)擔(dān)當(dāng)了聯(lián)合域的數(shù)據(jù)處理系統(tǒng)。域410支持接觸點(diǎn)服務(wù)器412和信任代理414,類似地,域420支持接觸點(diǎn)服務(wù)器422和信任代理424,而域430支持接觸點(diǎn)服務(wù)器432和信任代理434。如上所述,信任代理依靠信任中介450提供協(xié)助。附加的域和信任代理也可參與到聯(lián)合環(huán)境中。圖4描述了域410和域420之間的聯(lián)合單次登錄操作;類似的操作也可以發(fā)生在域410和域430之間。
用戶完成了對(duì)域410的認(rèn)證操作;該認(rèn)證操作由接觸點(diǎn)服務(wù)器412所處理。當(dāng)用戶請(qǐng)求訪問一些需要被認(rèn)證的身份的資源,例如為了訪問控制的目的或?yàn)榱藗€(gè)性化的目的時(shí),該認(rèn)證操作被觸發(fā)。接觸點(diǎn)服務(wù)器412可以調(diào)用舊的認(rèn)證服務(wù),或者它也可以調(diào)用信任代理414來驗(yàn)證用戶所提交的認(rèn)證證書。域410在用戶的聯(lián)合會(huì)話期間成為用戶的主域。
在之后的某個(gè)時(shí)間點(diǎn),用戶在聯(lián)合伙伴例如也支持聯(lián)合域的企業(yè)420處啟動(dòng)一個(gè)事務(wù),從而觸發(fā)一個(gè)聯(lián)合單次登錄操作。例如,用戶可在域420上啟動(dòng)一個(gè)新的事務(wù),或者用戶最初的事務(wù)會(huì)級(jí)聯(lián)傳遞為其他域上的一個(gè)或多個(gè)附加事務(wù)。作為另一示例,用戶可以通過接觸點(diǎn)服務(wù)器412調(diào)用對(duì)域420中的資源的聯(lián)合單次登錄操作,例如,通過選擇域410中寄放的Web頁面上的特殊鏈接,或者通過請(qǐng)求在域410中寄放的、但顯示域420中寄放的資源的入口頁面。接觸點(diǎn)服務(wù)器412向信任代理414發(fā)送請(qǐng)求以便為用戶生成一個(gè)聯(lián)合單次登錄權(quán)標(biāo),此權(quán)標(biāo)被格式化以被域420理解或信任。信任代理414將此權(quán)標(biāo)返回接觸點(diǎn)服務(wù)器412,接觸點(diǎn)服務(wù)器412再將此權(quán)標(biāo)發(fā)送到域內(nèi)的接觸點(diǎn)服務(wù)器422。域410擔(dān)當(dāng)了對(duì)域420上的用戶的發(fā)布方,而域420擔(dān)當(dāng)了依賴方。用戶的權(quán)標(biāo)會(huì)與用戶請(qǐng)求一起傳輸?shù)接?20;此權(quán)標(biāo)可以通過用戶的瀏覽器使用HTTP重定向來發(fā)送,或者可以通過代表在信任代理414提供的權(quán)標(biāo)中被識(shí)別的用戶,直接調(diào)用對(duì)接觸點(diǎn)服務(wù)器422(在HTTP上或在HTTP上的SOAP上)的請(qǐng)求來發(fā)送。
接觸點(diǎn)服務(wù)器422接收了請(qǐng)求以及聯(lián)合單次登錄權(quán)標(biāo),并且調(diào)用信任代理424。信任代理424接收聯(lián)合單次登陸權(quán)標(biāo),驗(yàn)證該權(quán)標(biāo),并且為用戶生成本地有效的權(quán)標(biāo),假設(shè)該權(quán)標(biāo)為有效的和被信任的話。信任代理424將本地有效的權(quán)標(biāo)返回接觸點(diǎn)服務(wù)器422,接觸點(diǎn)服務(wù)器422在域420內(nèi)為用戶建立會(huì)話。如果必要,接觸點(diǎn)服務(wù)器422可以在另一個(gè)聯(lián)合的伙伴處啟動(dòng)聯(lián)合單次登錄。
在域420上的權(quán)標(biāo)驗(yàn)證由信任代理424處理,也許還有來自安全權(quán)標(biāo)服務(wù)的協(xié)助。取決于域410提交的權(quán)標(biāo)類型,安全權(quán)標(biāo)服務(wù)會(huì)需要訪問域420上的用戶注冊(cè)表。例如,域420會(huì)提供一個(gè)包含了用戶名和口令的二進(jìn)制安全權(quán)標(biāo),該權(quán)標(biāo)將會(huì)對(duì)照域420上的用戶注冊(cè)表被驗(yàn)證。因此,在這個(gè)示例中,一家企業(yè)簡(jiǎn)單地驗(yàn)證來自聯(lián)合伙伴的安全權(quán)標(biāo)。域410和域420之間的信任關(guān)系確保了域420能夠理解并信任由域410代表該用戶提交的安全權(quán)標(biāo)。
聯(lián)合單次登錄不僅需要驗(yàn)證代表用戶提交給依賴域的安全權(quán)標(biāo),還需要基于安全權(quán)標(biāo)所包含信息確定在依賴域上本地有效的用戶標(biāo)識(shí)符。直接信任關(guān)系和為建立這種關(guān)系所需的業(yè)務(wù)協(xié)定的一個(gè)結(jié)果是,至少一方,或者發(fā)布域、或者依賴域、或者兩者,會(huì)了解怎樣將發(fā)布域提供的信息轉(zhuǎn)換成為依賴域上有效的標(biāo)識(shí)符。在以上簡(jiǎn)單的示例中,假設(shè)發(fā)布域即域410能夠向依賴域即域420提供在域420上有效的用戶標(biāo)識(shí)符。在此情形中,依賴域無需調(diào)用任何身份映射功能。域420上的信任代理424會(huì)為用戶生成一個(gè)可以為該用戶“擔(dān)保”的安全權(quán)標(biāo)。被接受的權(quán)標(biāo)類型、權(quán)標(biāo)上所需的簽名和其他要求都作為聯(lián)合業(yè)務(wù)協(xié)定的一部分而預(yù)先建立了。管理標(biāo)識(shí)符的轉(zhuǎn)換的規(guī)則和算法也作為聯(lián)合的業(yè)務(wù)協(xié)定的一部分而預(yù)先建立了。在兩個(gè)參與者之間存在直接信任關(guān)系的情況下,標(biāo)識(shí)符的轉(zhuǎn)換算法會(huì)為該雙方建立,并且不與聯(lián)合內(nèi)的其他任何方相關(guān)。
然而,這種情況并不經(jīng)常出現(xiàn)發(fā)布域了解怎樣把用戶從域410的本地標(biāo)識(shí)符映射為域420的本地標(biāo)識(shí)符。在一些情況下,可能是依賴域了解怎樣進(jìn)行映射,而在其他情況下,雙方都不了解怎樣進(jìn)行轉(zhuǎn)換,在這些情況下,就需要調(diào)用第三方信任中介。換句話說,在存在中介安排的信任關(guān)系時(shí),發(fā)布域和依賴域不具有彼此之間的直接信任關(guān)系。不過它們具有與信任中介如信任中介450的直接信任關(guān)系。標(biāo)識(shí)符映射的規(guī)則和算法會(huì)被作為這種關(guān)系的一部分而建立,并且信任中介會(huì)使用該信息來協(xié)助進(jìn)行中介安排的信任關(guān)系所需的標(biāo)識(shí)符轉(zhuǎn)換。
域420在接觸點(diǎn)服務(wù)器422上接收到由域410發(fā)布的權(quán)標(biāo),該接觸點(diǎn)服務(wù)器422調(diào)用信任代理424來驗(yàn)證權(quán)標(biāo)和執(zhí)行身份映射。在此情況下,由于信任代理424無法將用戶從域410的本地標(biāo)識(shí)符映射到域420的本地標(biāo)識(shí)符,信任代理424調(diào)用信任中介450來驗(yàn)證權(quán)標(biāo)和執(zhí)行身份映射。在獲得用戶的本地標(biāo)識(shí)符之后,信任代理424可能會(huì)通過它的安全權(quán)標(biāo)服務(wù)生成域420上的后端應(yīng)用所需的任何本地權(quán)標(biāo),例如,可能需要一個(gè)Kerberos權(quán)標(biāo)來促進(jìn)從接觸點(diǎn)服務(wù)器到應(yīng)用服務(wù)器的單次登錄。在獲得本地有效的權(quán)標(biāo)后,如果需要,接觸點(diǎn)服務(wù)器可以為用戶建立本地會(huì)話。接觸點(diǎn)服務(wù)器也可處理用戶請(qǐng)求的粗粒度授權(quán)并將已授權(quán)的請(qǐng)求轉(zhuǎn)發(fā)給域420內(nèi)適當(dāng)?shù)膽?yīng)用服務(wù)器。
當(dāng)用戶注銷或退出時(shí),用戶會(huì)話即終止。當(dāng)用戶注銷了與主域的會(huì)話時(shí),主域會(huì)通知所有的依賴域,即它曾經(jīng)向其發(fā)布安全權(quán)標(biāo)的域,并在這些域上調(diào)用用戶注銷操作。如果這些依賴域中的任何一個(gè)域轉(zhuǎn)而曾為同一用戶擔(dān)當(dāng)過主域,那么它們也會(huì)以級(jí)聯(lián)的方式通知它們所有的依賴域該用戶的注銷請(qǐng)求。每個(gè)域的信任代理負(fù)責(zé)將用戶的注銷請(qǐng)求通知所有的依賴域,并且作為此過程的一部分,信任代理會(huì)調(diào)用信任中介。
考慮到以上提供的發(fā)明的具體描述,本發(fā)明的優(yōu)勢(shì)非常明顯?,F(xiàn)有技術(shù)的解決方案將域的安全服務(wù)組織成為層次系統(tǒng),該層次系統(tǒng)需要域具有嚴(yán)格的信任關(guān)系和固有兼容的技術(shù)。其他方法則把統(tǒng)一的格式強(qiáng)加在認(rèn)證聲明上,或者不允許認(rèn)證聲明的傳輸,有時(shí)會(huì)傳輸一個(gè)已認(rèn)證的身份,以便通過該身份來建立本地聲明。
本發(fā)明的優(yōu)勢(shì)之一在于,信任代理允許給定域中事先存在的安全服務(wù)與其他域建立信任關(guān)系,而無需注冊(cè)到同一個(gè)信任根或使用同一種建立信任的技術(shù)。因此,本發(fā)明的聯(lián)合體系結(jié)構(gòu)提供了實(shí)體間松散的耦合關(guān)系。主域管理認(rèn)證,而每個(gè)域僅管理它自己的注冊(cè)用戶的認(rèn)證。每個(gè)域自由地接受、拒絕、或修改其他任何域的關(guān)于用戶身份和屬性的陳述。依賴域依靠發(fā)布域(最終為主域)的身份和屬性的聲明,不過每個(gè)域可以實(shí)施任何認(rèn)證協(xié)議,并且給定域內(nèi)的應(yīng)用不需要被修改即可運(yùn)行之前不支持的協(xié)議,以使該域可以參與到聯(lián)合中。聯(lián)合無需特定的信任模型;一組實(shí)體可組成一個(gè)聯(lián)合,該聯(lián)合符合參與實(shí)體可能已經(jīng)建立的信任模型。聲明的轉(zhuǎn)換只發(fā)生于信任代理和/或信任中介中;聯(lián)合體系結(jié)構(gòu)擔(dān)當(dāng)了前端的基礎(chǔ)結(jié)構(gòu),此結(jié)構(gòu)的實(shí)施只會(huì)對(duì)現(xiàn)存的舊系統(tǒng)帶來最小限度的影響。
聯(lián)合允許用戶以單次登錄的方式無縫地遍歷給定聯(lián)合內(nèi)的不同站點(diǎn)。由于在聯(lián)合參與者之間建立的信任關(guān)系,一個(gè)參與者能夠認(rèn)證用戶,并接著擔(dān)當(dāng)該用戶的發(fā)布方。其他的聯(lián)合的伙伴成為依賴方,由此它們便依靠發(fā)布方提供的關(guān)于用戶的信息,而無需直接與用戶發(fā)生牽連。
需要非常注意的是,盡管本發(fā)明在文中是在完全運(yùn)行的數(shù)據(jù)處理系統(tǒng)的情境中被描述的,本領(lǐng)域的普通技術(shù)人員會(huì)理解本發(fā)明的過程能夠用計(jì)算機(jī)可讀媒體中的指令的方式以及其他多種方式來分發(fā),而不用關(guān)心實(shí)際用來進(jìn)行分發(fā)的信號(hào)承載媒體的特定類型。計(jì)算機(jī)可讀媒體的示例包括可擦可編程只讀存儲(chǔ)器、只讀存儲(chǔ)器、磁帶、紙、軟盤、硬盤驅(qū)動(dòng)器、隨機(jī)存取存儲(chǔ)器、光盤只讀存儲(chǔ)器等媒體,以及傳輸型的媒體,如數(shù)字和模擬通信鏈路。
方法通常被認(rèn)為是達(dá)到期望結(jié)果的各步驟的前后一致的序列。這些步驟需要物理量的物理操縱。通常來說,盡管不是必要的,這些物理量采用電信號(hào)或磁信號(hào)的形式,這些信號(hào)能夠被存儲(chǔ)、傳輸、組合、比較、以及以其他方式被操作。主要是為了常見用法的原因,稱這些信號(hào)為比特、值、參數(shù)、項(xiàng)目、元素、對(duì)象、符號(hào)、字符、項(xiàng)、數(shù)字等等,常常是便利的。不過應(yīng)該注意到,所有這些術(shù)語和類似術(shù)語與適當(dāng)?shù)奈锢砹肯嚓P(guān)聯(lián),并僅僅是應(yīng)用于這些物理量的方便的標(biāo)記。
出于說明的目的,提供了本發(fā)明的描述,但這并不意味著該描述是詳盡的或僅限于公開的實(shí)施例。對(duì)于本領(lǐng)域的普通技術(shù)人員來說,許多修改和變化是顯而易見的。實(shí)施例只是選取出來用于解釋本發(fā)明及其實(shí)際應(yīng)用的原理,并使本領(lǐng)域的其他普通技術(shù)人員能夠理解本發(fā)明,以便實(shí)施帶有各種修改的各種實(shí)施例,以適應(yīng)于其他預(yù)期的應(yīng)用。
權(quán)利要求
1.一種用于在數(shù)據(jù)處理系統(tǒng)內(nèi)對(duì)用戶進(jìn)行認(rèn)證的方法,該方法包括在第一個(gè)域內(nèi)的第一個(gè)信任代理上,為用戶生成認(rèn)證聲明;在第二個(gè)域內(nèi)的一系統(tǒng)中接收來自用戶操作的客戶端的訪問第二個(gè)域內(nèi)的受控制資源的請(qǐng)求;從第一個(gè)域向第二個(gè)域內(nèi)的第二個(gè)信任代理發(fā)送該認(rèn)證聲明;以及在第二個(gè)域內(nèi)的該第二個(gè)信任代理上驗(yàn)證該認(rèn)證聲明。
2.權(quán)利要求1所述的方法,還包括響應(yīng)于在第二個(gè)信任代理上對(duì)認(rèn)證聲明的成功驗(yàn)證,提供對(duì)受控制資源的訪問。
3.權(quán)利要求1所述的方法,還包括在第二個(gè)域內(nèi)的該系統(tǒng)上接收到對(duì)該受控制資源的請(qǐng)求之前,在第一個(gè)域內(nèi)確定在第一個(gè)信任代理上為用戶生成認(rèn)證聲明;以及從第一個(gè)域向第二個(gè)域推認(rèn)證聲明以及對(duì)受控制資源的請(qǐng)求。
4.權(quán)利要求1所述的方法,還包括在第二個(gè)域內(nèi)的該系統(tǒng)上接收到對(duì)該受控制資源的請(qǐng)求之后,由第二個(gè)信任代理從第一個(gè)信任代理拉認(rèn)證聲明。
5.權(quán)利要求1所述的方法,還包括在第一個(gè)信任代理和第二個(gè)信任代理之間建立信任關(guān)系。
6.權(quán)利要求1所述的方法,還包括通過信任中介維護(hù)在第一個(gè)信任代理和第二個(gè)信任代理之間的間接關(guān)系。
7.一種用于在數(shù)據(jù)處理系統(tǒng)內(nèi)對(duì)用戶進(jìn)行認(rèn)證的裝置,該裝置包括用于在第一個(gè)域內(nèi)的第一個(gè)信任代理上為用戶生成認(rèn)證聲明的裝置;用于在第二個(gè)域內(nèi)的一系統(tǒng)上接收來自用戶操作的客戶端的訪問第二個(gè)域內(nèi)的受控制資源的請(qǐng)求的裝置;用于從第一個(gè)域向第二個(gè)域內(nèi)的第二個(gè)信任代理發(fā)送認(rèn)證聲明的裝置;以及用于在第二個(gè)域內(nèi)的第二個(gè)信任代理上驗(yàn)證該認(rèn)證聲明的裝置。
8.權(quán)利要求7所述的裝置,還包括為響應(yīng)在第二個(gè)信任代理上對(duì)認(rèn)證聲明的成功驗(yàn)證,提供對(duì)受控制資源的訪問的裝置。
9.權(quán)利要求7所述的裝置,還包括用于在第二個(gè)域內(nèi)的該系統(tǒng)上接收到對(duì)受控制資源的請(qǐng)求之前,在第一個(gè)域內(nèi)確定在第一個(gè)信任代理上為用戶生成認(rèn)證聲明的裝置;以及用于從第一個(gè)域向第二個(gè)域推認(rèn)證聲明以及對(duì)受控制資源的請(qǐng)求的裝置。
10.權(quán)利要求7所述的裝置,還包括用于在第二個(gè)域內(nèi)的該系統(tǒng)上接收到對(duì)受控制資源的請(qǐng)求之后,由第二個(gè)信任代理從第一個(gè)信任代理中拉認(rèn)證聲明的裝置。
11.權(quán)利要求7所述的裝置,還包括用于在第一個(gè)信任代理和第二個(gè)信任代理之間建立信任關(guān)系的裝置。
12.權(quán)利要求7所述的裝置,還包括用于通過信任中介維護(hù)在第一個(gè)信任代理和第二個(gè)信任代理之間的間接關(guān)系的裝置。
13.一種計(jì)算機(jī)可讀媒體上的計(jì)算機(jī)程序產(chǎn)品,用于在數(shù)據(jù)處理系統(tǒng)中對(duì)用戶進(jìn)行認(rèn)證,該計(jì)算機(jī)程序產(chǎn)品包括用于在第一個(gè)域內(nèi)的第一個(gè)信任代理上為用戶生成認(rèn)證聲明的裝置;用于在第二個(gè)域內(nèi)的一系統(tǒng)上接收來自用戶操作的客戶端的訪問第二個(gè)域內(nèi)的受控制資源的請(qǐng)求的裝置;用于從第一個(gè)域向第二個(gè)域內(nèi)的第二個(gè)信任代理發(fā)送認(rèn)證聲明的裝置;以及用于在第二個(gè)域內(nèi)的第二個(gè)信任代理上驗(yàn)證該認(rèn)證聲明的裝置。
14.權(quán)利要求13所述的計(jì)算機(jī)程序產(chǎn)品,還包括用于響應(yīng)于在第二個(gè)信任代理上對(duì)認(rèn)證聲明的成功驗(yàn)證,提供對(duì)受控制資源的訪問的裝置。
15.權(quán)利要求13所述的計(jì)算機(jī)程序產(chǎn)品,還包括用于在第二個(gè)域內(nèi)的該系統(tǒng)上接收到對(duì)該受控制資源的請(qǐng)求之前,在第一個(gè)域內(nèi)確定在第一個(gè)信任代理上為用戶生成認(rèn)證聲明的裝置;以及用于從第一個(gè)域向第二個(gè)域推認(rèn)證聲明以及對(duì)受控制資源的請(qǐng)求的裝置。
16.權(quán)利要求13所述的計(jì)算機(jī)程序產(chǎn)品,還包括用于在第二個(gè)域內(nèi)的該系統(tǒng)上接收到對(duì)該受控制資源的請(qǐng)求之后,由第二個(gè)信任代理從第一個(gè)信任代理中拉認(rèn)證聲明的裝置。
17.權(quán)利要求13所述的計(jì)算機(jī)程序產(chǎn)品,還包括用于在第一個(gè)信任代理和第二個(gè)信任代理之間建立信任關(guān)系的裝置。
18.權(quán)利要求13所述的計(jì)算機(jī)程序產(chǎn)品,還包括用于通過信任中介維護(hù)在第一個(gè)信任代理和第二個(gè)信任代理之間的間接關(guān)系的裝置。
全文摘要
提供了一種方法,在該方法中,在聯(lián)合環(huán)境內(nèi)各聯(lián)合域相交互。聯(lián)合內(nèi)的域可以在其他聯(lián)合域上為用戶啟動(dòng)聯(lián)合的單次登錄操作。域內(nèi)的接觸點(diǎn)服務(wù)器依賴該域內(nèi)的信任代理來管理該域和聯(lián)合之間的信任關(guān)系。在必要時(shí)信任代理對(duì)來自其他聯(lián)合域的聲明進(jìn)行解釋。信任代理可具有與一個(gè)或多個(gè)信任中介的信任關(guān)系,并且信任代理可依靠信任中介來協(xié)助解釋聲明。
文檔編號(hào)H04L29/06GK1726690SQ200380106533
公開日2006年1月25日 申請(qǐng)日期2003年11月27日 優(yōu)先權(quán)日2002年12月31日
發(fā)明者G·R·布萊克利三世, H·M·欣頓, A·J·納達(dá)林 申請(qǐng)人:國際商業(yè)機(jī)器公司