国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種面向http身份鑒別協(xié)議的插件式單點(diǎn)登錄集成方法

      文檔序號(hào):7891535閱讀:218來源:國知局
      專利名稱:一種面向http身份鑒別協(xié)議的插件式單點(diǎn)登錄集成方法
      技術(shù)領(lǐng)域
      本發(fā)明屬于信息安全的身份鑒別與訪問控制技術(shù)領(lǐng)域,特別地,是一種面向HTTP身份鑒別協(xié)議的插件式單點(diǎn)登錄集成方法。
      背景技術(shù)
      隨著企業(yè)電子商務(wù)和辦公信息化的發(fā)展,越來越多的企業(yè)、組織機(jī)構(gòu)建立了大量的具有特別用途的信息系統(tǒng),統(tǒng)稱應(yīng)用系統(tǒng),如客戶關(guān)系管理系統(tǒng)、ERP(EnterpriseResource Planning)系統(tǒng)、財(cái)務(wù)系統(tǒng)、辦公自動(dòng)化系統(tǒng)、電子郵件系統(tǒng)等。這些眾多的應(yīng)用系統(tǒng)在給人們的生產(chǎn)、管理、辦公帶來方便,提高生產(chǎn)和工作效率的同時(shí),也給人們帶來一些困擾,這就是,每個(gè)用戶必須記住他(或者她)在不同應(yīng)用系統(tǒng)的帳戶名、口令(也稱為用戶名、口令);這些在不同應(yīng)用系統(tǒng)的帳戶名、口令可能是相同的,也可能是不同的;需要記住、使用眾多的不同的帳戶名、口令的問題有I)帳戶名、口令管理的困難,如帳戶名、口令太多容易混淆、遺忘;2)每次登錄不同系統(tǒng)時(shí)都需要輸入帳戶名、口令,給用戶帶來了不便。針對(duì)這一問題,由此產(chǎn)生了所謂的單點(diǎn)登錄(Single SignOn, SS0)需求和技術(shù),即用戶只需要使用一個(gè)身份憑證(如一個(gè)帳戶名、口令,或一張數(shù)字證書等),在某個(gè)在線系統(tǒng)完成在線身份鑒別(也即login登錄)后就能訪問所有其他能夠訪問的系統(tǒng),而無需再次輸入帳戶名、口令或使用數(shù)字證書進(jìn)行身份鑒別(即再進(jìn)行登錄操作)。目前的各類應(yīng)用系統(tǒng)大多采用客戶機(jī)/服務(wù)器(Client/Server)的模式,而其中,有的采用基于瀏覽器(Browser)、Web服務(wù)器的標(biāo)準(zhǔn)和通用技術(shù),即采用Browser/Server模式(簡(jiǎn)稱B/S模式),有的采用非標(biāo)準(zhǔn)或非通用的客戶端/服務(wù)器技術(shù)(簡(jiǎn)稱C/S模式)。B/S模式的系統(tǒng),客戶端瀏覽器與Web服務(wù)器之間通過標(biāo)準(zhǔn)的HyperText TransferProtocol (HTTP)進(jìn)行數(shù)據(jù)交互與傳送瀏覽器將HTTP格式的服務(wù)請(qǐng)求(HTTP請(qǐng)求)傳送到Web服務(wù)器,Web服務(wù)器針對(duì)請(qǐng)求進(jìn)行相應(yīng)處理,之后Web服務(wù)器將處理結(jié)果以HTTP格式的響應(yīng)(HTTP響應(yīng))返回到瀏覽器,最后瀏覽器根據(jù)返回的結(jié)果數(shù)據(jù)展現(xiàn)返回的結(jié)果內(nèi)容。HTTP請(qǐng)求由一個(gè)請(qǐng)求行(Request Line)、多個(gè)可選的頭部(Header)和一個(gè)可選的主體(Body)組成,其中從請(qǐng)求行和“Host”頭部,可以構(gòu)造出HTTP請(qǐng)求URL(UniformResourceLocator) ;HTTP響應(yīng)由一個(gè)狀態(tài)行(Status Line)、多個(gè)可選的頭部(Header)和一個(gè)可選的主體(Body)組成。由于B/S模式采用瀏覽器這種通用客戶端以及標(biāo)準(zhǔn)技術(shù)架構(gòu),易于使用和互操作,是目前信息系統(tǒng)技術(shù)發(fā)展的主流和趨勢(shì),也是本發(fā)明針對(duì)的應(yīng)用系統(tǒng)所采用的技術(shù)。采用了 B/S模式或架構(gòu)的應(yīng)用系統(tǒng)稱為Web應(yīng)用系統(tǒng)。針對(duì)B/S模式的Web應(yīng)用系統(tǒng)的單點(diǎn)登錄技術(shù)目前常見的有1)基于Cookie的;2)基于安全網(wǎng)關(guān)的;3)基于Windows Kerberos的;4)基于單點(diǎn)登錄協(xié)議的(標(biāo)準(zhǔn)或自定義協(xié)議)5)其他方案。Cookie是Web服務(wù)器通過HTTP響應(yīng)在客戶端瀏覽器中(或客戶端主機(jī)中)保存的信息,可以包含任何內(nèi)容,但通常包含用戶會(huì)話(Session)狀態(tài)信息。Cookie有作用域,其作用域由域名(Doma in Name)和路徑(Path)構(gòu)成;若HTTP請(qǐng)求的主機(jī)域名部分和路徑部分在Cookie的作用域內(nèi),則瀏覽器提交的HTTP請(qǐng)求中將包含服務(wù)器端設(shè)置的Cookie。基于Cookie的單點(diǎn)登錄,要求不同信息系統(tǒng)的域名的“基部”相同,比如,若兩個(gè)信息系統(tǒng)的域名是 oa. example, com. cn, crm. example, com. cn,這樣它們的“基部”都是 example.com. cn,因此,可以實(shí)現(xiàn)基于 Cookie 的單點(diǎn)登錄,IBM 的 LTPA (Lightweight Third PartyAuthentication)單點(diǎn)登錄技術(shù)就是基于Cookie的?;诎踩W(wǎng)關(guān)的單點(diǎn)登錄,就是采用一個(gè)實(shí)現(xiàn)安全控制功能的Web反向代理(Reverse Proxy)作為用戶訪問部署在其后面的不同信息系統(tǒng)、應(yīng)用系統(tǒng)的關(guān)卡(即網(wǎng)關(guān)),只有在安全網(wǎng)關(guān)完成身份鑒別(即進(jìn)行成功登錄)的用戶才能通過安全網(wǎng)關(guān)訪問部署在其后面的系統(tǒng),比如IBM的WebSEAL就這樣的一個(gè)安全網(wǎng)關(guān)。這種單點(diǎn)登錄技術(shù)的最大缺點(diǎn)是,當(dāng)并發(fā)用戶訪問量很大時(shí),安全網(wǎng)關(guān)是性能瓶頸,而且它是潛在的單點(diǎn)失效點(diǎn)(Single Point of Failure)?;赪indows Kerberos 的 Web 單點(diǎn)登錄技術(shù),通過 Windows ActiveDirectory,AD)的Kerberos身份鑒別(Authentication)結(jié)合HTTPNegotiate協(xié)議實(shí)現(xiàn)。這種技術(shù)方案的局限性在于1)它需要部署WindowsAD或其他Kerberos系統(tǒng);2)要求所有用戶在AD域上有帳戶且用戶主機(jī)要登錄AD域;3)要求所有的Web信息系統(tǒng)、應(yīng)用系統(tǒng)采用HTTPNegotiate協(xié)議進(jìn)行用戶身份鑒別,而且所有Web信息系統(tǒng)、應(yīng)用系統(tǒng)采用AD域的用戶帳戶對(duì)用戶 訪問進(jìn)行管理和控制;4)只適合于通過內(nèi)網(wǎng)訪問的信息系統(tǒng)、應(yīng)用系統(tǒng)。由于這些特別要求,這就限制了基于Windows Kerberos的單點(diǎn)登錄解決方案的應(yīng)用,因?yàn)?,無論從開發(fā)技術(shù)角度還是從應(yīng)用環(huán)境的角度,目前的大量Web信息系統(tǒng)、應(yīng)用系統(tǒng)都不符合這些條件(或者說,不是所有的Web信息系統(tǒng)、應(yīng)用系統(tǒng)都符合這些條件)。針對(duì)Web單點(diǎn)登錄的協(xié)議目前主要有Security AssertionMarkupLanguage (SAML)和 WS-Federation Passive Requestor Profile (簡(jiǎn)稱 WS-FPRP)。無論是SAML還是WS-FPRP,在其技術(shù)架構(gòu)中都有一個(gè)稱為Identity Provider (簡(jiǎn)稱IdP)的系統(tǒng)提供在線身份鑒別服務(wù)(稱為身份服務(wù)系統(tǒng)),用戶只需(使用瀏覽器)在IdP完成一次登錄(即在線身份鑒別),就能訪問該IdP信任域中的其他Web信息系統(tǒng)而無需再進(jìn)行登錄(身份鑒別)操作。但是,這種單點(diǎn)登錄技術(shù)方案要獲得成功應(yīng)用,有兩個(gè)關(guān)鍵問題需要解決一是如何解決用戶在不同系統(tǒng)中的帳戶之間的對(duì)應(yīng)、轉(zhuǎn)化,二是如何使得已有的各類信息系統(tǒng)、應(yīng)用系統(tǒng)與單點(diǎn)登錄協(xié)議集成。所述第一個(gè)問題的更具體描述如下涉及單點(diǎn)登錄的各種信息系統(tǒng)、應(yīng)用系統(tǒng)通常都有各自的用戶帳戶管理組件和帳戶數(shù)據(jù)庫,且這些信息系統(tǒng)、應(yīng)用系統(tǒng)是基自身的用戶帳戶來對(duì)用戶進(jìn)行訪問控制的,這樣,用戶在IdP進(jìn)行登錄、身份鑒別時(shí)所使用的用戶帳戶與其在某個(gè)要訪問的信息系統(tǒng)、應(yīng)用系統(tǒng)中的帳戶可能是不相同的(當(dāng)然也可能相同),因此,當(dāng)用戶在IdP完成身份鑒別后、訪問某個(gè)應(yīng)用系統(tǒng)時(shí),需要進(jìn)行相應(yīng)的帳戶對(duì)應(yīng)、轉(zhuǎn)化,用戶才能以其在該應(yīng)用系統(tǒng)中的帳戶(身份)登錄、訪問該應(yīng)用系統(tǒng)。對(duì)于前面所述的第一個(gè)問題的常用解決方案是用戶使用一個(gè)主帳戶在IdP登錄,這個(gè)主帳戶可以是用戶已有的某個(gè)應(yīng)用系統(tǒng)帳戶,或者是某個(gè)已有的全局帳戶(如Windows Active Directory中的帳戶),或者是某個(gè)專門新創(chuàng)建的全局帳戶;用戶的主帳戶事先通過一定的方式同用戶在不同信息系統(tǒng)、應(yīng)用系統(tǒng)的帳戶(稱為從帳戶)關(guān)聯(lián)起來,這個(gè)過程稱為身份(帳戶)關(guān)聯(lián)(Identity Federation或Account Federation)或身份(帳戶)綁定(Identity Binding或Account Binding);當(dāng)用戶使用其主帳戶在IdP完成登錄(身份鑒別)后、訪問某個(gè)特定應(yīng)用系統(tǒng)時(shí),其主帳戶通過一定的方式被對(duì)應(yīng)、轉(zhuǎn)化成該用戶在該應(yīng)用系統(tǒng)的從帳戶,然后用戶基于該從帳戶訪問應(yīng)用系統(tǒng),這個(gè)主、從帳戶對(duì)應(yīng)、轉(zhuǎn)化的過程稱為身份(帳戶)映射(Identity Mapping或Account Mapping)。
      所述第二問題實(shí)際上涉及到單點(diǎn)登錄的集成技術(shù),它是目前單點(diǎn)登錄應(yīng)用中最復(fù)雜、最難解決的問題,對(duì)這個(gè)問題的解決通常有這么幾種方案(I)應(yīng)用系統(tǒng)的運(yùn)行平臺(tái)本身支持相關(guān)的單點(diǎn)登錄協(xié)議(如OracleWebLogic Server的最新版本支持SAML協(xié)議),因此,如果應(yīng)用系統(tǒng)依賴于運(yùn)行平臺(tái)來進(jìn)行登錄操作(用戶身份鑒別),那么,通過配置運(yùn)行平臺(tái)的用戶身份鑒別方式,就能通過協(xié)議互聯(lián)實(shí)現(xiàn)單點(diǎn)登錄;(2)通過修改應(yīng)用系統(tǒng)的用戶登錄部分的功能實(shí)現(xiàn),這可能包括修改身份鑒別的相關(guān)配置,修改相應(yīng)的用戶登錄模塊等;(3)通過運(yùn)行平臺(tái)提供的身份鑒別擴(kuò)展機(jī)制,如JAAS (Java Authentication andAuthorization Service)。前面所述的第一種集成解決方案不是在任何情況下都能適用的,因?yàn)槟壳按蠖鄶?shù)的Web運(yùn)行平臺(tái)(Web服務(wù)組件、服務(wù)器)并不支持相應(yīng)的單點(diǎn)登錄協(xié)議。對(duì)于第二種解決方案,在很多情況下也不適用,因?yàn)?,企業(yè)、組織機(jī)構(gòu)可能由于各種原因,不愿意或者不能夠采用第二種集成解決方案,比如,由于擔(dān)心修改系統(tǒng)后會(huì)對(duì)系統(tǒng)的穩(wěn)定運(yùn)行帶來影響,或者,系統(tǒng)的源代碼已不存在(如原系統(tǒng)開發(fā)商不愿意配合提供相關(guān)的代碼,或已倒閉等)。前面所述的第三種方案也不是所有情況都合適,一是因?yàn)檫@種方案通常只適用于應(yīng)用系統(tǒng)依賴于Web運(yùn)行平臺(tái)(Web服務(wù)組件、Web服務(wù)器)進(jìn)行身份鑒別的情形(如由ServletContainer對(duì)用戶進(jìn)行身份鑒別),不適用于應(yīng)用系統(tǒng)自身進(jìn)行用戶身份鑒別的情形;二是采用這種機(jī)制實(shí)現(xiàn)單點(diǎn)登錄,通常需要改變平臺(tái)以前的身份鑒別方式,而有時(shí)企業(yè)、組織機(jī)構(gòu)由于各種原因不愿意做這種改變(如因?yàn)閾?dān)心這種改變會(huì)影響系統(tǒng)的運(yùn)行或者不安全);三是不是所有Web運(yùn)行平臺(tái)都提供了身份鑒別的擴(kuò)展機(jī)制,或者說理論上提供了這種擴(kuò)展機(jī)制,但實(shí)際上由于技術(shù)上的限制,擴(kuò)展的身份鑒別機(jī)制難以達(dá)到與之前的身份鑒別機(jī)制同樣的功效,比如對(duì)于微軟IIS(Internet Information Services)Web服務(wù)器,其技術(shù)文檔指出可通過 ISAPI (Internet ServiceApplication Programming Interface)擴(kuò)展IIS的身份鑒別功能,但實(shí)際上這種擴(kuò)展是受限的,比如只能在IIS配置為匿名身份鑒別(AnonymousAuthentication)方式下才能擴(kuò)展定制的身份鑒別機(jī)制,而且由于微軟沒有公開IIS的內(nèi)部技術(shù),很難基于ISAPI擴(kuò)展機(jī)制開發(fā)出與IIS自身的身份鑒別機(jī)制同等功效的單點(diǎn)登錄身份鑒別機(jī)制。對(duì)于其他Web運(yùn)行平臺(tái)也都可能會(huì)遇到類似的問題。在單點(diǎn)登錄的實(shí)際應(yīng)用集成中,Web應(yīng)用系統(tǒng)依賴于Web平臺(tái)采用標(biāo)準(zhǔn)HTTP身份鑒別協(xié)議(如HTTP Basic。Digest, NTLM, Negotiate)進(jìn)行用戶身份鑒別,且Web應(yīng)用系統(tǒng)的身份鑒別方式不能改變是一種經(jīng)常遇到的情形,針對(duì)這情形,本發(fā)明提出另一種思路來解決已有Web應(yīng)用系統(tǒng)與單點(diǎn)登錄技術(shù)的集成問題在不改變系統(tǒng)原有的身份鑒別機(jī)制、配置及功能的前提下,通過HTTP插件(Plug-in)技術(shù)來實(shí)現(xiàn)單點(diǎn)登錄。也就是說,在這種單點(diǎn)登錄集成方案下,Web運(yùn)行平臺(tái)的身份鑒別機(jī)制仍然按其原有的方式運(yùn)行和發(fā)揮作用。這里所述的HTTP插件,是指基于Web運(yùn)行平臺(tái)提供的擴(kuò)展機(jī)制插入到Web運(yùn)行平臺(tái)的HTTP請(qǐng)求、響應(yīng)處理通道中的一個(gè)軟件組件,該組件能對(duì)通過它的HTTP請(qǐng)求、響應(yīng)的相關(guān)內(nèi)容進(jìn)行修改。很多的Web運(yùn)行平臺(tái)都提供了這種HTTP插件機(jī)制,如微軟的IIS服務(wù)器的ISAPI, IIS7. O 以 后的 Native-Code API 和 Managed-CodeAPI, Tomcat Valve、WebLogic 的Authentication Filter, WebSphere 的 Servlet Filter 等。

      發(fā)明內(nèi)容
      本發(fā)明的目的是針對(duì)Web應(yīng)用系統(tǒng)基于標(biāo)準(zhǔn)HTTP身份鑒別協(xié)議對(duì)用戶進(jìn)行身份鑒別且這種身份鑒別安全配置不能修改、改變的情形,提出一種面向HTTP身份鑒別協(xié)議的插件式單點(diǎn)登錄集成方法,以克服現(xiàn)有單點(diǎn)登錄集成技術(shù)的不足。為了實(shí)現(xiàn)上述目的,本發(fā)明所采用的技術(shù)方案是一種面向HTTP身份鑒別協(xié)議的插件式單點(diǎn)登錄集成方法,所述方法的單點(diǎn)登錄系統(tǒng)包括Web服務(wù)組件、Web應(yīng)用組件、單點(diǎn)登錄HTTP插件、安全令牌處理頁面、瀏覽器、身份服務(wù)系統(tǒng)、主帳戶數(shù)據(jù)庫、主從帳戶綁定數(shù)據(jù)庫,其中Web服務(wù)組件為Web應(yīng)用組件提供HTTP請(qǐng)求接收、響應(yīng)傳送功能,及其他相關(guān)的支撐功能,包括接收用戶瀏覽器提交的HTTP格式的服務(wù)請(qǐng)求,進(jìn)行相應(yīng)預(yù)處理后提交給Web應(yīng)用組件進(jìn)行處理,之后,將Web應(yīng)用組件返回的處理結(jié)果,以HTTP響應(yīng)的格式傳送到用戶瀏覽器;基于相應(yīng)的安全配置,對(duì)用戶進(jìn)行身份鑒別、訪問控制;維護(hù)用戶的HTTP會(huì)話(Session)等;Web應(yīng)用組件向用戶提供特定應(yīng)用服務(wù)的功能軟件,如0A、CRM、WebMail等,其主要功能是通過相應(yīng)的Web服務(wù)組件,接收用戶通過瀏覽器提交的應(yīng)用服務(wù)請(qǐng)求,完成相應(yīng)處理后將處理結(jié)果通過Web服務(wù)組件返回到用戶瀏覽器;所述Web應(yīng)用組件和對(duì)應(yīng)的所述Web服務(wù)組件構(gòu)成了 Web應(yīng)用系統(tǒng);單點(diǎn)登錄HTTP插件基于Web服務(wù)組件提供的擴(kuò)展機(jī)制,插入到采用HTTP身份鑒別協(xié)議的Web應(yīng)用系統(tǒng)的Web服務(wù)組件的HTTP請(qǐng)求、響應(yīng)處理通道中實(shí)現(xiàn)單點(diǎn)登錄功能的軟件組件;安全令牌處理頁面在采用HTTP身份鑒別協(xié)議的Web應(yīng)用系統(tǒng)的Web服務(wù)組件上部署的專門處理身份服務(wù)系統(tǒng)簽發(fā)的證明用戶身份的安全令牌的Web頁面;所述安全令牌處理頁面部署在Web服務(wù)組的非安全保護(hù)路徑(目錄),即通過瀏覽器提交HTTP請(qǐng)求到該處理頁面的用戶無需完成身份鑒別;瀏覽器用戶與Web應(yīng)用系統(tǒng)交互的客戶端,其主要功能是通過HTTP協(xié)議向Web服務(wù)組件傳送HTTP請(qǐng)求,接收Web服務(wù)組件返回的HTTP響應(yīng)并展現(xiàn)響應(yīng)的內(nèi)容;身份服務(wù)系統(tǒng)提供用戶在線身份鑒別服務(wù)的系統(tǒng),其功能包括基于用戶身份憑證對(duì)用戶進(jìn)行在線身份鑒別,通過相應(yīng)的單點(diǎn)登錄協(xié)議并借助瀏覽器向Web應(yīng)用系統(tǒng)傳送證明用戶身份的安全令牌;主帳戶數(shù)據(jù)庫存放用戶登錄身份服務(wù)系統(tǒng)的主帳戶信息,包括主帳戶的帳戶名、口令,或主帳戶對(duì)應(yīng)的數(shù)據(jù)證書的相關(guān)信息;主從帳戶綁定數(shù)據(jù)庫保存用戶主帳戶與用戶在Web應(yīng)用系統(tǒng)的從帳戶的對(duì)應(yīng)(綁定)關(guān)系,以及從帳戶的口令。所述Web服務(wù)組件可以是HTTP Web服務(wù)器(如IIS)、Web容器(WebContainerjBTomcat)、J2EE 應(yīng)用服務(wù)器(Application Server,如 WebLogic、WebSphere);所述 Web 應(yīng)用系統(tǒng)通過一定的方式對(duì)用戶進(jìn)行身份鑒別,其中部分Web應(yīng)用系統(tǒng)通過Web服務(wù)組件采用標(biāo)準(zhǔn)HTTP身份鑒別協(xié)議(如HTTP Basic、HTTP Negotiate)對(duì)用戶進(jìn)行身份鑒別;用戶訪問某個(gè)Web應(yīng)用系統(tǒng)的受保護(hù)的頁面或資源,需要使用其在該Web應(yīng)用系統(tǒng)中的相應(yīng)帳戶完成身份鑒別后才能進(jìn)行;所述Web應(yīng)用系統(tǒng)可以有多個(gè)。所述單點(diǎn)登錄HTTP插件采用的插件機(jī)制能夠攔截HTTP身份鑒別協(xié)議的請(qǐng)求、響應(yīng)數(shù)據(jù)(即攜帶Authorization頭部的HTTP請(qǐng)求和攜帶WffW-Authentication頭部的HTTP響應(yīng));所述單點(diǎn)登錄HTTP插件在其所部署的Web服務(wù)組件上被配置為攔截所有的HTTP請(qǐng)求、響應(yīng),或者被配置為攔截所有提交到受安全保護(hù)的目錄或路徑的HTTP請(qǐng)求及其響應(yīng)和提交到安全令牌處理頁面所在目錄或路徑的HTTP請(qǐng)求及其響應(yīng)。
      所述單點(diǎn)登錄HTTP插件有相應(yīng)的配置信息,用于設(shè)置與單點(diǎn)登錄有關(guān)的信息,如身份服務(wù)系統(tǒng)的用戶登錄地址(URL)、對(duì)安全令牌簽名的數(shù)字證書等;可選地,配置信息中包含如下內(nèi)容1)單點(diǎn)登錄HTTP插件所在的Web應(yīng)用系統(tǒng)中哪些Web頁面目錄或路徑是受安全保護(hù)的;2)受安全保護(hù)的目錄或路徑所采用的HTTP身份鑒別協(xié)議是哪個(gè)或哪些(即可以設(shè)置多個(gè)),及相關(guān)的身份鑒別協(xié)議參數(shù)(如domairurealm等);3)所使用的HTTP身份鑒別的具體實(shí)施是否允許客戶端主動(dòng)發(fā)出鑒別和授權(quán)請(qǐng)求。所述配置信息3)是針對(duì)這樣的情形有的HTTP身份鑒別協(xié)議(如HTTP Negotiate)允許客戶端瀏覽器在初次訪問受保護(hù)的資源時(shí)候,在Web服務(wù)器端返回要求身份鑒別的響應(yīng)提示前,也即在客戶端瀏覽器接收到響應(yīng)狀態(tài)碼是“401 ”(提不Unauthorized或Authentication required)且包含Wffff-Authenticate頭部的HTTP響應(yīng)之前,由客戶端瀏覽器主動(dòng)發(fā)起身份鑒別過程,即主動(dòng)提交包含Authorization頭部的HTTP請(qǐng)求,請(qǐng)求服務(wù)器端對(duì)客戶端用戶進(jìn)行身份鑒別和對(duì)資源訪問進(jìn)行授權(quán);但是,某個(gè)Web組件的具體協(xié)議實(shí)施也許并不支持這種客戶端主動(dòng)發(fā)起身份鑒別的方式,該配置信息即用于對(duì)此進(jìn)行指示。所述內(nèi)容1)、2)通??赏ㄟ^一定的方式,如API、配置文件讀取,從Web服務(wù)組件獲得,但在無法獲得請(qǐng)求下,可通過單點(diǎn)登錄HTTP插件的配置信息設(shè)置并獲得。所述身份服務(wù)系統(tǒng)簽發(fā)的所述安全令牌的格式依賴于使用的單點(diǎn)登錄協(xié)議,可以是 SAML 斷言(Assertion),或者 WS-Federation 安全令牌(Security Token),或者自定義的安全令牌;所述身份服務(wù)系統(tǒng)通過數(shù)字簽名保證所簽發(fā)的安全令牌的安全性(原發(fā)性、完整性)。用戶在所述身份服務(wù)系統(tǒng)進(jìn)行在線身份鑒別時(shí)所用的身份憑證,可以是普通帳戶名、口令,也可以是數(shù)字證書,或者其他能夠標(biāo)識(shí)、驗(yàn)證用戶身份的其他電子身份數(shù)據(jù)。用戶在所述身份服務(wù)系統(tǒng)進(jìn)行身份鑒別時(shí)使用的帳戶稱為主帳戶。所述主帳戶數(shù)據(jù)庫是用于保存用戶主帳戶及相關(guān)信息的數(shù)據(jù)庫,所述主帳戶數(shù)據(jù)庫可以是獨(dú)立的帳戶數(shù)據(jù)庫,也可以選擇某個(gè)應(yīng)用系統(tǒng)的用戶帳戶數(shù)據(jù)庫作為主帳戶數(shù)據(jù)庫。所述從帳戶即指用戶在某個(gè)特定Web應(yīng)用系統(tǒng)的帳戶;用戶的主帳戶與其在某個(gè)Web應(yīng)用系統(tǒng)中的從帳戶可以是同一個(gè),也可以不同。所述單點(diǎn)登錄HTTP插件保存有每個(gè)用戶的登錄(身份鑒別)相關(guān)信息,稱為用戶登錄信息。所述用戶登錄信息包括I)身份鑒別協(xié)議,即Web服務(wù)組件當(dāng)前使用的、用于對(duì)用戶進(jìn)行身份鑒別的HTTP身份鑒別協(xié)議;2)服務(wù)器端返回協(xié)議數(shù)據(jù)與參數(shù),即Web服務(wù)組件使用HTTP身份鑒別協(xié)議對(duì)客戶端用戶進(jìn)行身份鑒別時(shí),通過WffW-Authentucate響應(yīng)頭部返回到客戶端瀏覽器的協(xié)議相關(guān)數(shù)據(jù)和參數(shù),如HTTP身份鑒別協(xié)議指示及RealmXhallenge (挑戰(zhàn)碼)、密鑰協(xié)商參數(shù)等,其中HTTP身份鑒別協(xié)議指示在“身份鑒別協(xié)議”中也同時(shí)保存;3)最近一次要訪問的受保護(hù)的URL,即用戶在Web應(yīng)用系統(tǒng)完成身份鑒別前,使用瀏覽器最近一次期望訪問的受安全保護(hù)的Web頁面的URL ;4)最近一次POST參數(shù),用戶在Web應(yīng)用系統(tǒng)完成身份鑒別前,若使用瀏覽器最近一次訪問受安全保護(hù)的Web頁面時(shí)使用的HTTP請(qǐng)求方法(Method)是POST,則“最近一次POST參數(shù)”的值是該HTTP請(qǐng)求對(duì)應(yīng)的POST參數(shù)(即POST方式提交的Form表單數(shù)據(jù)),否則其值是空(NULL); 5)用戶身份信息,標(biāo)識(shí)和鑒別用戶的信息,包括用戶的主帳戶名、從帳戶名及從帳戶口令;以上所述各種用戶登錄信息以字符串的形式保存(對(duì)于非字符數(shù)據(jù),以Base64編碼的格式保存);所述“用戶身份信息”被加密且具有時(shí)效性,以防止泄露和重播攻擊;所述“身份鑒別協(xié)議”、“最近一次要訪問的受保護(hù)的URL”、“最近一次POST參數(shù)”和“用戶身份信息”保存在Cookie中,且該Cookie的作用路徑需要同時(shí)包含Web服務(wù)組件設(shè)置的受安全保護(hù)的路徑和安全令牌處理頁面所在非受安全保護(hù)的路徑,即無論在受安全保護(hù)的路徑中的Web頁面還是非受安全保護(hù)的安全令牌處理頁面都能查看得到該Cookie,或者,將有關(guān)的用戶登錄信息同時(shí)保存在兩個(gè)不同的Cookie中,其中一個(gè)的作用路徑是受安全保護(hù)的路徑,另一是非受安全保護(hù)的安全令牌處理頁面所在路徑。單點(diǎn)登錄HTTP插件根據(jù)Web服務(wù)組件提供給HTTP插件的數(shù)據(jù)存儲(chǔ)機(jī)制的不同,依如下優(yōu)先順序,分別按如下方法對(duì)用戶登錄信息中的相關(guān)信息進(jìn)行存儲(chǔ)I)若Web服務(wù)組件向HTTP插件提供了基于TCP連接(Connection)的數(shù)據(jù)存儲(chǔ)位置,則單點(diǎn)登錄HTTP插件將“服務(wù)器端返回協(xié)議數(shù)據(jù)與參數(shù)”保存在基于TCP連接的數(shù)據(jù)存儲(chǔ)位置,將其他信息通過Cookie保存在客戶端瀏覽器中;或者,2)若Web服務(wù)組向HTTP插件提供了基于HTTP會(huì)話(Session)的數(shù)據(jù)存儲(chǔ)位置,則單點(diǎn)登錄HTTP插件將“服務(wù)器端返回協(xié)議數(shù)據(jù)與參數(shù)”保存在基于HTTP會(huì)話的數(shù)據(jù)存儲(chǔ)位置,將其他信息通過Cookie保存在客戶端瀏覽器中;或者,3)若單點(diǎn)登錄HTTP插件有定制開發(fā)的基于TCP連接或HTTP會(huì)話的數(shù)據(jù)存儲(chǔ)位置,則單點(diǎn)登錄HTTP插件將“服務(wù)器端返回協(xié)議數(shù)據(jù)與參數(shù)”保存在定制開發(fā)的基于TCP連接或HTTP會(huì)話的數(shù)據(jù)存儲(chǔ)位置,將其他信息通過Cookie保存在客戶端瀏覽器中;否則,4)單點(diǎn)登錄HTTP插件將所有用戶登錄信息通過Cookie保存在客戶端瀏覽器中。所述基于TCP連接的數(shù)據(jù)存儲(chǔ)位置,指Web服務(wù)組件向HTTP插件提供的數(shù)據(jù)存儲(chǔ)位置與HTTP數(shù)據(jù)傳輸?shù)腡CP連接相關(guān)聯(lián),TCP連接不同,則提供的數(shù)據(jù)存儲(chǔ)位置不同(如IIS向ISAPI Filter提供的基于TCP連接的數(shù)據(jù)存儲(chǔ)位置);所述基于HTTP會(huì)話的數(shù)據(jù)存儲(chǔ)位置指只要是同一 HTTP會(huì)話,即便TCP連接不同,數(shù)據(jù)存儲(chǔ)位置仍然相同,即數(shù)據(jù)存儲(chǔ)位置與TCP連接無關(guān),僅與特定的HTTP用戶會(huì)話有關(guān),這種HTTP會(huì)話數(shù)據(jù)存儲(chǔ)機(jī)制通常用Cookie中存放的特定標(biāo)識(shí)來區(qū)分不同的會(huì)話,并將會(huì)話數(shù)據(jù)保存在Web服務(wù)器(組件)中,如Java Web容器向Servlet Filter提供的存放數(shù)據(jù)的Session對(duì)象就是這種情況。
      針對(duì)所述“服務(wù)器端返回協(xié)議數(shù)據(jù)與參數(shù)”,在單點(diǎn)登錄HTTP插件的配置信息中必須設(shè)定如下內(nèi)容對(duì)于Web應(yīng)用系統(tǒng)使用的每一個(gè)HTTP身份鑒別協(xié)議,在用戶身份鑒別成功后,“服務(wù)器端返回協(xié)議數(shù)據(jù)與參數(shù)”的值的相應(yīng)設(shè)置方式,設(shè)置方式的選項(xiàng)是保持不變,設(shè)置為空(NULL),或設(shè)置為一個(gè)空格(Space)。當(dāng)用戶使用瀏覽器訪問某個(gè)使用HTTP身份鑒別協(xié)議對(duì)用戶進(jìn)行身份鑒別的Web應(yīng)用系統(tǒng)時(shí),所述單點(diǎn)登錄HTTP插件攔截HTTP請(qǐng)求,然后按如下方式對(duì)HTTP請(qǐng)求進(jìn)行處理 Al.根據(jù)相關(guān)配置信息,確定當(dāng)前HTTP請(qǐng)求URL對(duì)應(yīng)的是受安全保護(hù)的頁面還是非受安全保護(hù)的頁面,若是受安全保護(hù)的,則轉(zhuǎn)入下一步驟;否則,讓該HTTP請(qǐng)求通過,完成本次HTTP請(qǐng)求處理;A2.檢查“服務(wù)器端返回協(xié)議數(shù)據(jù)與參數(shù)”,若其沒有設(shè)置或其值為空,則轉(zhuǎn)入下一步驟;否則,轉(zhuǎn)入步驟A6;A3.檢查“用戶身份信息”,若其存在且有效,則轉(zhuǎn)入下一步驟;否則,讓HTTP請(qǐng)求通過,完成本次HTTP請(qǐng)求處理;A4.從Cookie中保存的“身份鑒別協(xié)議”信息中得到Web應(yīng)用系統(tǒng)當(dāng)前使用的HTTP身份鑒別協(xié)議,然后,根據(jù)相關(guān)配置信息確定所采用的HTTP身份鑒別協(xié)議是否允許客戶端主動(dòng)發(fā)出鑒別和授權(quán)請(qǐng)求,若不允許,則讓HTTP請(qǐng)求通過,完成本次HTTP請(qǐng)求處理;否貝IJ,繼續(xù);A5.從相關(guān)配置信息中獲得HTTP身份鑒別協(xié)議所需的數(shù)據(jù)與參數(shù)(如realm參數(shù)),依HTTP身份鑒別協(xié)議,生成客戶端初次提交的包含身份鑒別數(shù)據(jù)的Author i zat ion請(qǐng)求頭部,并將生成的頭部加入到攔截的HTTP請(qǐng)求中,然后,讓修改后的HTTP請(qǐng)求通過,完成本次HTTP請(qǐng)求處理;A6.若“服務(wù)器端返回協(xié)議數(shù)據(jù)與參數(shù)”的值為一個(gè)空格,則讓該HTTP請(qǐng)求通過,完成本次HTTP請(qǐng)求處理;否則,繼續(xù);A7.根據(jù)“服務(wù)器端返回協(xié)議數(shù)據(jù)與參數(shù)”中的HTTP身份鑒別協(xié)議及其他數(shù)據(jù),生成HTTP身份鑒別協(xié)議在當(dāng)前協(xié)議階段的Authorization請(qǐng)求頭部,并將生成的頭部加入到攔截的HTTP請(qǐng)求中,然后,讓修改后的HTTP請(qǐng)求通過,完成本次HTTP請(qǐng)求處理。所述步驟A1、A4、A5中所述相關(guān)配置信息指Web服務(wù)組件和/或單點(diǎn)登錄HTTP插件的與安全訪問控制、身份鑒別、單點(diǎn)登錄有關(guān)的配置信息;所述單點(diǎn)登錄HTTP插件或者通過Web服務(wù)組件提供的相應(yīng)接口查詢Web服務(wù)組件的相關(guān)配置信息,或者直接讀取相關(guān)配置文件。所述HTTP身份鑒別協(xié)議的身份鑒別過程可能需要客戶端與服務(wù)器端通過HTTP請(qǐng)求、響應(yīng)進(jìn)行多個(gè)步驟或階段的交互,而所述步驟A7中所述的HTTP身份鑒別協(xié)議的“當(dāng)前協(xié)議階段”是指客戶端根據(jù)身份鑒別協(xié)議當(dāng)前所處的步驟或階段;HTTP身份鑒別協(xié)議的“當(dāng)前協(xié)議階段”決定了 HTTP請(qǐng)求的當(dāng)前Authorization頭部的數(shù)據(jù)內(nèi)容是什么;客戶端可根據(jù)服務(wù)器端返回的協(xié)議數(shù)據(jù)與參數(shù),確定當(dāng)前所處的步驟或階段。所述單點(diǎn)登錄HTTP插件在HTTP請(qǐng)求處理階段的所述步驟A5、A7,根據(jù)HTTP身份鑒別協(xié)議的不同,分別按如下方式,產(chǎn)生HTTP身份鑒別協(xié)議在對(duì)應(yīng)協(xié)議階段的相應(yīng)Authorization 請(qǐng)求頭部
      情形I. I.若H TTP身份鑒別協(xié)議是HTTP Basic,則從Cookie中解密“用戶身份信息”數(shù)據(jù)、獲取用戶在Web應(yīng)用系統(tǒng)中的從帳戶名、口令,然后按HTTP Bas i c協(xié)議的要求,形成Authorization頭部;否則,情形I. 2.若HTTP身份鑒別協(xié)議是HTTP Digest,則從Cookie中解密“用戶身份信息”數(shù)據(jù)、獲取用戶在Web應(yīng)用系統(tǒng)中的從帳戶名、口令,然后根據(jù)“服務(wù)器端返回協(xié)議數(shù)據(jù)與參數(shù)”中的內(nèi)容,以及HTTP Digest協(xié)議的要求,形成Authorization頭部;否則,情形I. 3.若HTTP身份鑒別協(xié)議是HTTP NTLM,且“服務(wù)器端返回協(xié)議數(shù)據(jù)與參數(shù)”為未設(shè)置或者其值為空或者其值為進(jìn)行身份鑒別的初次提示,則產(chǎn)生NTLM Type I數(shù)據(jù),然后按HTTP NTLM協(xié)議要求,形成Authorization頭部的數(shù)據(jù);否則,先從Cookie中解密“用戶身份信息”數(shù)據(jù)、獲取用戶在Web應(yīng)用系統(tǒng)中的從帳戶名、口令,然后,利用該從帳戶名、口令以及保存在“服務(wù)器端返回協(xié)議數(shù)據(jù)與參數(shù)”中的相關(guān)數(shù)據(jù)(即NTLM Type 2數(shù)據(jù)),產(chǎn)生NTLM Type 3數(shù)據(jù),然后按HTTP NTLM協(xié)議要求,形成Authorization頭部;否則,情形I. 4.若HTTP身份鑒別協(xié)議是HTTP Negotiate,則先從Cookie中解密“用戶身份信息”數(shù)據(jù)、獲取用戶在Web應(yīng)用系統(tǒng)中的從帳戶名、口令(即在Kerberos系統(tǒng)中,如Windows AD中,的帳戶名、口令),然后利用該從帳戶名、口令調(diào)用相應(yīng)的Kerberos接口,連接 Kerberos KDC (Key Distribution Center)的 Authentication Server (身份鑒別服務(wù)器),獲得用戶的TGT (Ticket-Granting Ticket),然后再使用該TGT調(diào)用GSS-API或相當(dāng)?shù)慕涌?如Windows SSPI),獲得用戶訪問Web應(yīng)用系統(tǒng)的Spnego Token,然后,利用獲得的 Spnego Token,按 HTTP Negotiate 協(xié)議要求,形成 Authorization 頭部;否則,情形I. 5 :若是其他有效的HTTP身份鑒別協(xié)議,則按相關(guān)協(xié)議進(jìn)行處理;否則,將用戶瀏覽器引導(dǎo)到出錯(cuò)頁面。所述單點(diǎn)登錄HTTP插件在HTTP請(qǐng)求處理階段完成所述步驟A2-7的相關(guān)處理后,讓HTTP請(qǐng)求通過前,需做如下處理操作若當(dāng)前HTTP請(qǐng)求的URL與“最近一次要訪問的受保護(hù)的URL”中保存的URL相同且當(dāng)前HTTP請(qǐng)求的方法是GET且“最近一次POST參數(shù)”的值非空,則將當(dāng)前HTTP請(qǐng)求的方法改為P0ST,將“最近一次POST參數(shù)”中的數(shù)據(jù)作為POST參數(shù)添加到當(dāng)前HTTP請(qǐng)求中。當(dāng)所述單點(diǎn)登錄HTTP插件攔截HTTP響應(yīng)后,按如下方式對(duì)HTTP響應(yīng)進(jìn)行處理BI.檢查HTTP響應(yīng)的響應(yīng)狀態(tài)及頭部,如果響應(yīng)狀態(tài)碼是“401”(提示Unauthorized 或 Authentication required)且包含 WffW-Authenticate 響應(yīng)頭部,則轉(zhuǎn)入下一步驟;否則,轉(zhuǎn)入B7;B2.檢查“用戶身份信息”,若其存在且有效,則轉(zhuǎn)入一下步;否則,轉(zhuǎn)入B6 ;B3.檢查當(dāng)前HTTP響應(yīng)的WffW-Authenti cate頭部的值,若是進(jìn)行身份鑒別的初始提示且響應(yīng)對(duì)應(yīng)的HTTP請(qǐng)求包含有Authorization頭部且該Authorization頭部的值是所述WffW-Authenticate頭部中指示的HTTP身份鑒別協(xié)議對(duì)應(yīng)的身份憑證數(shù)據(jù)或者經(jīng)身份憑證數(shù)據(jù)密碼運(yùn)算后的數(shù)據(jù),則轉(zhuǎn)入下一步驟;否則,轉(zhuǎn)入步驟B5 ;B4.將“用戶身份信息”設(shè)置為空,將“服務(wù)器端返回協(xié)議數(shù)據(jù)與參數(shù)”的值設(shè)置為HTTP響應(yīng)的WffW-Authenticate頭部的值,獲取當(dāng)前HTTP響應(yīng)對(duì)應(yīng)的HTTP請(qǐng)求URL,將其作為“最近一次要訪問的受保護(hù)的URL”的值保存;若當(dāng)前HTTP響應(yīng)對(duì)應(yīng)的HTTP請(qǐng)求的方法是P0ST,則將該請(qǐng)求對(duì)應(yīng)的POST參數(shù)(即Form表單數(shù)據(jù))保存到“最近一次POST參數(shù)”中,否則將“最近一次POST參數(shù)”的值設(shè)置為空;然后,將HTTP響應(yīng)的響應(yīng)狀態(tài)碼修改為“302”,將WffW-Authenticate響應(yīng)頭部去掉,將可能包含的HTTP響應(yīng)主體(Body)及響應(yīng)主體長(zhǎng)度指示去掉,在響應(yīng)中加入Location頭部,將其值設(shè)置為身份服務(wù)系統(tǒng)的用戶代登錄出錯(cuò)頁面URL,該URL通過Query String附加了單點(diǎn)登錄HTTP插件所在的Web應(yīng)用系統(tǒng)的系統(tǒng)標(biāo)識(shí),最后,讓修改后的HTTP響應(yīng)通過,完成本次HTTP響應(yīng)的處理;B5.將“服務(wù)器端返回協(xié)議數(shù)據(jù)與參數(shù)”的值設(shè)置為HTTP響應(yīng)的Wffff-Authenticate頭部的值,獲取當(dāng)前HTTP響應(yīng)對(duì)應(yīng)的HTTP請(qǐng)求URL并將其作為“最近一次要訪問的受保護(hù)的URL”的值保存;若當(dāng)前HTTP響應(yīng)對(duì)應(yīng)的HTTP請(qǐng)求的方法是POST,則將該請(qǐng)求對(duì)應(yīng)的POST參數(shù)保存到“最近一次POST參數(shù)”中,否則將“最近一次POST參數(shù)”的值設(shè)置為空;然后,將HTTP響應(yīng)的響應(yīng)狀態(tài)碼修改為“302”,將WffW-Authenticate響應(yīng)頭部去掉,將可能包含的HTTP響應(yīng)主體(Body)及響應(yīng)主體長(zhǎng)度指示去掉,在響應(yīng)頭部中加入Location頭部,將其值設(shè)置為當(dāng)前HTTP響應(yīng)對(duì)應(yīng)的HTTP請(qǐng)求URL,然后,讓修改后的HTTP響應(yīng)通過,完成本次HTTP響應(yīng)的處理;B6.將WffW-Authenticate頭部中指示的HTTP身份鑒別協(xié)議保存到所述用戶登錄信息的所述“身份鑒別協(xié)議”中,將“用戶身份信息”設(shè)置為空,將“服務(wù)器端返回協(xié)議數(shù)據(jù)與參數(shù)”的值設(shè)置為HTTP響應(yīng)的WffW-Authenticate頭部的值,獲取當(dāng)前HTTP響應(yīng)對(duì)應(yīng)的HTTP請(qǐng)求URL,將其作為“最近一次要訪問的受保護(hù)的URL”的值保存;若當(dāng)前HTTP響應(yīng)對(duì)應(yīng)的HTTP請(qǐng)求的方法是P0ST,則將該請(qǐng)求對(duì)應(yīng)的POST參數(shù)保存到“最近一次POST參數(shù)”中,否則將“最近一次POST參數(shù)”的值設(shè)置為空;然后,將HTTP響應(yīng)的響應(yīng)狀態(tài)碼修改為“302”,將WffW-Authenticate響應(yīng)頭部去掉,將可能包含的HTTP響應(yīng)主體(Body)及響應(yīng)主體長(zhǎng)度指示去掉,在響應(yīng)中加入Location頭部,其值為身份服務(wù)系統(tǒng)的用戶登錄頁面URL,且該URL通過Query String附加了單點(diǎn)登錄HTTP插件所在的Web應(yīng)用系統(tǒng)的系統(tǒng)標(biāo)識(shí),最后,讓修改后的HTTP響應(yīng)通過,完成本次HTTP響應(yīng)的處理;B7.獲取當(dāng)前HTTP響應(yīng)對(duì)應(yīng)的HTTP請(qǐng)求URL,根據(jù)相關(guān)配置信息確定該HTTP請(qǐng)求URL是否對(duì)應(yīng)受安全保護(hù)的Web頁面,若不是,則讓HTTP響應(yīng)通過,完成本次HTTP響應(yīng)的處理;否則,轉(zhuǎn)入下一步驟;B8.若 HTTP 響應(yīng)中包含有 WffW-Authenticate 響應(yīng)頭部,則將 WffW-Authenticate響應(yīng)頭部去掉;若當(dāng)前HTTP響應(yīng)對(duì)應(yīng)的HTTP請(qǐng)求的URL與“最近一次要訪問的受保護(hù)的URL”相同,則將“最近一次要訪問的受保護(hù)的URL”和“最近一次POST參數(shù)”的值設(shè)置為空;B9.根據(jù)單點(diǎn)登錄HTTP插件的配置信息中針對(duì)當(dāng)前所使用的HTTP身份鑒別協(xié)議所設(shè)定的、在用戶身份鑒別成功后的“服務(wù)器端返回協(xié)議數(shù)據(jù)與參數(shù)”的值的設(shè)置方式,設(shè)置“服務(wù)器端返回協(xié)議數(shù)據(jù)與參數(shù)”的值,然后讓修改后的HTTP響應(yīng)通過,完成本次HTTP響應(yīng)的處理。所述步驟B3中所述的WffW-Authenticate頭部的值是進(jìn)行身份鑒別的初始提示是指該頭部的值是用戶完成身份鑒別前,初次訪問受保護(hù)的頁面時(shí),Web服務(wù)器端初次返回的要求進(jìn)行身份鑒別的WffW-Authenticate響應(yīng)頭部的數(shù)據(jù)。所述步驟B3中所述的身份憑證數(shù)據(jù),是指能證明用戶身份的電子數(shù)據(jù),如帳戶名、口令(如HTTP Basic),或者是包含身份確認(rèn)信息的安全令牌(如HTTP Negotiate的Spnego Token);所述經(jīng)身份憑證數(shù)據(jù)密碼運(yùn)算后的數(shù)據(jù),是指經(jīng)身份憑證,如用戶/ 口令,通過一定的密碼運(yùn)算(如HASH運(yùn)算)后得到數(shù)據(jù)(如HTTP NTLM的經(jīng)帳戶名、口令散列運(yùn)算的Type3數(shù)據(jù))。若單點(diǎn)登錄HTTP插件攔截的HTTP響應(yīng)包含多個(gè)WffW-Authenticate頭部,則所述步驟B3中所用的WffW-Authenticate頭部和所述步驟B4、B5、B6中所用的、其值被保存至IJ “服務(wù)器端返回協(xié)議數(shù)據(jù)與參數(shù)”中的WffW-Authenticate頭部以及所述步驟B6中保存“身份鑒別協(xié)議”所使用的WffW-Authent icate頭部,是一個(gè)根據(jù)預(yù)定的規(guī)則選擇的對(duì)應(yīng)于某個(gè)HTTP身份鑒別協(xié)議的WffW-Authenticate頭部(比如,按從Negotiate、NTLM、Digest到Basic協(xié)議優(yōu)先順序選擇的WffW-Authenticate頭部),而在所述步驟B4、5、6、8中刪除的Wffff-Authenticate 頭部包括所有的 Wffff-Authenticate 頭部。所述步驟B4、B5、B6、B9中所述的修改后的HTTP響應(yīng)從數(shù)據(jù)結(jié)構(gòu)上來說既可以是在原HTTP響應(yīng)數(shù)據(jù)結(jié)構(gòu)上直接修改后得到的HTTP響應(yīng),也可以是在一個(gè)新的HTTP響應(yīng)數(shù)據(jù)結(jié)構(gòu)上新生成的HTTP響應(yīng)。所述步驟B7中所述相關(guān)配置信息指Web服務(wù)組件和/或單點(diǎn)登錄HTTP插件的與安全訪問控制、身份鑒別、單點(diǎn)登錄有關(guān)的配置信息。在以上所述步驟中,將HTTP響應(yīng)的狀態(tài)碼修改或設(shè)置為“302”并在響應(yīng)中加入Location頭部,即進(jìn)行所謂HTTP重定向,將瀏覽器引導(dǎo)到Location所指的頁面或Web站點(diǎn)。單點(diǎn)登錄HTTP插件在HTTP響應(yīng)處理階段根據(jù)不同情形分別按如下方式獲得當(dāng)前HTTP響應(yīng)對(duì)應(yīng)的HTTP請(qǐng)求的請(qǐng)求行、頭部和主體中的相關(guān)數(shù)據(jù)(如請(qǐng)求URL、Cookie、Authorization 頭部、POST 參數(shù)等):情形2. I :若HTTP插件能直接訪問HTTP請(qǐng)求中的相關(guān)數(shù)據(jù)頭部,則直接從請(qǐng)求中獲得相關(guān)數(shù)據(jù);否則,情形2. 2 :若Web服務(wù)組件提供了基于TCP連接的數(shù)據(jù)存儲(chǔ)位置,則單點(diǎn)登錄HTTP插件在HTTP請(qǐng)求處理階段完成所有相關(guān)處理包括將GET方式的請(qǐng)求轉(zhuǎn)換為POST方式的請(qǐng)求后,讓HTTP請(qǐng)求通過前,將當(dāng)前HTTP請(qǐng)求的相關(guān)數(shù)據(jù)保存到基于TCP連接的數(shù)據(jù)存儲(chǔ)位置,由單點(diǎn)登錄HTTP插件在HTTP響應(yīng)處理階段獲?。环駝t,情形2. 3 :若Web服務(wù)組件提供了基于HTTP會(huì)話的數(shù)據(jù)存儲(chǔ)位置,則單點(diǎn)登錄HTTP插件在HTTP請(qǐng)求處理階段完成所有相關(guān)處理包括將GET方式的請(qǐng)求轉(zhuǎn)換為POST方式的請(qǐng)求后,讓HTTP請(qǐng)求通過前,將當(dāng)前HTTP請(qǐng)求的相關(guān)數(shù)據(jù)保存到基于HTTP會(huì)話的數(shù)據(jù)存儲(chǔ)位置,由單點(diǎn)登錄HTTP插件在HTTP響應(yīng)處理階段獲?。环駝t,情形2. 4 :若在HTTP請(qǐng)求處理階段能直接設(shè)置HTTP響應(yīng)的頭部,則單點(diǎn)登錄HTTP插件在HTTP請(qǐng)求處理階段完成所有相關(guān)處理包括將GET方式的請(qǐng)求轉(zhuǎn)換為POST方式的請(qǐng)求后,讓HTTP請(qǐng)求通過前,將當(dāng)前HTTP請(qǐng)求的相關(guān)數(shù)據(jù),通過自定義的HTTP響應(yīng)頭部傳遞到HTTP響應(yīng)處理階段的單點(diǎn)登錄HTTP插件獲取,單點(diǎn)登錄HTTP插件在HTTP響應(yīng)處理階段通過自定義頭部獲取相關(guān)數(shù)據(jù)后,刪除該自定義頭部;否則,情形2. 5 :若單點(diǎn)登錄HTTP插件有定制開發(fā)的基于TCP連接或會(huì)話的數(shù)據(jù)存儲(chǔ)位置,則單點(diǎn)登錄HTTP插件在HTTP請(qǐng)求處理階段完成所有相關(guān)處理包括將GET方式的請(qǐng)求轉(zhuǎn)換為POST方式的請(qǐng)求后,讓HTTP請(qǐng)求通過前,將當(dāng)前HTTP請(qǐng)求的相關(guān)數(shù)據(jù)保存到定制開發(fā)的基于TCP連接或會(huì)話的數(shù)據(jù)存儲(chǔ)位置,由單點(diǎn)登錄HTTP插件在HTTP響應(yīng)處理階段獲取;否則,情形2. 6 :單點(diǎn)登錄HTTP插件在HTTP請(qǐng)求處理階段完成所有相關(guān)處理包括將GET方式的請(qǐng)求轉(zhuǎn)換為POST方式的請(qǐng)求后,讓HTTP請(qǐng)求通過前,通過線程(Thread)機(jī)制將當(dāng)前HTTP請(qǐng)求的相關(guān)數(shù)據(jù)傳送到HTTP響應(yīng)處理階段的單點(diǎn)登錄HTTP插件。在所述情形2. 2-2 . 6,單點(diǎn)登錄HTTP插件在HTTP請(qǐng)求處理階段完成所有相關(guān)處理包括將GET方式的請(qǐng)求轉(zhuǎn)換為POST方式的請(qǐng)求后,讓HTTP請(qǐng)求通過前,只需要將受安全保護(hù)的Web頁面的POST參數(shù)(若有)傳遞到HTTP響應(yīng)處理階段的單點(diǎn)登錄HTTP插件。當(dāng)用戶瀏覽器被單點(diǎn)登錄HTTP插件在HTTP響應(yīng)處理階段的所述步驟B6通過將HTTP響應(yīng)的狀態(tài)碼修改或設(shè)置為“302”并設(shè)置HTTP響應(yīng)的Location頭部重定向到身份服務(wù)系統(tǒng)的用戶登錄頁面后,身份服務(wù)系統(tǒng)按如下方式進(jìn)行HTTP請(qǐng)求處理Cl.通過HTTP請(qǐng)求URL的Query String中攜帶的Web應(yīng)用系統(tǒng)標(biāo)識(shí)確定用戶要訪問的Web應(yīng)用系統(tǒng)是否是身份服務(wù)系統(tǒng)信任、提供服務(wù)的系統(tǒng),若不是,則返回出錯(cuò)信息;否則,轉(zhuǎn)入下一步驟;C2.確定用戶之前是否已在身份服務(wù)系統(tǒng)完成身份鑒別,若是,則轉(zhuǎn)入下一步驟;否則,將用戶引導(dǎo)到登錄頁面,并基于用戶主帳戶對(duì)用戶進(jìn)行身份鑒別,鑒別成功后轉(zhuǎn)入下
      一步驟;C3.根據(jù)用戶的主帳戶及用戶要訪問的Web應(yīng)用系統(tǒng),在主從帳戶綁定數(shù)據(jù)庫中獲得用戶在要訪問的Web應(yīng)用系統(tǒng)中的從帳戶名和口令;C4.為用戶生成一個(gè)包含其主帳戶名、從帳戶名及加密后的從帳戶口令的安全令牌,并對(duì)相關(guān)信息進(jìn)行數(shù)字簽名,然后將包含安全令牌的用戶身份證明信息以Form表單的方式返回到用戶瀏覽器,并通過Form表單的自動(dòng)POST提交(Submit)方式將包含安全令牌的用戶身份證明信息提交到用戶需要訪問的Web應(yīng)用系統(tǒng)的安全令牌處理頁面。安全令牌處理頁面接收到身份服務(wù)系統(tǒng)簽發(fā)并由用戶瀏覽器通過Form表單自動(dòng)POST方式提交的包含安全令牌的用戶身份證明信息后,按如下方式進(jìn)行處理Dl.通過數(shù)字簽名驗(yàn)證安全令牌是否有效,若有效,轉(zhuǎn)入下一步驟;否則,返回出錯(cuò)提示;D2.從安全令牌中分離出用戶的主帳戶名和從帳戶名、口令,解密從帳戶口令,然后,在HTTP響應(yīng)中創(chuàng)建Set-Cookie頭部,設(shè)置存放“用戶身份信息”的Cookie,Cookie的值包含加密后的主帳戶名和從帳戶名、口令;D3.將HTTP響應(yīng)的狀態(tài)碼設(shè)置為“302”,在HTTP響應(yīng)中創(chuàng)建一個(gè)Location頭部,該頭部的值設(shè)置為從Cookie中獲得“最近一次要訪問的受保護(hù)的URL”,然后返回HTTP響應(yīng)。當(dāng)用戶瀏覽器被單點(diǎn)登錄HTTP插件在HTTP響應(yīng)處理階段的所述步驟B4通過將HTTP響應(yīng)的狀態(tài)碼修改或設(shè)置為“302”并設(shè)置HTTP響應(yīng)的Location頭部重定向到身份服務(wù)系統(tǒng)的用戶代登錄出錯(cuò)頁面URL后,身份服務(wù)系統(tǒng)按如下方式進(jìn)行HTTP請(qǐng)求處理;El.通過HTTP請(qǐng)求URL中攜帶的Web應(yīng)用系統(tǒng)標(biāo)識(shí)確定用戶要訪問的Web應(yīng)用系統(tǒng)是否是身份服務(wù)系統(tǒng)信任、提供服務(wù)的系統(tǒng),若不是,則返回出錯(cuò)信息;否則,轉(zhuǎn)入下一步驟;E2.提示用戶輸入、提交其要訪問的Web應(yīng)用系統(tǒng)中的帳戶名、口令;
      E3.用戶提交帳戶名、口令后,確定用戶之前是否已登錄身份服務(wù)系統(tǒng)完成身份鑒另IJ,若是,則轉(zhuǎn)入步驟E5 ;否則,轉(zhuǎn)入下一步驟;E4.返回身份服務(wù)系統(tǒng)的用戶登錄頁面,并基于用戶主帳戶對(duì)用戶進(jìn)行身份鑒別,鑒別成功后轉(zhuǎn)入下一步;E5.基于步驟E2、E3獲得的用戶在Web應(yīng)用系統(tǒng)中的帳戶名、口令,在主從帳戶綁定數(shù)據(jù)庫中,更新用戶在對(duì)應(yīng)的Web應(yīng)用系統(tǒng)中從帳戶名、口令;E6.為用戶生成一個(gè)包含其主帳戶名、從帳戶名及加密后的從帳戶口令的安全令牌,并對(duì)相關(guān)信息進(jìn)行數(shù)字簽名,然后將包含安全令牌的用戶身份證明信息以Form表單的方式返回到用戶瀏覽器,并通過Form表單的自動(dòng)POST提交(Submit)方式將包含安全令牌的用戶身份證明信息提交到用戶需要訪問的Web應(yīng)用系統(tǒng)的安全令牌處理頁面。若所述Web應(yīng)用系統(tǒng)的整個(gè)Web路徑(目錄)都是安全保護(hù)的路徑,且無法在受安全保護(hù)的路徑(目錄)之中或之外設(shè)置一個(gè)非受安全保護(hù)的路徑(目錄),則安全令牌處理頁面不是一個(gè)實(shí)際存在的Web頁面,而僅僅是一個(gè)虛擬的Web頁面路徑;相應(yīng)地,所述單點(diǎn)登錄HTTP插件在HTTP請(qǐng)求處理階段攔截提交到安全令牌處理頁面的HTTP請(qǐng)求,完成步驟Dl所述的處理操作,然后在該HTTP請(qǐng)求的響應(yīng)處理階段,攔截HTTP響應(yīng),完成步驟D2、D3所述的處理操作。若用戶對(duì)所述Web應(yīng)用系統(tǒng)的訪問是通過Web代理(Proxy)進(jìn)行的,且由Web代理通過HTTP身份鑒別協(xié)議的代理模式對(duì)用戶進(jìn)行身份鑒別,且Web代理在其HTTP請(qǐng)求、響應(yīng)處理通道中提供了 HTTP插件機(jī)制,且基于該插件機(jī)制的HTTP插件能夠攔截HTTP身份鑒別協(xié)議的請(qǐng)求、響應(yīng)數(shù)據(jù),則在做如下相應(yīng)改變的情況下本發(fā)明所述的方法同樣適用所述Web服務(wù)組件指Web代理;所述Web應(yīng)用組件指Web代理之后的整個(gè)Web系統(tǒng)(本身也包含一個(gè)或多個(gè)Web服務(wù)組件和Web應(yīng)用軟件);所述Web代理和其后的整個(gè)Web系統(tǒng)構(gòu)成了所述Web應(yīng)用系統(tǒng);所述單點(diǎn)登錄HTTP插件部署在所述Web代理上,且在其所部署的Web代理上被配置為攔截所有的HTTP請(qǐng)求、響應(yīng);所述的HTTP響應(yīng)狀態(tài)碼 “401 ” 變?yōu)?“407”(提不 Proxy Authentication Required),所述 HTTP 響應(yīng)頭部Wffff-Authenticate 變?yōu)?Proxy-Authenticate 頭部,所述 HTTP 請(qǐng)求頭部 Authorization 變?yōu)?Proxy-Authorization 頭部。本發(fā)明的單點(diǎn)登錄集成方法,針對(duì)的只是整個(gè)單點(diǎn)登錄系統(tǒng)中采用HTTP身份鑒別協(xié)議且該HTTP身份鑒別協(xié)議的使用不能替換或更改的Web應(yīng)用系統(tǒng);對(duì)于其他的Web應(yīng)用系統(tǒng),可采用其他的單點(diǎn)登錄集成方法。本發(fā)明的創(chuàng)新之處在于通過單點(diǎn)登錄HTTP插件,使得使用HTTP身份鑒別協(xié)議(如Basic,Digest,NTLM,Negotiate)對(duì)用戶進(jìn)行身份鑒別的Web應(yīng)用系統(tǒng),能夠在不改變身份鑒別配置且不修改應(yīng)用程序的情況下實(shí)現(xiàn)單點(diǎn)登錄。它解決了單點(diǎn)登錄在實(shí)際應(yīng)用集成中常見的一個(gè)技術(shù)難題。本發(fā)明的一個(gè)特點(diǎn)是用戶即便在外網(wǎng)仍然能夠訪問采用Kerberos協(xié)議(即HTTP Negotiate協(xié)議且使用Kerberos進(jìn)行身份鑒別)的Web應(yīng)用系統(tǒng)。


      圖I為本采用本發(fā)明的單點(diǎn)登錄系統(tǒng)整體結(jié)構(gòu)框圖。具體實(shí) 施方式下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步的詳細(xì)描述。本發(fā)明是一種面向HTTP身份鑒別協(xié)議的插件式單點(diǎn)登錄集成方法,采用本方法的單點(diǎn)登錄系統(tǒng)的整體結(jié)構(gòu)如圖I所示,包括Web服務(wù)組件、Web應(yīng)用組件、單點(diǎn)登錄HTTP插件、安全令牌處理頁面、瀏覽器、身份服務(wù)系統(tǒng)、主帳戶數(shù)據(jù)庫、主從帳戶綁定數(shù)據(jù)庫,其中Web服務(wù)組件、Web應(yīng)用組件構(gòu)成了 Web應(yīng)用系統(tǒng),而各組成部分的功能在前面的發(fā)明內(nèi)容中已做了詳細(xì)描述,在此不再重復(fù)。在整個(gè)單點(diǎn)登錄系統(tǒng)的系統(tǒng)組件中,單點(diǎn)登錄HTTP插件、安全令牌處理頁面、身份服務(wù)系統(tǒng)、主帳戶數(shù)據(jù)庫、主從帳戶綁定數(shù)據(jù)庫屬于本發(fā)明要實(shí)現(xiàn)的內(nèi)容,而在要實(shí)現(xiàn)的內(nèi)容中,單點(diǎn)登錄HTTP插件又是最關(guān)鍵、最主要的部分。對(duì)于身份服務(wù)系統(tǒng)的實(shí)現(xiàn),可以采用已有的各種成熟的信息系統(tǒng)開發(fā)技術(shù),如J2EE技術(shù),ASP. NET技術(shù)等;對(duì)于主帳戶數(shù)據(jù)庫,可以采用LDAP、關(guān)系數(shù)據(jù)庫,或已有的Windows Active Directory或某個(gè)應(yīng)用系統(tǒng)帳戶數(shù)據(jù)庫;對(duì)于主從帳戶綁定數(shù)據(jù)庫,可以使用關(guān)系數(shù)據(jù)庫。主從帳戶綁定數(shù)據(jù)庫只要保存這樣一些信息1)用戶的主帳戶名;2)主帳戶對(duì)應(yīng)的用戶在每個(gè)授權(quán)訪問的應(yīng)用系統(tǒng)中從帳戶名及口令。單點(diǎn)登錄HTTP插件和安全令牌處理頁面的實(shí)現(xiàn),取決于其要部署的Web服務(wù)組件(但不必與Web應(yīng)用組件的開發(fā)技術(shù)一樣)。下面針對(duì)一些常用的Web服務(wù)組件,相應(yīng)的具體實(shí)施方案描述如下。如果Web服務(wù)組件是Windows IIS5,則單點(diǎn)登錄HTTP插件可以基于ISAPI Filter實(shí)現(xiàn),具體方案如下。單點(diǎn)登錄HTTP插件使用ISAPI Filter提供的基于TCP連接的數(shù)據(jù)存儲(chǔ)位置,即 ISAPI 傳遞給 ISAPI 入點(diǎn)函數(shù)(Entry-Point Function) HttpFilterProc (.)的 HTTP_FILTER_CONTEXT結(jié)構(gòu)類型的輸入?yún)?shù)pfc中的pFiIterContext字段,保存“服務(wù)器端返回協(xié)議數(shù)據(jù)與參數(shù)”。單點(diǎn)登錄HTTP插件(經(jīng)入點(diǎn)函數(shù)GetFilterVersionC )注冊(cè))在HTTP 請(qǐng)求處理階段對(duì) SF_NOTIFY_READ_RAW_DATA、SF_NOTIFY_PREPROC_HEADERS 通知事件做出響應(yīng),完成相應(yīng)的處理,其中解密用戶身份信息、增加Authorization請(qǐng)求頭部的操作在響應(yīng)SF_N0TIFY_PREPR0C_HEADERS通知事件時(shí)進(jìn)行;將GET方式的HTTP請(qǐng)求轉(zhuǎn)換成POST方式的請(qǐng)求(在需要時(shí)),并將“最近一次POST參數(shù)”中的數(shù)據(jù)作為POST參數(shù)加入到在HTTP請(qǐng)求主體中的操作在響應(yīng)SF_N0TIFY_READ_RAW_DATA通知事件時(shí)進(jìn)行;如果當(dāng)前HTTP請(qǐng)求是POST方式(包括經(jīng)GET、POST轉(zhuǎn)化后的HTTP請(qǐng)求),單點(diǎn)登錄HTTP插件在響應(yīng)SF_N0TIFY_READ_RAff_DATA通知事件時(shí),將當(dāng)前請(qǐng)求的POST參數(shù)保存在所述pFiIterContext字段中,由單點(diǎn)登錄HTTP插件在響應(yīng)處理階段獲取。單點(diǎn)登錄HTTP插件在HTTP處理階段可通過ISAPI Filter提供的回調(diào)函數(shù)(callback function)獲取HTTP請(qǐng)求行、請(qǐng)求頭部的各種信息,如請(qǐng)求URL、Cookie等。單點(diǎn)登錄HTTP插件(經(jīng)通知事件注冊(cè))在HTTP響應(yīng)處理階段對(duì)SF_N0TIFY_SEND_RESPONSE、SF_N0TIFY_SEND_RAW_DATA、SF_N0T IFY_END_0F_NET_SESS I ON 通知事件做出響應(yīng),并完成相應(yīng)的處理,其中在響應(yīng) SF_N0TIFY_SEND_RESP0NSE、SF_N0TIFY_SEND_RAff_DATA通知事件時(shí),完成修改HTTP響應(yīng)(包括修改狀態(tài)行、頭部和刪除響應(yīng)主體)、保存用戶登錄信息等操作處理;在響應(yīng)SF_N0TIFY_END_0F_NET_SESSI0N通知事件時(shí),釋放相應(yīng)的系統(tǒng)資源。實(shí)際上,單點(diǎn)登錄HTTP插件在HTTP響應(yīng)處理階段對(duì)HTTP響應(yīng)的修改,既可在SF_NOTIFY_SEND_RESPONSE 和 SF_NOTIFY_SEND_RAW_DATA 兩個(gè)通知事件點(diǎn)分別配合完成部分操作,也可以在SF_NOTIFY_SEND_RAW_DATA通知事件點(diǎn)完成全部操作,也就是說,可以不對(duì)SF_NOTIFY_SEND_RESPONSE通知事件作出響應(yīng)。在HTTP響應(yīng)處理階段的單點(diǎn)登錄HTTP插件可通過ISAPI Filter提供的回調(diào)函數(shù)獲取HTTP請(qǐng)求行、請(qǐng)求頭部的各種信息,如請(qǐng)求URL、Cookie等,以及修改 響應(yīng),生成新的響應(yīng);單點(diǎn)登錄HTTP插件在HTTP響應(yīng)處理階段,從所述pFi IterContext字段中獲取單點(diǎn)登錄HTTP插件在HTTP請(qǐng)求處理階段保存的POST方式的POST參數(shù)(也即采用情形2. 2的方案)。而安全令牌處理頁面可以基于ISAPI Extension實(shí)現(xiàn)?;贗SAPIExtension的安全令牌處理頁面可通過調(diào)用ISAPI Extension的回調(diào)函數(shù)處理請(qǐng)求、生成響應(yīng)。安全令牌處理頁面或者位于不受安全保護(hù)的目錄(路徑),或者位于受安全保護(hù)的目錄(路徑)中的一個(gè)不受安全保護(hù)的子目錄(子路徑)。單點(diǎn)登錄HTTP插件和安全令牌處理頁面基于IIS的Administration API獲取IIS的相關(guān)安全配置信息,如受保護(hù)的目錄(路徑)、使用的身份鑒別協(xié)議等。如果Web服務(wù)組件是Windows IIS6,則或者將IIS6配置成IIS5工作模式,然后使用前面所述的IIS5的單點(diǎn)登錄HTTP插件;或者,按如下方式實(shí)現(xiàn)單點(diǎn)登錄HTTP插件單點(diǎn)登錄HTTP插件使用與IIS5中同樣的方法,保存“服務(wù)器端返回協(xié)議數(shù)據(jù)與參數(shù)”。單點(diǎn)登錄HTTP插件在HTTP請(qǐng)求處理階段只對(duì)SF_NOTIFY_PREPROC_HEADERS通知事件做出響應(yīng),除了不進(jìn)行將GET方法轉(zhuǎn)化成POST方法,以及將POST方法的POST參數(shù)保存在pFilterContext字段中的操作外,其他操作處理的實(shí)現(xiàn)與IIS5中的實(shí)現(xiàn)相同。單點(diǎn)登錄HTTP插件在HTTP相應(yīng)處理階段的實(shí)現(xiàn),除了不保存POST方法的POST參數(shù)外,其他操作處理的實(shí)現(xiàn)與IIS5中的相同。安全令牌處理頁面的實(shí)現(xiàn)與IIS5中的相同。當(dāng)IIS6中的單點(diǎn)登錄HTTP插件采用非IIS5實(shí)現(xiàn)方式時(shí),在實(shí)際應(yīng)用中,會(huì)存一點(diǎn)問題由于不保存POST方法的POST參數(shù),以及在需要時(shí),將GET方法轉(zhuǎn)化成POST方法,因此,當(dāng)用戶初次訪問受保護(hù)頁面時(shí)使用的方法是P0ST,則在用戶完成身份鑒別后,將會(huì)以GET方法自動(dòng)再次訪問初次要訪問的受保護(hù)的頁面,這樣,用戶就可能得不到希望獲得的結(jié)果。但這種情況,并不會(huì)造成實(shí)質(zhì)性的損害一是因?yàn)橛脩舫醮卧L問受保護(hù)通常采用的方法GET方法,而不是POST方法;二是因?yàn)榧幢愠醮卧L問受保護(hù)通常采用的方法是GET方法,Web應(yīng)用系統(tǒng)會(huì)提示用戶重新提交數(shù)據(jù),這以后的POST請(qǐng)求會(huì)正常提交、如果Web服務(wù)組件是Windows IIS 7. 0及之后的版本,則除了可用前面所述的IIS6的實(shí)施方案外,單點(diǎn)登錄HTTP插件還可以基于IIS的Native-Code HTTP Module擴(kuò)展功能或Managed-Code HTTP Module實(shí)現(xiàn),而安全令牌處理頁面可以基于ISAPI Extens ion或ASP. NET實(shí)現(xiàn)。若基于Native-Code HTTP Module實(shí)現(xiàn)單點(diǎn)登錄HTTP插件,則需要實(shí)現(xiàn)一個(gè)CHttpModule的派生類,并在該類的OnBeginRequest方法中對(duì)HTTP請(qǐng)求進(jìn)行單點(diǎn)登錄處理,在OnSendResponse方法中對(duì)HTTP響應(yīng)進(jìn)行單點(diǎn)登錄處理。單點(diǎn)登錄HTTP插件將“月艮務(wù)器端返回協(xié)議數(shù)據(jù)與參數(shù)”數(shù)據(jù)保存在Native-Code HTTP Module的IHttpConnection對(duì)象的基于TCP連接的IHttpModuleContextContainer對(duì)象中。單點(diǎn)登錄HTTP插件,在HTTP響應(yīng)處理階段能夠直接讀取對(duì)應(yīng)HTTP請(qǐng)求的請(qǐng)求行、請(qǐng)求頭部和主體中的數(shù)據(jù)(包括POST參數(shù))?;贛anaged-Code HTTP Module實(shí)現(xiàn)單點(diǎn)登錄HTTP插件的方法與基于Native-Code HTTP Module實(shí)現(xiàn)單點(diǎn)登錄HTTP插件的方法類似。關(guān)于如何通過Native-Code HTTP Module 或 Managed_Code HTTP Module 開發(fā) IIS 擴(kuò)展模塊,可參見微軟的 MSDN(Microsoft Development Network)。如果Web應(yīng)用系統(tǒng)的Web服務(wù)組件是JSP/Servlet Web Container (包括J2EEApplication Server 的 Web Container),則單點(diǎn)登錄HTTP插件可基于 Servlet Filter (這是所有 Web 容器都有的)、AuthenticationFilter (如 WebLogic)、Web 容器的 Valve (如Tomcat)或其他類似的HTTP插件機(jī)制(如WebSpher e的TAI等),具體怎樣實(shí)施以及能否實(shí)施,一是取決于Web容器提供了怎樣的插件機(jī)制,二是看這個(gè)插件機(jī)制是否能夠滿足所述的單點(diǎn)登錄處理需求,如能夠攔截HTTP身份鑒別協(xié)議的HTTP請(qǐng)求與響應(yīng),能夠通過一定的方式對(duì)HTTP請(qǐng)求與響應(yīng)進(jìn)行修改。比如,若在某個(gè)Web Container上部署的HTTP身份鑒別協(xié)議的 HTTP 請(qǐng)求、響應(yīng)能夠被 Servlet Fi I ter > Authenti cat ion Filter 或 Valve 攔截,則能夠基于 Servlet Filter、Authentication Filter 或 Valve 實(shí)現(xiàn)單點(diǎn)登錄 HTTP 插件。對(duì)于JSP/Servlet Web Conta iner提供的HTTP插件機(jī)制,單點(diǎn)登錄HTTP插件在HTTP響應(yīng)處理階段通常是能夠直接讀取HTTP請(qǐng)求的所有數(shù)據(jù)。對(duì)應(yīng)JSP/Servlet Web Container,安全令牌處理頁面可以基于JSP/Servlet實(shí)現(xiàn)。對(duì)于安全配置信息的獲取,或者采用直接讀取配置文件的方法,或者,通過Web容器提供的接口獲取。如果Web應(yīng)用系統(tǒng)的Web 服務(wù)組件是Apache HTTP Server、IBM HTTPffeb Server,則可以基于Apache Hook和Filter開發(fā)單點(diǎn)登錄HTTP插件,其中,HTTP請(qǐng)求處理階段的功能基于Apache Hook實(shí)現(xiàn),而HTTP響應(yīng)處理階段的功能基于Apache Hook和Filter實(shí)現(xiàn),其中,Apache Hook處理頭部,Apache Filter處理響應(yīng)內(nèi)容?!胺?wù)器端返回協(xié)議數(shù)據(jù)與參數(shù)”的存儲(chǔ),使用Apache提供的基于TCP連接的數(shù)據(jù)存儲(chǔ)位置。對(duì)于Apache Filter而言,單點(diǎn)登錄HTTP插件在HTTP響應(yīng)處理階段能夠直接讀取HTTP請(qǐng)求的所有數(shù)據(jù)。安全令牌處理頁面可以基于Apache ContentHandler開發(fā),或者基于相應(yīng)Web應(yīng)用組件的頁面技術(shù)(如 Perl、Python)開發(fā)。對(duì) Apache HTTP Server> IBM HTTP Web Server 安全配置信息的獲取,或者采用直接讀取配置文件的方法,或者,通過Apache提供的接口變量獲取,如request_rec結(jié)構(gòu)中的目錄配置信息,及request_rec結(jié)構(gòu)中的conn_rec結(jié)構(gòu)中的服務(wù)器配置信息。對(duì)于其他的Web服務(wù)組件,如Domino Web Server等,都有類似的HTTP插件機(jī)制,基于這些Web平臺(tái)的單點(diǎn)登錄HTTP插件和安全令牌處理頁面的具體實(shí)施方法與前面所述的具體實(shí)施方法類似。另外,對(duì)于所涉及的單點(diǎn)登錄協(xié)議及安全令牌的具體實(shí)施,單點(diǎn)登錄協(xié)議和安全令牌可以采用標(biāo)準(zhǔn)協(xié)議,如SAML、WS-FPRP及其,以及相應(yīng)的SAML斷言、WS-SecurityToken作為證明用戶身份的安全令牌;或者,使用自定義的單點(diǎn)登錄協(xié)議和自定義的安全令牌,只要與本發(fā)明所述的交互和處理過程一致即可。若單點(diǎn)登錄協(xié)議和安全令牌是基于 XML(extensible Markup Language)的,如 SAML、WS-FPRP,則對(duì) XML 數(shù)據(jù)的處理可以使用各種成熟的動(dòng)態(tài)庫、類庫(如Windows CommunicationFoundation類庫)、API (如Java API for XML Processing, JAXP)等。對(duì)于涉及數(shù)據(jù)加密、數(shù)字簽名的實(shí)現(xiàn),可以使用各種成熟的動(dòng)態(tài)庫(如OpenSSL)、類庫(如Java Cryptography Extension)、API (如WindowsCryptoAPI 等)。
      本說明書中未作詳細(xì)描述的內(nèi)容屬于本領(lǐng)域?qū)I(yè)技術(shù)人員公知的現(xiàn)有技術(shù)。
      權(quán)利要求
      1.一種面向HTTP身份鑒別協(xié)議的插件式單點(diǎn)登錄集成方法,所述方法的單點(diǎn)登錄系統(tǒng)包括Web服務(wù)組件、Web應(yīng)用組件、單點(diǎn)登錄HTTP插件、安全令牌處理頁面、瀏覽器、身份服務(wù)系統(tǒng)、主帳戶數(shù)據(jù)庫、主從帳戶綁定數(shù)據(jù)庫,其特征在于 Web服務(wù)組件為Web應(yīng)用組件提供HTTP請(qǐng)求接收、響應(yīng)傳送功能,及其他相關(guān)的支撐功能,包括接收用戶瀏覽器提交的HTTP格式的服務(wù)請(qǐng)求,進(jìn)行相應(yīng)預(yù)處理后提交給Web應(yīng)用組件進(jìn)行處理,之后,將Web應(yīng)用組件返回的處理結(jié)果,以HTTP響應(yīng)的格式傳送到用戶瀏覽器;基于相應(yīng)的安全配置,對(duì)用戶進(jìn)行身份鑒別、訪問控制;維護(hù)用戶的HTTP會(huì)話; Web應(yīng)用組件向用戶提供特定應(yīng)用服務(wù)的功能軟件,通過相應(yīng)的Web服務(wù)組件,接收用戶通過瀏覽器提交的應(yīng)用服務(wù)請(qǐng)求,完成相應(yīng)處理后將處理結(jié)果通過Web服務(wù)組件返回到用戶瀏覽器;所述Web應(yīng)用組件和對(duì)應(yīng)的所述Web服務(wù)組件構(gòu)成了 Web應(yīng)用系統(tǒng);所述Web應(yīng)用系統(tǒng)至少有一個(gè);所述Web應(yīng)用系統(tǒng)通過一定的方式對(duì)用戶進(jìn)行身份鑒別,其中部分Web應(yīng)用系統(tǒng)通過Web服務(wù)組件采用標(biāo)準(zhǔn)HTTP身份鑒別協(xié)議對(duì)用戶進(jìn)行身份鑒別;用戶訪問所述Web應(yīng)用系統(tǒng)的受保護(hù)頁面或資源,需要使用其在對(duì)應(yīng)Web應(yīng)用系統(tǒng)中的相應(yīng)帳戶完成身份鑒別后才能進(jìn)行;所述標(biāo)準(zhǔn)HTTP身份鑒別協(xié)議包括但不限于HTTP Basic、Digest、NTLM、Negotiate面向Web的身份鑒別協(xié)議; 單點(diǎn)登錄HTTP插件基于Web服務(wù)組件提供的擴(kuò)展機(jī)制,插入到采用HTTP身份鑒別協(xié)議的Web應(yīng)用系統(tǒng)的Web服務(wù)組件的HTTP請(qǐng)求、響應(yīng)處理通道中實(shí)現(xiàn)單點(diǎn)登錄功能的軟件組件;所述單點(diǎn)登錄HTTP插件采用的插件機(jī)制能夠攔截HTTP身份鑒別協(xié)議的請(qǐng)求、響應(yīng)數(shù)據(jù);所述單點(diǎn)登錄HTTP插件在其所部署的Web服務(wù)組件上被配置為攔截所有的HTTP請(qǐng)求、響應(yīng),或者被配置為攔截所有提交到受安全保護(hù)的目錄或路徑的HTTP請(qǐng)求及其響應(yīng)和提交到安全令牌處理頁面所在目錄或路徑的HTTP請(qǐng)求及其響應(yīng);所述單點(diǎn)登錄HTTP插件有相應(yīng)的配置信息,用于設(shè)置與單點(diǎn)登錄有關(guān)的信息,可選地,配置信息中包含如下內(nèi)容1)單點(diǎn)登錄HTTP插件所在的Web應(yīng)用系統(tǒng)中哪些Web頁面目錄或路徑是受安全保護(hù)的;2)受安全保護(hù)的目錄或路徑所采用的HTTP身份鑒別協(xié)議是哪個(gè)或哪些,及相關(guān)的身份鑒別協(xié)議參數(shù);3)所使用的HTTP身份鑒別的具體實(shí)施是否允許客戶端主動(dòng)發(fā)出鑒別和授權(quán)請(qǐng)求,即是否允許客戶端瀏覽器在接收到響應(yīng)狀態(tài)碼是“401”且包含WffW-Authenticate頭部的HTTP響應(yīng)之前,主動(dòng)提交包含Authorization頭部的HTTP請(qǐng)求,請(qǐng)求服務(wù)器端對(duì)客戶端用戶進(jìn)行身份鑒別和資源訪問進(jìn)行授權(quán); 安全令牌處理頁面在采用HTTP身份鑒別協(xié)議的Web應(yīng)用系統(tǒng)的Web服務(wù)組件上部署的專門處理身份服務(wù)系統(tǒng)簽發(fā)的證明用戶身份的安全令牌的Web頁面;所述安全令牌處理頁面部署在Web服務(wù)組的非安全保護(hù)路徑或目錄,即通過瀏覽器提交HTTP請(qǐng)求到該處理頁面的用戶無需完成身份鑒別; 瀏覽器用戶與Web應(yīng)用系統(tǒng)交互的客戶端,通過HTTP協(xié)議向Web服務(wù)組件傳送HTTP請(qǐng)求,接收Web服務(wù)組件返回的HTTP響應(yīng)并展現(xiàn)響應(yīng)的內(nèi)容; 身份服務(wù)系統(tǒng)提供用戶在線身份鑒別服務(wù)的系統(tǒng),基于用戶身份憑證對(duì)用戶進(jìn)行在線身份鑒別,通過相應(yīng)的單點(diǎn)登錄協(xié)議并借助瀏覽器向Web應(yīng)用系統(tǒng)傳送證明用戶身份的安全令牌;所述身份服務(wù)系統(tǒng)簽發(fā)的所述安全令牌的格式依賴于使用的單點(diǎn)登錄協(xié)議,可以是SAML斷言,或者WS-Federation安全令牌,或者自定義的安全令牌;所述身份服務(wù)系統(tǒng)通過數(shù)字簽名保證所簽發(fā)的安全令牌的原發(fā)性、完整性;主帳戶數(shù)據(jù)庫存放用戶登錄身份服務(wù)系統(tǒng)的主帳戶信息,包括主帳戶的帳戶名、口令,或主帳戶對(duì)應(yīng)的數(shù)據(jù)證書的相關(guān)信息;所述主帳戶指用戶在所述身份服務(wù)系統(tǒng)進(jìn)行身份鑒別時(shí)使用的帳戶;所述主帳戶數(shù)據(jù)庫可以是獨(dú)立的帳戶數(shù)據(jù)庫,也可以是某個(gè)應(yīng)用系統(tǒng)的帳戶數(shù)據(jù)庫; 主從帳戶綁定數(shù)據(jù)庫保存用戶主帳戶與用戶在Web應(yīng)用系統(tǒng)的從帳戶的對(duì)應(yīng)或綁定關(guān)系,以及從帳戶的口令;所述從帳戶即指用戶在某個(gè)特定Web應(yīng)用系統(tǒng)的相應(yīng)帳戶;用戶的主帳戶與其在某個(gè)Web應(yīng)用系統(tǒng)中的從帳戶可以是同一個(gè),也可以不同。
      2.根據(jù)權(quán)利要求I所述的面向HTTP身份鑒別協(xié)議的插件式單點(diǎn)登錄集成方法,其特征在于所述單點(diǎn)登錄HTTP插件保存有每個(gè)用戶的身份鑒別相關(guān)信息,稱為用戶登錄信息;所述用戶登錄信息包括 1)身份鑒別協(xié)議=Web服務(wù)組件當(dāng)前使用的、用于對(duì)用戶進(jìn)行身份鑒別的HTTP身份鑒別協(xié)議; 2)服務(wù)器端返回協(xié)議數(shù)據(jù)與參數(shù)Web服務(wù)組件使用HTTP身份鑒別協(xié)議對(duì)客戶端用戶進(jìn)行身份鑒別時(shí),通過WWW-Authentucate響應(yīng)頭部返回到客戶端瀏覽器的協(xié)議數(shù)據(jù)和參數(shù),其中包括HTTP身份鑒別協(xié)議指示; 3)最近一次要訪問的受保護(hù)的URL:用戶在Web應(yīng)用系統(tǒng)完成身份鑒別前,使用瀏覽器最近一次期望訪問的受安全保護(hù)的Web頁面的URL ; 4)最近一次POST參數(shù)用戶在Web應(yīng)用系統(tǒng)完成身份鑒別前,若使用瀏覽器最近一次訪問受安全保護(hù)的Web頁面時(shí)使用的HTTP請(qǐng)求方法是POST,則所述最近一次POST參數(shù)的值是該HTTP請(qǐng)求對(duì)應(yīng)的POST參數(shù),否則其值是空; 5)用戶身份信息標(biāo)識(shí)和鑒別用戶的信息,包括用戶的主帳戶名、從帳戶名及從帳戶口令; 所述各種用戶登錄信息以字符串的形式保存,對(duì)于非字符數(shù)據(jù),則以Base64編碼后的數(shù)據(jù)格式保存;所述用戶身份信息被加密且具有時(shí)效性,以防止泄露和重播攻擊;所述身份鑒別協(xié)議、最近一次要訪問的受保護(hù)的URL、最近一次POST參數(shù)以及用戶身份信息保存在Cookie中,且該Cookie的作用路徑需要同時(shí)包含Web服務(wù)組件設(shè)置的受安全保護(hù)的路徑和安全令牌處理頁面所在的非受安全保護(hù)的路徑,即無論在受安全保護(hù)的路徑中的Web頁面還是非受安全保護(hù)的安全令牌處理頁面都能查看得到該Cookie,或者,將有關(guān)的用戶登錄信息同時(shí)保存在兩個(gè)不同的Cookie中,其中一個(gè)的作用路徑是受安全保護(hù)的路徑,另一是非受安全保護(hù)的安全令牌處理頁面所在的路徑; 所述單點(diǎn)登錄HTTP插件根據(jù)所述Web服務(wù)組件提供給HTTP插件的數(shù)據(jù)存儲(chǔ)機(jī)制的不同,依如下優(yōu)先順序,分別按如下方法對(duì)所述服務(wù)器端返回協(xié)議數(shù)據(jù)與參數(shù)進(jìn)行存儲(chǔ) 情形I :若Web服務(wù)組件向HTTP插件提供了基于TCP連接的數(shù)據(jù)存儲(chǔ)位置,則單點(diǎn)登錄HTTP插件將所述服務(wù)器端返回協(xié)議數(shù)據(jù)與參數(shù)保存在基于TCP連接的數(shù)據(jù)存儲(chǔ)位置;或者, 情形2 :若Web服務(wù)組向HTTP插件提供了基于HTTP會(huì)話的數(shù)據(jù)存儲(chǔ)位置,則單點(diǎn)登錄HTTP插件將所述服務(wù)器端返回協(xié)議數(shù)據(jù)與參數(shù)保存在基于HTTP會(huì)話的數(shù)據(jù)存儲(chǔ)位置;或者, 情形3 :若單點(diǎn)登錄HTTP插件有定制開發(fā)的基于TCP連接或HTTP會(huì)話的數(shù)據(jù)存儲(chǔ)位置,則單點(diǎn)登錄HTTP插件將所述服務(wù)器端返回協(xié)議數(shù)據(jù)與參數(shù)保存在定制開發(fā)的基于TCP連接或HTTP會(huì)話的數(shù)據(jù)存儲(chǔ)位置; 否則,情形4 :單點(diǎn)登錄HTTP插件將所有用戶登錄信息通過Cookie保存在客戶端瀏覽器中;所述基于TCP連接的數(shù)據(jù)存儲(chǔ)位置,指Web服務(wù)組件向HTTP插件提供的數(shù)據(jù)存儲(chǔ)位置與HTTP數(shù)據(jù)傳輸?shù)腡CP連接相關(guān)聯(lián),TCP連接不同,則提供的數(shù)據(jù)存儲(chǔ)位置不同;所述基于HTTP會(huì)話的數(shù)據(jù)存儲(chǔ)位置,指只要是同一 HTTP會(huì)話,即便TCP連接不同,數(shù)據(jù)存儲(chǔ)位置仍然 相同,即數(shù)據(jù)存儲(chǔ)位置與TCP連接無關(guān),僅與特定的HTTP用戶會(huì)話有關(guān); 針對(duì)所述服務(wù)器端返回協(xié)議數(shù)據(jù)與參數(shù),在單點(diǎn)登錄HTTP插件的配置信息中必須設(shè)定如下內(nèi)容對(duì)于Web應(yīng)用系統(tǒng)使用的每一個(gè)HTTP身份鑒別協(xié)議,在用戶身份鑒別成功后,所述服務(wù)器端返回協(xié)議數(shù)據(jù)與參數(shù)的值的相應(yīng)設(shè)置方式,設(shè)置方式的選項(xiàng)是保持不變,設(shè)置為空,或設(shè)置為一個(gè)空格。
      3.根據(jù)權(quán)利要求I或2所述的面向HTTP身份鑒別協(xié)議的插件式單點(diǎn)登錄集成方法,其特征在于當(dāng)用戶使用瀏覽器訪問某個(gè)使用HTTP身份鑒別協(xié)議對(duì)用戶進(jìn)行身份鑒別的Web應(yīng)用系統(tǒng)時(shí),所述單點(diǎn)登錄HTTP插件攔截HTTP請(qǐng)求,然后按如下方法對(duì)HTTP請(qǐng)求進(jìn)行處理 步驟I :根據(jù)相關(guān)配置信息,確定當(dāng)前HTTP請(qǐng)求URL對(duì)應(yīng)的是受安全保護(hù)的頁面還是非受安全保護(hù)的頁面,若是受安全保護(hù)的,則轉(zhuǎn)入步驟2 ;否則,讓該HTTP請(qǐng)求通過,完成本次HTTP請(qǐng)求處理; 步驟2 :檢查所述服務(wù)器端返回協(xié)議數(shù)據(jù)與參數(shù),若其沒有設(shè)置或其值為空,則轉(zhuǎn)入步驟3 ;否則,轉(zhuǎn)入步驟6 ; 步驟3 :檢查所述用戶身份信息,若其存在且有效,則轉(zhuǎn)入步驟4 ;否則,讓HTTP請(qǐng)求通過,完成本次HTTP請(qǐng)求處理; 步驟4 = WCookie中保存的所述身份鑒別協(xié)議信息中得到Web應(yīng)用系統(tǒng)當(dāng)前使用的HTTP身份鑒別協(xié)議,然后,根據(jù)相關(guān)配置信息確定所采用的HTTP身份鑒別協(xié)議是否允許客戶端主動(dòng)發(fā)出鑒別和授權(quán)請(qǐng)求,若不允許,則讓HTTP請(qǐng)求通過,完成本次HTTP請(qǐng)求處理;否貝IJ,轉(zhuǎn)入步驟5 ; 步驟5 :從相關(guān)配置信息中獲得HTTP身份鑒別協(xié)議所需的數(shù)據(jù)與參數(shù),依HTTP身份鑒別協(xié)議,生成客戶端初次提交的包含身份鑒別數(shù)據(jù)的Authorization請(qǐng)求頭部,并將生成的頭部加入到攔截的HTTP請(qǐng)求中,然后,讓修改后的HTTP請(qǐng)求通過,完成本次HTTP請(qǐng)求處理; 步驟6 :若所述服務(wù)器端返回協(xié)議數(shù)據(jù)與參數(shù)的值為一個(gè)空格,則讓該HTTP請(qǐng)求通過,完成本次HTTP請(qǐng)求處理;否則,轉(zhuǎn)入步驟7 ; 步驟7 :根據(jù)所述服務(wù)器端返回協(xié)議數(shù)據(jù)與參數(shù)中的HTTP身份鑒別協(xié)議及其他數(shù)據(jù),生成身份鑒別協(xié)議在當(dāng)前協(xié)議階段的Authorization請(qǐng)求頭部,并將生成的頭部加入到攔截的HTTP請(qǐng)求中,然后,讓修改后的HTTP請(qǐng)求通過,完成本次HTTP請(qǐng)求處理; 所述步驟1、4、5中所述相關(guān)配置信息指Web服務(wù)組件和/或單點(diǎn)登錄HTTP插件的與安全訪問控制、身份鑒別、單點(diǎn)登錄有關(guān)的配置信息; 所述HTTP身份鑒別協(xié)議的身份鑒別過程需要客戶端與服務(wù)器端通過HTTP請(qǐng)求、響應(yīng)進(jìn)行多個(gè)步驟或階段的交互,而所述步驟7中所述的HTTP身份鑒別協(xié)議的所述當(dāng)前協(xié)議階段是指客戶端根據(jù)身份鑒別協(xié)議的要求當(dāng)前提交身份鑒別請(qǐng)求信息所處的步驟或階段;所述單點(diǎn)登錄HTTP插件在HTTP請(qǐng)求處理階段完成所述步驟2-7的相關(guān)處理后,讓HTTP請(qǐng)求通過前,需進(jìn)行如下處理操作若當(dāng)前HTTP請(qǐng)求的URL與所述最近一次要訪問的受保護(hù)的URL中保存的URL相同且當(dāng)前HTTP請(qǐng)求的方法是GET且所述最近一次POST參數(shù)的值非空,則將當(dāng)前HTTP請(qǐng)求的方法改為POST,將所述最近一次POST參數(shù)中的數(shù)據(jù)作為POST參數(shù)添加到當(dāng)前HTTP請(qǐng)求中; 如果基于Web服務(wù)組件提供的HTTP插件機(jī)制,所述單點(diǎn)登錄HTTP插件在HTTP響應(yīng)處理階段無法獲得當(dāng)前HTTP響應(yīng)對(duì)應(yīng)的HTTP請(qǐng)求的請(qǐng)求行、頭部或主體,則所述單點(diǎn)登錄HTTP插件在HTTP請(qǐng)求處理階段的所述步驟1-7完成所有相關(guān)處理包括將GET方式的請(qǐng)求轉(zhuǎn)換為POST方式的請(qǐng)求后,讓HTTP請(qǐng)求通過前,依如下優(yōu)先順序,根據(jù)如下不同情形將當(dāng) 前HTTP請(qǐng)求的所述相關(guān)數(shù)據(jù)傳送到HTTP響應(yīng)處理階段的單點(diǎn)登錄HTTP插件 情形A :若Web服務(wù)組件提供了基于TCP連接的數(shù)據(jù)存儲(chǔ)位置,則將當(dāng)前HTTP請(qǐng)求的相關(guān)數(shù)據(jù)保存到基于TCP連接的數(shù)據(jù)存儲(chǔ)位置,由單點(diǎn)登錄HTTP插件在HTTP響應(yīng)處理階段獲?。换蛘?, 情形B :若Web服務(wù)組件提供了基于HTTP會(huì)話的數(shù)據(jù)存儲(chǔ)位置,則將當(dāng)前HTTP請(qǐng)求的相關(guān)數(shù)據(jù)保存到基于HTTP會(huì)話的數(shù)據(jù)存儲(chǔ)位置,由單點(diǎn)登錄HTTP插件在HTTP響應(yīng)處理階段獲取;或者, 情形C :若在HTTP請(qǐng)求處理階段能直接設(shè)置HTTP響應(yīng)的頭部,則將當(dāng)前HTTP請(qǐng)求的相關(guān)數(shù)據(jù),通過自定義的HTTP響應(yīng)頭部傳遞到HTTP響應(yīng)處理階段的單點(diǎn)登錄HTTP插件獲取,單點(diǎn)登錄HTTP插件在HTTP響應(yīng)處理階段通過自定義頭部獲取相關(guān)數(shù)據(jù)后,刪除該自定義頭部;或者, 情形D :若單點(diǎn)登錄HTTP插件有定制開發(fā)的基于TCP連接或會(huì)話的數(shù)據(jù)存儲(chǔ)位置,則將當(dāng)前HTTP請(qǐng)求的相關(guān)數(shù)據(jù)保存到定制開發(fā)的基于TCP連接或會(huì)話的數(shù)據(jù)存儲(chǔ)位置,由單點(diǎn)登錄HTTP插件在HTTP響應(yīng)處理階段獲?。? 否則, 情形E :通過線程機(jī)制將當(dāng)前HTTP請(qǐng)求的相關(guān)數(shù)據(jù)傳送到HTTP響應(yīng)處理階段的單點(diǎn)登錄HTTP插件; 所述單點(diǎn)登錄HTTP插件只需要將受安全保護(hù)的Web頁面的POST參數(shù)傳遞到HTTP響應(yīng)處理階段的單點(diǎn)登錄HTTP插件。
      4.根據(jù)權(quán)利要求3所述的面向HTTP身份鑒別協(xié)議的插件式單點(diǎn)登錄集成方法,其特征在于所述的HTTP請(qǐng)求處理過程的所述步驟5、7,所述單點(diǎn)登錄HTTP插件根據(jù)HTTP身份鑒別協(xié)議的不同,分別按如下方式,產(chǎn)生HTTP身份鑒別協(xié)議在對(duì)應(yīng)協(xié)議階段的相應(yīng)Authorization 請(qǐng)求頭部 情形I :若身份鑒別協(xié)議協(xié)議是HTTP Basic,則從Cookie中解密所述用戶身份信息數(shù)據(jù)、獲取用戶在Web應(yīng)用系統(tǒng)中的從帳戶名、口令,然后按HTTP Basic協(xié)議的要求,形成Authorization 頭部;或者, 情形II :若身份鑒別協(xié)議是HTTP Digest,則從Cookie中解密所述用戶身份信息數(shù)據(jù)、獲取用戶在Web應(yīng)用系統(tǒng)中的從帳戶名、口令,然后根據(jù)所述服務(wù)器端返回協(xié)議數(shù)據(jù)與參數(shù)中的內(nèi)容,以及HTTPDigest協(xié)議的要求,形成Authorization頭部;或者, 情形III :若身份鑒別協(xié)議是HTTP NTLM,且所述服務(wù)器端返回協(xié)議數(shù)據(jù)與參數(shù)為未設(shè)置或者其值為空或者其值為進(jìn)行身份鑒別的初次提示,則產(chǎn)生NTLM Type I數(shù)據(jù),然后按HTTP NTLM協(xié)議要求,形成Authorization頭部的數(shù)據(jù);否則,先從Cookie中解密所述用戶身份信息數(shù)據(jù)、獲取用戶在Web應(yīng)用系統(tǒng)中的從帳戶名、口令,然后,利用該從帳戶名、口令以及保存在所述服務(wù)器端返回協(xié)議數(shù)據(jù)與參數(shù)中的NTLM Type 2數(shù)據(jù),產(chǎn)生NTLM Type 3數(shù)據(jù),然后按HTTP NTLM協(xié)議要求,形成Authorization頭部;或者, 情形IV :若身份鑒別協(xié)議是HTTP Negotiate,則先從Cookie中解密所述用戶身份信息數(shù)據(jù)、獲取用戶在Web應(yīng)用系統(tǒng)中的從帳戶名、口令,也即用戶在Kerberos系統(tǒng)中的帳戶名、口令,然后利用該從帳戶名、口令調(diào)用相應(yīng)的Kerberos接口,連接Kerberos KDC的身份鑒別服務(wù)器,獲得用戶的TGT,然后再使用該TGT調(diào)用GSS-API或相當(dāng)?shù)慕涌?,獲得用戶訪問Web應(yīng)用系統(tǒng)的Spnego Token,然后,利用獲得的Spnego Token,按HTTP Negotiate協(xié) 議要求,形成Authorization頭部;或者, 情形V :若是其他有效的HTTP身份鑒別協(xié)議,則按相關(guān)協(xié)議進(jìn)行處理; 否則,將用戶瀏覽器引導(dǎo)到出錯(cuò)頁面。
      5.根據(jù)權(quán)利要求I或2所述的面向HTTP身份鑒別協(xié)議的插件式單點(diǎn)登錄集成方法,其特征在于所述單點(diǎn)登錄HTTP插件攔截HTTP響應(yīng)后,按如下方式對(duì)HTTP響應(yīng)進(jìn)行處理第I步檢查HTTP響應(yīng)的響應(yīng)狀態(tài)及頭部,如果響應(yīng)狀態(tài)是“401”且包含Wffff-Authenticate響應(yīng)頭部,則轉(zhuǎn)入第2步;否則,轉(zhuǎn)入第I步;第2步檢查所述用戶身份信息,若其存在且有效,則轉(zhuǎn)入第3步;否則,轉(zhuǎn)入第6步;第3步檢查當(dāng)前HTTP響應(yīng)的WffW-Authenticate頭部的值,若是進(jìn)行身份鑒別的初始提示且響應(yīng)對(duì)應(yīng)的HTTP請(qǐng)求包含有Authorization頭部且該Authorization頭部的值是所述WffW-Authenticate頭部中指示的HTTP身份鑒別協(xié)議對(duì)應(yīng)的身份憑證數(shù)據(jù)或者經(jīng)身份憑證數(shù)據(jù)密碼運(yùn)算后的數(shù)據(jù),則轉(zhuǎn)入第4步;否則,轉(zhuǎn)入第5步; 第4步將所述用戶身份信息設(shè)置為空,將所述服務(wù)器端返回協(xié)議數(shù)據(jù)與參數(shù)的值設(shè)置為HTTP響應(yīng)的WffW-Authenticate頭部的值,獲取當(dāng)前HTTP響應(yīng)對(duì)應(yīng)的HTTP請(qǐng)求URL,將其作為所述最近一次要訪問的受保護(hù)的URL的值保存;若當(dāng)前HTTP響應(yīng)對(duì)應(yīng)的HTTP請(qǐng)求的方法是POST,則將該請(qǐng)求對(duì)應(yīng)的POST參數(shù)保存到所述最近一次POST參數(shù)中,否則將所述最近一次POST參數(shù)的值設(shè)置為空;然后,將HTTP響應(yīng)的響應(yīng)狀態(tài)碼修改為302,將Wffff-Authenticate響應(yīng)頭部去掉,將可能包含的HTTP響應(yīng)主體及響應(yīng)主體長(zhǎng)度指示去掉,在響應(yīng)中加入Location頭部,將其值設(shè)置為身份服務(wù)系統(tǒng)的用戶代登錄出錯(cuò)頁面URL,該URL通過Query String附加了單點(diǎn)登錄HTTP插件所在的Web應(yīng)用系統(tǒng)的系統(tǒng)標(biāo)識(shí),最后,讓修改后的HTTP響應(yīng)通過,完成本次HTTP響應(yīng)的處理; 第5步將所述服務(wù)器端返回協(xié)議數(shù)據(jù)與參數(shù)的值設(shè)置為HTTP響應(yīng)的Wffff-Authenticate頭部的值,獲取當(dāng)前HTTP響應(yīng)對(duì)應(yīng)的HTTP請(qǐng)求URL并將其作為所述最近一次要訪問的受保護(hù)的URL的值保存;若當(dāng)前HTTP響應(yīng)對(duì)應(yīng)的HTTP請(qǐng)求的方法是POST,則將該請(qǐng)求對(duì)應(yīng)的POST參數(shù)保存到所述最近一次POST參數(shù)中,否則將所述最近一次POST參數(shù)的值設(shè)置為空;然后,將HTTP響應(yīng)的響應(yīng)狀態(tài)碼修改為302,將WffW-Authenticate響應(yīng)頭部去掉,將可能包含的HTTP響應(yīng)主體及響應(yīng)主體長(zhǎng)度指示去掉,在響應(yīng)中加入Location頭部,將其值設(shè)置為當(dāng)前HTTP響應(yīng)對(duì)應(yīng)的HTTP請(qǐng)求URL,然后,讓修改后的HTTP響應(yīng)通過,完成本次HTTP響應(yīng)的處理; 第6步將WffW-Authenticate頭部中指示的HTTP身份鑒別協(xié)議保存到所述用戶登錄信息的所述身份鑒別協(xié)議中,將所述服務(wù)器端返回協(xié)議數(shù)據(jù)與參數(shù)的值設(shè)置為HTTP響應(yīng)的WffW-Authenticate頭部的值,將所述用戶身份信息設(shè)置為空,獲取當(dāng)前HTTP響應(yīng)對(duì)應(yīng)的HTTP請(qǐng)求URL,將其作為所述最近一次要訪問的受保護(hù)的URL的值保存;若當(dāng)前HTTP響應(yīng)對(duì)應(yīng)的HTTP請(qǐng)求的方法是POST,則將該請(qǐng)求對(duì)應(yīng)的POST參數(shù)保存到所述最近一次POST參數(shù)中,否則將所述最近一次POST參數(shù)的值設(shè)置為空;然后,將HTTP響應(yīng)的響應(yīng)狀態(tài)碼修改為302,將HTTP響應(yīng)中的WffW-Authenticate響應(yīng)頭部去掉,將可能包含的HTTP響應(yīng)主體及響應(yīng)主體長(zhǎng)度指示去掉,在響應(yīng)頭部中加入Lo cation頭部,其值為身份服務(wù)系統(tǒng)的用戶登錄頁面URL,該URL通過Query String附加了單點(diǎn)登錄HTTP插件所在的Web應(yīng)用系統(tǒng)的系統(tǒng)標(biāo)識(shí),最后,讓修改后的HTTP響應(yīng)通過,完成本次HTTP響應(yīng)的處理; 第7步獲取當(dāng)前HTTP響應(yīng)對(duì)應(yīng)的HTTP請(qǐng)求URL,根據(jù)相關(guān)配置信息確定該HTTP請(qǐng)求URL是否對(duì)應(yīng)受安全保護(hù)的Web頁面,若不是,則讓HTTP響應(yīng)通過,完成本次HTTP響應(yīng)的處理;否則,轉(zhuǎn)入第8步; 第8步若HTTP響應(yīng)中包含有WffW-Authenticate響應(yīng)頭部,則將WffW-Authenticate響應(yīng)頭部去掉;若當(dāng)前HTTP響應(yīng)對(duì)應(yīng)的HTTP請(qǐng)求的URL與所述最近一次要訪問的受保護(hù)的URL相同,則將所述最近一次要訪問的受保護(hù)的URL和所述最近一次POST參數(shù)的值設(shè)置為空; 第9步根據(jù)單點(diǎn)登錄HTTP插件的配置信息中針對(duì)當(dāng)前所使用的HTTP身份鑒別協(xié)議所設(shè)定的、在用戶身份鑒別成功后的所述服務(wù)器端返回協(xié)議數(shù)據(jù)與參數(shù)的值的設(shè)置方式,設(shè)置所述服務(wù)器端返回協(xié)議數(shù)據(jù)與參數(shù)的值,然后讓修改后的HTTP響應(yīng)通過,完成本次HTTP響應(yīng)的處理; 所述第3步中所述的WffW-Authenticate頭部的值是進(jìn)行身份鑒別的初始提示是指該頭部的值是用戶完成身份鑒別前,初次訪問受保護(hù)的頁面時(shí),Web服務(wù)器端初次返回的要求進(jìn)行身份鑒別的WffW-Authenticate響應(yīng)頭部的數(shù)據(jù); 所述第3步中所述的身份憑證數(shù)據(jù),是指能證明用戶身份的電子數(shù)據(jù),包括帳戶名、口令,以及包含身份確認(rèn)信息安全令牌;所述經(jīng)身份憑證數(shù)據(jù)密碼運(yùn)算后的數(shù)據(jù),是指經(jīng)身份憑證通過一定的密碼運(yùn)算后得到數(shù)據(jù); 若單點(diǎn)登錄HTTP插件攔截的HTTP響應(yīng)包含多個(gè)WffW-Authenticate頭部,則在所述第3步中所用的WffW-Authenticate頭部和所述第4、5、6步中所用的、其值被保存到所述服務(wù)器端返回協(xié)議數(shù)據(jù)與參數(shù)中的WffW-Authenticate頭部以及所述第6步中保存所述身份鑒別協(xié)議所使用的WffW-Authenticate頭部,是一個(gè)根據(jù)預(yù)定的規(guī)則選擇的對(duì)應(yīng)于某個(gè)HTTP身份鑒別協(xié)議的WffW-Authenticate頭部,而在所述第4、5、6、8步中刪除的Wffff-Authenticate 頭部包括所有的 Wffff-Authenticate 頭部; 所述第4、5、6、9步中所述的修改后的HTTP響應(yīng)從數(shù)據(jù)結(jié)構(gòu)上來說既可以是在原HTTP響應(yīng)數(shù)據(jù)結(jié)構(gòu)上直接修改后得到的HTTP響應(yīng),也可以是在一個(gè)新的HTTP響應(yīng)數(shù)據(jù)結(jié)構(gòu)上新生成的HTTP響應(yīng); 所述第7步中所述相關(guān)配置信息指Web服務(wù)組件和/或單點(diǎn)登錄HTTP插件的與安全訪問控制、身份鑒別、單點(diǎn)登錄有關(guān)的配置信息。
      6.根據(jù)權(quán)利要求5所述的面向HTTP身份鑒別協(xié)議的插件式單點(diǎn)登錄集成方法,其特征在于所述的HTTP響應(yīng)處理過程的所述第6步通過將HTTP響應(yīng)的狀態(tài)碼修改或設(shè)置為302并設(shè)置HTTP響應(yīng)的Location頭部將瀏覽器重定向到身份服務(wù)系統(tǒng)的用戶登錄頁面后,身份服務(wù)系統(tǒng)按如下方式進(jìn)行HTTP請(qǐng)求處理 步驟一通過HTTP請(qǐng)求URL的Query String中攜帶的Web應(yīng)用系統(tǒng)標(biāo)識(shí)確定用戶要訪問的Web應(yīng)用系統(tǒng)是否是身份服務(wù)系統(tǒng)信任、提供服務(wù)的系統(tǒng),若不是,則返回出錯(cuò)信息;否則,轉(zhuǎn)入步驟二; 步驟二 確定用戶之前是否已在身份服務(wù)系統(tǒng)完成身份鑒別,若是,則轉(zhuǎn)入下一步驟;否則,將用戶引導(dǎo)到登錄頁面,并基于用戶主帳戶對(duì)用戶進(jìn)行身份鑒別,鑒別成功后轉(zhuǎn)入步驟三; 步驟三根據(jù)用戶的主帳戶及用戶要訪問的Web應(yīng)用系統(tǒng),在主從帳戶綁定數(shù)據(jù)庫中獲得用戶在要訪問的Web應(yīng)用系統(tǒng)中的從帳戶名和口令; 步驟四為用戶生成一個(gè)包含其主帳戶名、從帳戶名及加密后的從帳戶口令的安全令牌,并對(duì)相關(guān)信息進(jìn)行數(shù)字簽名,然后將包含安全令牌的用戶身份證明信息以Form表單的方式返回到用戶瀏覽器,并通過Form表單的自動(dòng)POST提交方式將包含安全令牌的用戶身份證明信息提交到用戶需要訪問的Web應(yīng)用系統(tǒng)的安全令牌處理頁面。
      7.根據(jù)權(quán)利要求I或2或6所述的面向HTTP身份鑒別協(xié)議的插件式單點(diǎn)登錄集成方法,其特征在于所述安全令牌處理頁面接收到所述身份服務(wù)系統(tǒng)簽發(fā)并由用戶瀏覽器通過Form表單自動(dòng)POST方式提交的包含安全令牌的用戶身份證明信息后,按如下方式進(jìn)行處理 第I步通過數(shù)字簽名驗(yàn)證安全令牌是否有效,若有效,轉(zhuǎn)入第II步;否則,返回出錯(cuò)提示; 第II步從安全令牌中分離出用戶的主帳戶名和從帳戶名、口令,解密從帳戶口令,然后,在HTTP響應(yīng)中創(chuàng)建Set-Cookie頭部,設(shè)置存放所述用戶身份信息的Cookie,Cookie的值包含加密后的用戶主帳戶名和從帳戶名、口令; 第III步將HTTP響應(yīng)的狀態(tài)碼設(shè)置為302,在HTTP響應(yīng)中創(chuàng)建一個(gè)Location頭部,該頭部的值設(shè)置為從Cookie中獲得所述最近一次要訪問的受保護(hù)的URL,然后返回HTTP響應(yīng)。
      8.根據(jù)權(quán)利要求5所述的面向HTTP身份鑒別協(xié)議的插件式單點(diǎn)登錄集成方法,其特征在于所述的HTTP響應(yīng)處理階段的所述第4步通過將HTTP響應(yīng)的狀態(tài)碼修改或設(shè)置為302并設(shè)置HTTP響應(yīng)的Location頭部將瀏覽器重定向到身份服務(wù)系統(tǒng)的用戶代登錄出錯(cuò)頁面URL后,身份服務(wù)系統(tǒng)按如下方式進(jìn)行HTTP請(qǐng)求處理 第一步通過HTTP請(qǐng)求URL中攜帶的Web應(yīng)用系統(tǒng)標(biāo)識(shí)確定用戶要訪問的Web應(yīng)用系統(tǒng)是否是身份服務(wù)系統(tǒng)信任、提供服務(wù)的系統(tǒng),若不是,則返回出錯(cuò)信息;否則,轉(zhuǎn)入第二步; 第二步提示用戶輸入、提交其要訪問的Web應(yīng)用系統(tǒng)中的帳戶名、口令; 第三步用戶提交帳戶名、口令后,確定用戶之前是否已登錄身份服務(wù)系統(tǒng)完成身份鑒另U,若是,則轉(zhuǎn)入第五步;否則,轉(zhuǎn)入第四步;第四步返回身份服務(wù)系統(tǒng)的用戶登錄頁面,并基于用戶主帳戶對(duì)用戶進(jìn)行身份鑒別,鑒別成功后轉(zhuǎn)入第五步; 第五步基于第二、三步獲得的用戶在Web應(yīng)用系統(tǒng)中的帳戶名、口令,在主從帳戶綁定數(shù)據(jù)庫中,更新用戶在對(duì)應(yīng)的Web應(yīng)用系統(tǒng)中從帳戶名、口令; 第六步為用戶生成一個(gè)包含其主 帳戶名、從帳戶名及加密后的從帳戶口令的安全令牌,并對(duì)相關(guān)信息進(jìn)行數(shù)字簽名,然后將包含安全令牌的用戶身份證明信息以Form表單的方式返回到用戶瀏覽器,并通過Form表單的自動(dòng)POST提交方式將包含安全令牌的用戶身份證明信息提交到用戶需要訪問的Web應(yīng)用系統(tǒng)的安全令牌處理頁面。
      9.根據(jù)權(quán)利要求7所述的面向HTTP身份鑒別協(xié)議的插件式單點(diǎn)登錄集成方法,其特征在于若所述Web應(yīng)用系統(tǒng)的整個(gè)Web路徑或目錄都是安全保護(hù)的路徑或路徑,且無法在受安全保護(hù)的路徑或目錄之中或之外設(shè)置一個(gè)非受安全保護(hù)的路徑或目錄,則安全令牌處理頁不是一個(gè)實(shí)際存在的Web頁面,而僅僅是一個(gè)虛擬的Web頁面路徑;相應(yīng)地,所述單點(diǎn)登錄HTTP插件在HTTP請(qǐng)求處理階段攔截提交到安全令牌處理頁面的HTTP請(qǐng)求,完成所述第I步所述的處理操作,然后在該HTTP請(qǐng)求的響應(yīng)處理階段,攔截HTTP響應(yīng),完成所述第II、III步所述的處理操作。
      10.根據(jù)權(quán)利要求I、3-5中任一項(xiàng)所述的面向HTTP身份鑒別協(xié)議的插件式單點(diǎn)登錄集成方法,其特征在于若用戶對(duì)所述Web應(yīng)用系統(tǒng)的訪問是通過Web代理進(jìn)行的,且由Web代理通過HTTP身份鑒別協(xié)議的代理模式對(duì)用戶進(jìn)行身份鑒別,且Web代理在其HTTP請(qǐng)求、響應(yīng)處理通道中提供了 HTTP插件機(jī)制,且基于該插件機(jī)制的HTTP插件能夠攔截HTTP身份鑒別協(xié)議的請(qǐng)求、響應(yīng)數(shù)據(jù),則在做如下相應(yīng)改變的情況下本發(fā)明所述的方法同樣適用 所述Web服務(wù)組件指Web代理;所述Web應(yīng)用組件指Web代理之后的整個(gè)Web系統(tǒng);所述Web代理和其后的整個(gè)Web系統(tǒng)構(gòu)成了所述Web應(yīng)用系統(tǒng);所述單點(diǎn)登錄HTTP插件部署在所述Web代理上,且在其所部署的Web代理上被配置為攔截所有的HTTP請(qǐng)求、響應(yīng);所述HTTP響應(yīng)狀態(tài)碼“401”變?yōu)椤?07” ;所述HTTP響應(yīng)頭部WffW-Authenticate變?yōu)镻roxy-Authenticate 頭部;所述 HTTP 請(qǐng)求頭部 Authorization 變?yōu)?Proxy-Authorization頭部。
      全文摘要
      本發(fā)明涉及一種面向HTTP身份鑒別協(xié)議的插件式單點(diǎn)登錄集成方法,該方法的單點(diǎn)登錄系統(tǒng)包括Web服務(wù)組件、Web應(yīng)用組件、單點(diǎn)登錄HTTP插件、安全令牌處理頁面、瀏覽器、身份服務(wù)系統(tǒng)、主帳戶數(shù)據(jù)庫、主從帳戶綁定數(shù)據(jù)庫,其中單點(diǎn)登錄HTTP插件是關(guān)鍵,它基于Web服務(wù)組件提供的擴(kuò)展機(jī)制插入到采用HTTP身份鑒別協(xié)議的Web服務(wù)組件的HTTP請(qǐng)求、響應(yīng)處理通道中;當(dāng)用戶在身份服務(wù)系統(tǒng)登錄后,該插件使用用戶在Web應(yīng)用系統(tǒng)上的帳戶名、口令自動(dòng)完成與Web服務(wù)組件的HTTP身份鑒別協(xié)議交互,使得用戶無需輸入Web應(yīng)用系統(tǒng)中的帳戶名、口令即能登錄Web應(yīng)用系統(tǒng),從而達(dá)到單點(diǎn)登錄的目的。采用本發(fā)明的方法實(shí)現(xiàn)單點(diǎn)登錄無需改變系統(tǒng)原有的安全配置及功能。
      文檔編號(hào)H04L29/08GK102638454SQ20121006727
      公開日2012年8月15日 申請(qǐng)日期2012年3月14日 優(yōu)先權(quán)日2012年3月14日
      發(fā)明者劉旭, 吳志奇, 唐志紅, 王亞龍, 謝坤軒, 郭浩平, 龍毅宏 申請(qǐng)人:北京天威誠信電子商務(wù)服務(wù)有限公司, 武漢理工大學(xué)
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1