專利名稱:一種松耦合單點(diǎn)登錄的實(shí)現(xiàn)方法及其系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及系統(tǒng)的登錄認(rèn)證,更具體地說(shuō),涉及一種松耦合單點(diǎn)登錄的實(shí)現(xiàn)方法 及其系統(tǒng)。
背景技術(shù):
對(duì)于運(yùn)營(yíng)商或服務(wù)提供商而言,其提供的服務(wù)系統(tǒng)要求能夠?qū)崿F(xiàn)用戶登錄,即系 統(tǒng)要能夠識(shí)別進(jìn)入其內(nèi)的用戶是否是注冊(cè)的合法用戶,對(duì)于非法的登錄要能夠排除;同時(shí), 在存在多種服務(wù)的系統(tǒng)中,這種系統(tǒng)通常有多個(gè)單獨(dú)的服務(wù)器,這些服務(wù)器由相同或不同 的服務(wù)提供商提供,某種服務(wù)的合法用戶不一定是另外一種服務(wù)的合法用戶。出于運(yùn)營(yíng)的 方便性的考慮,需要對(duì)所有用戶在各服務(wù)器上的登錄進(jìn)行統(tǒng)一的管理。目前的解決方案,是 采用單點(diǎn)登錄服務(wù)器(SSO Server)對(duì)所有用戶提供集中的登錄認(rèn)證功能,業(yè)務(wù)系統(tǒng)通過(guò)令 牌(或者ticket)向SSO krver驗(yàn)證用戶身份。業(yè)務(wù)系統(tǒng)的登錄依賴SSO Server,而且通 常有部署方面的限制,比如同一個(gè)網(wǎng)段,或者需要使用相同的訪問(wèn)地址,內(nèi)部分發(fā)請(qǐng)求等。 或者需要用戶、權(quán)限數(shù)據(jù)集中在SSO krver上統(tǒng)一管理,這樣對(duì)于單點(diǎn)登錄服務(wù)器(SS0 Server)的影響比較大,對(duì)單點(diǎn)登錄服務(wù)器(SSO Server)的依賴性非常強(qiáng)。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問(wèn)題在于,針對(duì)現(xiàn)有技術(shù)的上述對(duì)單點(diǎn)登錄服務(wù)器的影響比 較大,對(duì)單點(diǎn)登錄服務(wù)器的依賴性非常強(qiáng)的缺陷,提供一種對(duì)單點(diǎn)登錄服務(wù)器的影響較小、 對(duì)單點(diǎn)登錄服務(wù)器的依賴性較弱的松耦合單點(diǎn)登錄的實(shí)現(xiàn)方法及其系統(tǒng)。本發(fā)明解決其技術(shù)問(wèn)題所采用的技術(shù)方案是構(gòu)造一種松耦合單點(diǎn)登錄的實(shí)現(xiàn)方 法,包括如下步驟
A)業(yè)務(wù)服務(wù)器獲取用戶發(fā)出的、對(duì)于其他業(yè)務(wù)服務(wù)器的登錄請(qǐng)求;
B)判斷在所述業(yè)務(wù)服務(wù)器中是否有關(guān)聯(lián)列表,如無(wú),執(zhí)行步驟C);如有,執(zhí)行步驟D), 所述關(guān)聯(lián)列表包括具有關(guān)聯(lián)關(guān)系的單點(diǎn)登錄服務(wù)器的用戶名、業(yè)務(wù)服務(wù)器的用戶名和業(yè)務(wù) 服務(wù)器編號(hào);
C)驗(yàn)證所述登錄請(qǐng)求中用戶信息的合法性,如通過(guò)則登錄所述業(yè)務(wù)服務(wù)器,所述業(yè)務(wù) 服務(wù)器發(fā)送登錄信息到單點(diǎn)登錄服務(wù)器,驗(yàn)證用戶,取得該用戶對(duì)于所述業(yè)務(wù)服務(wù)器的關(guān) 聯(lián)列表,生成并存儲(chǔ)轉(zhuǎn)向鏈接,并返回登錄的結(jié)果;
D)驗(yàn)證所述登錄請(qǐng)求中用戶信息的合法性,如通過(guò)則所述業(yè)務(wù)服務(wù)器發(fā)送由所述關(guān) 聯(lián)列表而得的轉(zhuǎn)向鏈接所生成的登錄鏈接到所述單點(diǎn)登錄服務(wù)器,查找所述用戶與所述業(yè) 務(wù)服務(wù)器的關(guān)聯(lián)列表并返回,更新所述業(yè)務(wù)服務(wù)器的本地列表,并返回登錄的結(jié)果。在本發(fā)明所述的松耦合單點(diǎn)登錄的實(shí)現(xiàn)方法中,所述步驟C)進(jìn)一步包括如下步 驟
Cl)登錄所述業(yè)務(wù)服務(wù)器,所述業(yè)務(wù)服務(wù)器驗(yàn)證所述登錄信息并將其發(fā)送到所述單點(diǎn) 登錄服務(wù)器;C2)所述單點(diǎn)登錄服務(wù)器驗(yàn)證所述登錄信息,形成關(guān)聯(lián),并返回所述業(yè)務(wù)服務(wù)器登錄的
結(jié)果;
C3)所述業(yè)務(wù)服務(wù)器生成轉(zhuǎn)向鏈接訪問(wèn)所述單點(diǎn)登錄服務(wù)器,取得關(guān)聯(lián)列表返回; C4)所述業(yè)務(wù)服務(wù)器生成訪問(wèn)鏈接,并返回用戶登錄的結(jié)果。在本發(fā)明所述的松耦合單點(diǎn)登錄的實(shí)現(xiàn)方法中,所述步驟Cl)進(jìn)一步包括如下步 驟
CiD以在所述業(yè)務(wù)服務(wù)器注冊(cè)的本地登錄名稱登錄所述業(yè)務(wù)服務(wù)器;
C12)所述業(yè)務(wù)服務(wù)器驗(yàn)證所述登錄信息,對(duì)其做出標(biāo)記;
C13)所述業(yè)務(wù)服務(wù)器發(fā)送所述登錄信息到所述單點(diǎn)登錄服務(wù)器。在本發(fā)明所述的松耦合單點(diǎn)登錄的實(shí)現(xiàn)方法中,所述步驟C2)進(jìn)一步包括如下步 驟
C21)取得在所述單點(diǎn)登錄服務(wù)器上注冊(cè)的單點(diǎn)登錄名稱; C22)取得在所述業(yè)務(wù)服務(wù)器上注冊(cè)的登錄名稱;
C23)將所述業(yè)務(wù)服務(wù)器編號(hào)、所述單點(diǎn)登錄名稱和所述業(yè)務(wù)服務(wù)器上注冊(cè)的登錄名稱 存儲(chǔ)在同一關(guān)聯(lián)列表內(nèi),并存儲(chǔ)所述關(guān)聯(lián)列表。在本發(fā)明所述的松耦合單點(diǎn)登錄的實(shí)現(xiàn)方法中,所述步驟C3)進(jìn)一步包括如下步 驟
C31)取出在其上注冊(cè)的單點(diǎn)登錄名稱;
C32)查找所述單點(diǎn)登錄名稱及所述業(yè)務(wù)服務(wù)器上注冊(cè)的登錄名稱對(duì)應(yīng)的關(guān)聯(lián)列表; C33)將所述關(guān)聯(lián)列表發(fā)送到所述業(yè)務(wù)服務(wù)器。在本發(fā)明所述的松耦合單點(diǎn)登錄的實(shí)現(xiàn)方法中,所述步驟D)進(jìn)一步包括如下步 驟
Dl)所述業(yè)務(wù)服務(wù)器依據(jù)所述關(guān)聯(lián)列表生成登錄鏈接,連接所述單點(diǎn)登錄器; D2)所述單點(diǎn)登錄服務(wù)器驗(yàn)證所述登錄鏈接內(nèi)容,并返回與所述登錄鏈接內(nèi)容相關(guān)的 關(guān)聯(lián);
D3)所述業(yè)務(wù)服務(wù)器驗(yàn)證所述關(guān)聯(lián)內(nèi)容,并存儲(chǔ)該關(guān)聯(lián)內(nèi)容。在本發(fā)明所述的松耦合單點(diǎn)登錄的實(shí)現(xiàn)方法中,還包括如下步驟用戶在任意一 個(gè)業(yè)務(wù)服務(wù)器上注冊(cè)時(shí),所述單點(diǎn)登錄服務(wù)器根據(jù)其存儲(chǔ)的關(guān)聯(lián)列表對(duì)用戶在所述業(yè)務(wù)系 統(tǒng)中注冊(cè)的用戶名進(jìn)行唯一性驗(yàn)證。在本發(fā)明所述的松耦合單點(diǎn)登錄的實(shí)現(xiàn)方法中,所述關(guān)聯(lián)列表內(nèi)容包括具有關(guān)聯(lián) 關(guān)系的單點(diǎn)登錄服務(wù)器注冊(cè)名稱、業(yè)務(wù)服務(wù)器登錄名稱、業(yè)務(wù)服務(wù)器編號(hào)、關(guān)聯(lián)關(guān)系的有效 時(shí)間長(zhǎng)度及隨機(jī)數(shù)。本發(fā)明還揭示了一種實(shí)現(xiàn)松耦合單點(diǎn)登錄的系統(tǒng),包括單點(diǎn)登錄服務(wù)器和多個(gè)業(yè) 務(wù)服務(wù)器,所述單點(diǎn)登錄服務(wù)器包括用于產(chǎn)生關(guān)聯(lián)列表的關(guān)聯(lián)生成裝置和用于應(yīng)答所述業(yè) 務(wù)服務(wù)器發(fā)出的、由轉(zhuǎn)向鏈接產(chǎn)生的登錄鏈接訪問(wèn)的轉(zhuǎn)向鏈接應(yīng)答裝置;所述業(yè)務(wù)服務(wù)器 分別包括用于判斷在所述業(yè)務(wù)服務(wù)器中是否有關(guān)聯(lián)列表的判斷裝置和依據(jù)所述關(guān)聯(lián)列表 生成轉(zhuǎn)向鏈接的轉(zhuǎn)向鏈接生成裝置。在本發(fā)明所述的系統(tǒng)中,所述關(guān)聯(lián)生成裝進(jìn)一步置包括用于取得所述用戶在所 述單點(diǎn)登錄服務(wù)器上注冊(cè)的單點(diǎn)登錄名稱的單點(diǎn)登錄名稱取得單元、用于取得所述用戶在所述業(yè)務(wù)服務(wù)器上注冊(cè)的登錄名稱的業(yè)務(wù)登錄名稱取得單元和用于將所述業(yè)務(wù)服務(wù)器編 號(hào)、所述單點(diǎn)登錄名稱和所述業(yè)務(wù)服務(wù)器上注冊(cè)的登錄名稱存儲(chǔ)在同一關(guān)聯(lián)列表內(nèi),并存 儲(chǔ)所述關(guān)聯(lián)列表的關(guān)聯(lián)單元。在本發(fā)明所述的系統(tǒng)中,所述轉(zhuǎn)向鏈接應(yīng)答裝置進(jìn)一步包括用于查找所述單點(diǎn) 登錄名稱及所述業(yè)務(wù)服務(wù)器上注冊(cè)的登錄名稱對(duì)應(yīng)的關(guān)聯(lián)列表的關(guān)聯(lián)列表查找單元以及 用于將所述關(guān)聯(lián)列表發(fā)送到所述業(yè)務(wù)服務(wù)器的關(guān)聯(lián)列表發(fā)送單元。在本發(fā)明所述的系統(tǒng)中,所述單點(diǎn)登錄服務(wù)器還包括用于根據(jù)其存儲(chǔ)的關(guān)聯(lián)列表 對(duì)用戶在所述業(yè)務(wù)系統(tǒng)中注冊(cè)的用戶名進(jìn)行唯一性驗(yàn)證的用戶名稱驗(yàn)證裝置。在本發(fā)明所述的系統(tǒng)中,所述關(guān)聯(lián)列表包括所述用戶在所述單點(diǎn)登錄服務(wù)器注冊(cè) 的單點(diǎn)登錄名稱、所述用戶在各業(yè)務(wù)服務(wù)器注冊(cè)且與其他登錄名稱不重復(fù)的業(yè)務(wù)登錄名 稱、各業(yè)務(wù)服務(wù)器在所述單點(diǎn)登錄服務(wù)器上的編號(hào)、關(guān)聯(lián)關(guān)系的有效時(shí)間長(zhǎng)度及隨機(jī)數(shù)。實(shí)施本發(fā)明的松耦合單點(diǎn)登錄的實(shí)現(xiàn)方法及其系統(tǒng),具有以下有益效果由于單 點(diǎn)登錄服務(wù)器將單點(diǎn)登錄注冊(cè)名稱及其在各業(yè)務(wù)服務(wù)器上登錄的本地登錄名稱關(guān)聯(lián)并發(fā) 送到用戶登錄的業(yè)務(wù)服務(wù)器,各業(yè)務(wù)服務(wù)器據(jù)此產(chǎn)生轉(zhuǎn)向鏈接,在用戶再次請(qǐng)求登錄其他 業(yè)務(wù)服務(wù)器時(shí)直接由上述單點(diǎn)登錄服務(wù)器取得所述單點(diǎn)登錄注冊(cè)名稱與該其他業(yè)務(wù)服務(wù) 器本地登錄名稱之間的對(duì)應(yīng)關(guān)系,因此可以不需要每次都要在SSO Server端鑒權(quán)認(rèn)證,這 樣就極大的減輕了 SSO Server的壓力,解除了對(duì)SSO Server的依賴。
圖1是本發(fā)明松耦合單點(diǎn)登錄的實(shí)現(xiàn)方法及其系統(tǒng)實(shí)施例實(shí)現(xiàn)方法中用戶在各 業(yè)務(wù)服務(wù)器上首次登錄的流程圖2是所述實(shí)施例實(shí)現(xiàn)方法中用戶再次登錄業(yè)務(wù)服務(wù)器的流程圖; 圖3是所述實(shí)施例系統(tǒng)結(jié)構(gòu)示意圖; 圖4是所述實(shí)施例系統(tǒng)中單點(diǎn)登錄服務(wù)器結(jié)構(gòu)示意圖。
具體實(shí)施例方式下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施例作進(jìn)一步說(shuō)明。在本發(fā)明松耦合單點(diǎn)登錄的實(shí)現(xiàn)方法及其系統(tǒng)實(shí)施例中,用戶首先需要在系統(tǒng)中 的單點(diǎn)登錄服務(wù)器注冊(cè)以及在系統(tǒng)中的各業(yè)務(wù)服務(wù)器中以不同的本地登錄名注冊(cè),用戶同 時(shí)需要分別登錄各業(yè)務(wù)服務(wù)器,便于在單點(diǎn)登錄服務(wù)器中留下用戶在不同的業(yè)務(wù)服務(wù)器中 的本地登錄名稱。這里所說(shuō)的業(yè)務(wù)服務(wù)器與通常的、一般的服務(wù)器具有一定的區(qū)別,業(yè)務(wù)服 務(wù)器為實(shí)現(xiàn)一個(gè)單獨(dú)的業(yè)務(wù)系統(tǒng)的服務(wù)器,其相對(duì)獨(dú)立,具有獨(dú)立的用戶管理和權(quán)限管理、 以及內(nèi)部的登錄認(rèn)證功能,業(yè)務(wù)系統(tǒng)通過(guò)SSO client API實(shí)現(xiàn)業(yè)務(wù)系統(tǒng)的切換功能。上述 業(yè)務(wù)服務(wù)器都有各自的數(shù)據(jù)庫(kù)存放用戶信息。其用戶的注冊(cè),登錄信息都是直接在業(yè)務(wù)系 統(tǒng)(位于上述相應(yīng)的業(yè)務(wù)服務(wù)器上)中保存。在本實(shí)施例中,這些業(yè)務(wù)服務(wù)器包括iEPG、BMS、 CMS系統(tǒng)等等,其中每個(gè)業(yè)務(wù)系統(tǒng)在一個(gè)業(yè)務(wù)服務(wù)器上。當(dāng)用戶某一業(yè)務(wù)服務(wù)器A中登錄在 系統(tǒng)中的其他任意某業(yè)務(wù)服務(wù)器B時(shí),是以用戶在該業(yè)務(wù)服務(wù)器A中注冊(cè)的本地登錄名稱 來(lái)登錄的,除了業(yè)務(wù)服務(wù)器A需要驗(yàn)證該本地登錄名是已經(jīng)注冊(cè)的合法用戶外,還需要驗(yàn) 證該本地登錄名稱對(duì)應(yīng)的用戶是否為已經(jīng)在單點(diǎn)登錄服務(wù)器注冊(cè)的合法用戶。因此,除了該業(yè)務(wù)服務(wù)器需要驗(yàn)證該本地登錄名稱外,還需要在上述單點(diǎn)登錄服務(wù)器上驗(yàn)證該本地登 錄名稱對(duì)應(yīng)的單點(diǎn)登錄注冊(cè)名稱,所以業(yè)務(wù)服務(wù)器需要將在其上登錄的用戶的本地登錄名 稱發(fā)送到單點(diǎn)登錄服務(wù)器,用于供單點(diǎn)登錄服務(wù)器驗(yàn)證其是否為在單點(diǎn)登錄服務(wù)器上注冊(cè) 的用戶。在本實(shí)施例中對(duì)于登錄步驟的描述中,為簡(jiǎn)單起見(jiàn),設(shè)置登錄的用戶都已在相應(yīng)的 業(yè)務(wù)服務(wù)器注冊(cè)。在本實(shí)施例中,用戶登錄業(yè)務(wù)服務(wù)器時(shí)需要輸入其在該業(yè)務(wù)服務(wù)器上注冊(cè)的本地 登錄名稱和密碼,此時(shí),該業(yè)務(wù)服務(wù)器首先需要判斷該服務(wù)器中是否存在與該本地登錄名 稱有關(guān)的關(guān)聯(lián)列表,如果有,表明該用戶并非首次登錄,其登錄的步驟參見(jiàn)圖2 ;如果沒(méi)有, 表明該用戶是首次登錄,其登錄步驟參見(jiàn)圖1。在圖1中,用戶的登錄包括如下步驟
步驟S201登錄在本步驟中,用戶向其希望登錄的業(yè)務(wù)服務(wù)器提交注冊(cè)的本地登錄 名稱和密碼,請(qǐng)求登錄到該業(yè)務(wù)服務(wù)器。步驟S202驗(yàn)證用戶信息業(yè)務(wù)服務(wù)器由其自身具有的存儲(chǔ)裝置中(具體而言,是 該業(yè)務(wù)服務(wù)器所具有的數(shù)據(jù)庫(kù)中)取出在該業(yè)務(wù)服務(wù)器上注冊(cè)的登錄名稱,查找上述用戶 提交的本地登錄名稱,并在找到該名稱后驗(yàn)證其密碼。步驟S203標(biāo)記在本步驟中,當(dāng)上述本地登錄名稱及其密碼被驗(yàn)證后,業(yè)務(wù)服務(wù) 器對(duì)本次登錄的信息做出標(biāo)記。步驟S204驗(yàn)證用戶在本步驟中,業(yè)務(wù)服務(wù)器將上述經(jīng)過(guò)標(biāo)記的登錄信息發(fā)送 到單點(diǎn)登錄服務(wù)器,用于供上述單點(diǎn)登錄服務(wù)器驗(yàn)證該登錄的用戶是否在單點(diǎn)登錄服務(wù)器 上注冊(cè)。如果在單點(diǎn)登錄服務(wù)器上查找不到該用戶的注冊(cè)名稱,則該用戶對(duì)于系統(tǒng)而言是 非法用戶;如果找到該用戶在上述單點(diǎn)登錄服務(wù)器上的注冊(cè)名,則將上述業(yè)務(wù)服務(wù)器編號(hào)、 該用戶的單點(diǎn)登錄用戶名和該用戶在業(yè)務(wù)服務(wù)器上注冊(cè)的用戶名存儲(chǔ)在同一關(guān)聯(lián)列表內(nèi), 也就是形成該客戶的關(guān)聯(lián)。此外,在本實(shí)施例中,用戶每次注冊(cè)一個(gè)業(yè)務(wù)系統(tǒng)的用戶名時(shí), 都會(huì)在單點(diǎn)登錄服務(wù)器上添加該用戶的單點(diǎn)登錄用戶名(即SSO-username)、該業(yè)務(wù)服務(wù)器 編號(hào)和該用戶在該業(yè)務(wù)服務(wù)系統(tǒng)上注冊(cè)的用戶名,形成關(guān)聯(lián)列表并保存該關(guān)聯(lián)列表;這樣, 在用戶每次注冊(cè)時(shí),單點(diǎn)登錄服務(wù)器都會(huì)根據(jù)關(guān)聯(lián)列表對(duì)用戶在業(yè)務(wù)系統(tǒng)中注冊(cè)的用戶名 進(jìn)行唯一性驗(yàn)證,如果單點(diǎn)登錄服務(wù)器發(fā)現(xiàn)存在相同的用戶名,則不允許注冊(cè)。步驟S205保存關(guān)聯(lián)存儲(chǔ)上述步驟中得到的關(guān)聯(lián),也就是將上述步驟中得到的 關(guān)聯(lián)列表存儲(chǔ)在單點(diǎn)登錄服務(wù)器中;在本實(shí)施例中,將上述關(guān)聯(lián)存儲(chǔ)在所述單點(diǎn)登錄服務(wù) 器的數(shù)據(jù)庫(kù)中。步驟S206返回登錄成功信息在本步驟中,單點(diǎn)登錄服務(wù)器返回驗(yàn)證用戶的結(jié) 果到業(yè)務(wù)服務(wù)器。步驟S207保存會(huì)話信息業(yè)務(wù)服務(wù)器存儲(chǔ)上述會(huì)話信息,記錄上述用戶驗(yàn)證的結(jié)果。步驟S208生成轉(zhuǎn)向鏈接在本步驟中,業(yè)務(wù)服務(wù)器生成轉(zhuǎn)向鏈接。在本實(shí)施例 中,一個(gè)轉(zhuǎn)向鏈接的例子如下http//ssoserver/validate. action SSOUserNam e=xxx&appName=xxx&timeout=xxx&token=xxx&securitycode=xxx (),其中 ssoserver 代表 單點(diǎn)登陸服務(wù)器地址,validate, action是請(qǐng)求的動(dòng)作;?SSOUserName=xxx&appName=xxx&t imeout=xxx&token=xxx&securitycode=xxx 是發(fā)出這次請(qǐng)求所帶的參數(shù),SSOUserName 登 陸用戶名,appName是應(yīng)用名,timeout失效時(shí)長(zhǎng),token用戶令牌,securitycode安全碼(隨機(jī)數(shù))等等,在本實(shí)施例中,轉(zhuǎn)向鏈接的作用是通過(guò)該鏈接可以成功轉(zhuǎn)到相應(yīng)的應(yīng)用服 務(wù)器。步驟S209查詢用戶權(quán)限業(yè)務(wù)服務(wù)器通過(guò)上述轉(zhuǎn)向鏈接,訪問(wèn)單點(diǎn)登錄服務(wù)器, 由于上述轉(zhuǎn)向鏈接中帶有具體的登錄名稱,所以,在本步驟中,通過(guò)連接到單點(diǎn)登錄服務(wù)器 來(lái)查詢使用該登錄名稱的用戶在上述業(yè)務(wù)服務(wù)器中的訪問(wèn)權(quán)限。步驟S210返回關(guān)聯(lián)列表在本步驟中,單點(diǎn)登錄服務(wù)器依據(jù)上述查詢的用戶權(quán) 限,得到該用戶的關(guān)聯(lián)列表,并將該關(guān)聯(lián)列表返回到上述業(yè)務(wù)服務(wù)器。值得一提的是,一個(gè) 業(yè)務(wù)服務(wù)器自然不太可能只有一個(gè)用戶登錄,因此,一段時(shí)間之后,任何一個(gè)業(yè)務(wù)服務(wù)器都 需要保存從上述單點(diǎn)登錄服務(wù)器返回的、多個(gè)用戶的關(guān)聯(lián)列表,這些多個(gè)關(guān)聯(lián)列表在保存 在同一個(gè)業(yè)務(wù)服務(wù)器上,就形成了該服務(wù)器的本地列表。步驟S211保存訪問(wèn)鏈接業(yè)務(wù)服務(wù)器接收并保存上述關(guān)聯(lián)列表,在本實(shí)施例中, 上述關(guān)聯(lián)列表以訪問(wèn)鏈接的形式存儲(chǔ)在該業(yè)務(wù)服務(wù)器中。其主要用于服務(wù)器驗(yàn)證用戶信 息,然后保存用戶狀態(tài)和訪問(wèn)鏈接。步驟S212登錄成功在本步驟中,業(yè)務(wù)服務(wù)器返回用戶登錄成功的信息。上述步驟描述了用戶初次登陸業(yè)務(wù)服務(wù)器的流程,這些流程不僅驗(yàn)證了用戶的登 錄信息,而且,在此基礎(chǔ)上,還形成了單點(diǎn)登錄服務(wù)器上注冊(cè)的登錄名稱及業(yè)務(wù)服務(wù)器上注 冊(cè)的本地登錄名稱之間的關(guān)聯(lián)列表,使得當(dāng)該用戶由已經(jīng)進(jìn)行了登錄的其他業(yè)務(wù)服務(wù)器跳 轉(zhuǎn)到該業(yè)務(wù)服務(wù)器時(shí),可以直接依據(jù)這些數(shù)據(jù)生成登錄鏈接,在上述單點(diǎn)登錄服務(wù)器上直 接查找該本地登錄名稱對(duì)應(yīng)的關(guān)聯(lián),并在該業(yè)務(wù)服務(wù)器上驗(yàn)證被單點(diǎn)登錄服務(wù)器發(fā)送來(lái)的 信息,進(jìn)而達(dá)到直接登錄到另一業(yè)務(wù)服務(wù)器的效果。如圖2所示,當(dāng)用戶由已經(jīng)進(jìn)行了登錄 的其他業(yè)務(wù)服務(wù)器跳轉(zhuǎn)到另一業(yè)務(wù)服務(wù)器時(shí),其登錄包括如下步驟
步驟S301發(fā)出登錄請(qǐng)求在本步驟中,用戶發(fā)出登錄請(qǐng)求,該請(qǐng)求同樣包括用戶登錄 該業(yè)務(wù)服務(wù)器的登錄名稱和密碼。步驟S302生成登錄鏈接業(yè)務(wù)服務(wù)器在查找到存儲(chǔ)在其數(shù)據(jù)庫(kù)中的關(guān)聯(lián)列表 后,判斷本次登錄并不是該用戶在該業(yè)務(wù)服務(wù)器上的首次登錄,于是,依據(jù)上述關(guān)聯(lián)列表生 成登錄鏈接。步驟S303登錄鏈接驗(yàn)證在本步驟中,業(yè)務(wù)服務(wù)器通過(guò)上述步驟中生成的登錄 鏈接訪問(wèn)單點(diǎn)登錄服務(wù)器,驗(yàn)證該登錄鏈接,也就是驗(yàn)證該登錄鏈接中的內(nèi)容。步驟S306返回關(guān)聯(lián)由于該用戶并不是首先登錄該業(yè)務(wù)服務(wù)器,因此,在單點(diǎn)登 錄服務(wù)器中,存儲(chǔ)有上次該用戶訪問(wèn)該業(yè)務(wù)服務(wù)器時(shí)得到的關(guān)聯(lián)列表,在本步驟中,單點(diǎn)登 錄服務(wù)器就是依據(jù)登錄鏈接的內(nèi)容,查找到該關(guān)聯(lián)列表,并將該關(guān)聯(lián)列表發(fā)送到該業(yè)務(wù)服 務(wù)器。步驟S306驗(yàn)證信息業(yè)務(wù)服務(wù)器接收到上述關(guān)聯(lián)后,雖然單點(diǎn)登錄服務(wù)器已經(jīng) 進(jìn)行驗(yàn)證,但只是驗(yàn)證了關(guān)聯(lián),所以,在本步驟中,業(yè)務(wù)服務(wù)器還需要對(duì)上述登錄請(qǐng)求進(jìn)行 業(yè)務(wù)服務(wù)器登錄信息的驗(yàn)證,即將用戶輸入的登錄名稱及密碼與存儲(chǔ)在該服務(wù)器數(shù)據(jù)庫(kù)中 的登錄名稱及密碼對(duì)照。步驟S307保存會(huì)話在本步驟中,業(yè)務(wù)服務(wù)器保存上述會(huì)話。當(dāng)單點(diǎn)登錄服務(wù)器 發(fā)送關(guān)聯(lián)到業(yè)務(wù)服務(wù)器后,存儲(chǔ)在本地的關(guān)聯(lián)列表也需要更新。這一過(guò)程就是在本步驟中 完成的。
步驟S308轉(zhuǎn)向登錄成功在本步驟中,業(yè)務(wù)服務(wù)器返回用戶登錄成功的信息。由上述流程的描述可以看出,用戶再次登錄業(yè)務(wù)系統(tǒng)時(shí)其操作步驟較為簡(jiǎn)單。所 以,登錄驗(yàn)證對(duì)于上述單點(diǎn)登錄服務(wù)器的影響較小,依賴性也較低。在本實(shí)施例中,關(guān)聯(lián)的內(nèi)容并不是僅僅包括單點(diǎn)登錄服務(wù)器注冊(cè)名稱、業(yè)務(wù)服務(wù) 器登錄名稱、業(yè)務(wù)服務(wù)器編號(hào),作為一種較為靈活的設(shè)計(jì),上述關(guān)聯(lián)內(nèi)容還可以包括其他參 數(shù),例如關(guān)聯(lián)關(guān)系的有效時(shí)間長(zhǎng)度及隨機(jī)數(shù)等等。通過(guò)上面的描述可知,當(dāng)用戶第一次請(qǐng)求登陸時(shí),應(yīng)用系統(tǒng)內(nèi)部驗(yàn)證登陸信息,并 做標(biāo)記,然后請(qǐng)求OSS krver驗(yàn)證,并保存這種關(guān)聯(lián)關(guān)系(即SSO krver用戶與應(yīng)用系統(tǒng) 用戶的關(guān)聯(lián)關(guān)系),生成有效時(shí)長(zhǎng),隨機(jī)數(shù)等信息,返回給應(yīng)用系統(tǒng),應(yīng)用系統(tǒng)把這些信息保 存在會(huì)話當(dāng)中,然后生成轉(zhuǎn)向鏈接,到SSO krver端查詢相關(guān)用戶關(guān)聯(lián)信息,然后保存帶參 數(shù)的URL等轉(zhuǎn)向鏈接信息列表,并返回用戶登陸成功;當(dāng)用戶登陸成功后,在另一個(gè)系統(tǒng)再 次請(qǐng)求登陸時(shí),應(yīng)用系統(tǒng)生成登陸鏈接后,直接去OSS krver端查詢關(guān)聯(lián)關(guān)系,然后根據(jù)這 個(gè)關(guān)聯(lián)關(guān)系,找到相應(yīng)的用戶,然后返回跳轉(zhuǎn)URL,應(yīng)用系統(tǒng)同樣更新本地列表,然后返回登 陸成功。本發(fā)明還揭示了一種實(shí)現(xiàn)上述松耦合單點(diǎn)登錄的系統(tǒng),如圖3所示,該系統(tǒng)包括 單點(diǎn)登錄服務(wù)器和多個(gè)業(yè)務(wù)服務(wù)器,在圖3中,應(yīng)用系統(tǒng)01、應(yīng)用系統(tǒng)02、應(yīng)用系統(tǒng)03均為 業(yè)務(wù)服務(wù)器,而SSO krver為單點(diǎn)登錄服務(wù)器,上述各服務(wù)器分別連接,且各服務(wù)器均設(shè)置 有數(shù)據(jù)庫(kù)(圖3中標(biāo)記為DB部分),用于存儲(chǔ)數(shù)據(jù)或參數(shù),在本實(shí)施例中,上述數(shù)據(jù)庫(kù)存儲(chǔ) 登錄名稱、密碼或關(guān)聯(lián)表等等。在圖3中,上述各應(yīng)用系統(tǒng)中存儲(chǔ)的登錄名稱、密碼或關(guān)聯(lián) 表在其各自存儲(chǔ)的數(shù)據(jù)庫(kù)中的具體的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)或其數(shù)據(jù)結(jié)構(gòu)分別被示意性的顯示在 圖3中的各數(shù)據(jù)庫(kù)(DB)之下的框中。在本實(shí)施例中,各業(yè)務(wù)服務(wù)器還分別包括依據(jù)關(guān)聯(lián)生 成轉(zhuǎn)向鏈接的轉(zhuǎn)向鏈接生成裝置(圖中未示出)以及用于判斷在業(yè)務(wù)服務(wù)器中是否有關(guān)聯(lián) 列表的判斷裝置(圖中未示出)。圖4示出了本實(shí)施例中單點(diǎn)登錄服務(wù)器的結(jié)構(gòu)示意圖,在圖4中,單點(diǎn)登錄服務(wù)器 4包括關(guān)聯(lián)生成裝置41、轉(zhuǎn)向鏈接應(yīng)答裝置42、數(shù)據(jù)庫(kù)43以及用戶名稱驗(yàn)證裝置44 ;其中, 關(guān)聯(lián)生成裝置41、轉(zhuǎn)向鏈接應(yīng)答裝置42以及用戶名稱驗(yàn)證裝置44分別與數(shù)據(jù)庫(kù)43連接, 便于其由數(shù)據(jù)庫(kù)43中取得數(shù)據(jù);關(guān)聯(lián)生成裝置41用于產(chǎn)生關(guān)聯(lián)列表,其進(jìn)一步包括單點(diǎn) 登錄名稱取得單元411、業(yè)務(wù)登錄名稱取得單元412以及關(guān)聯(lián)單元413 ;在關(guān)聯(lián)生成裝置41 中,單點(diǎn)登錄名稱取得單元411用于取得用戶在單點(diǎn)登錄服務(wù)器4上注冊(cè)的單點(diǎn)登錄名稱, 業(yè)務(wù)登錄名稱取得單元412用于取得用戶在該業(yè)務(wù)服務(wù)器上注冊(cè)的登錄名稱,而關(guān)聯(lián)單元 413用于將該業(yè)務(wù)服務(wù)器編號(hào)、該用戶單點(diǎn)登錄名稱和該用戶在業(yè)務(wù)服務(wù)器上注冊(cè)的登錄 名稱存儲(chǔ)在同一關(guān)聯(lián)列表內(nèi),并存儲(chǔ)該關(guān)聯(lián)列表。在關(guān)聯(lián)列表中,其內(nèi)容除了包括上述用戶 在單點(diǎn)登錄服務(wù)器4注冊(cè)的單點(diǎn)登錄名稱、所述用戶在各業(yè)務(wù)服務(wù)器注冊(cè)且與其他登錄名 稱不重復(fù)的業(yè)務(wù)登錄名稱外,還包括各業(yè)務(wù)服務(wù)器在所述單點(diǎn)登錄服務(wù)器上的編號(hào)、關(guān)聯(lián) 關(guān)系的有效時(shí)間長(zhǎng)度及隨機(jī)數(shù)等。轉(zhuǎn)向鏈接應(yīng)答裝置42用于應(yīng)答所述業(yè)務(wù)服務(wù)器發(fā)出的、 由轉(zhuǎn)向鏈接產(chǎn)生的登錄鏈接訪問(wèn);轉(zhuǎn)向鏈接應(yīng)答裝置42進(jìn)一步包括關(guān)聯(lián)列表查找單元421 和關(guān)聯(lián)列表發(fā)送單元422,其中關(guān)聯(lián)列表查找單元421用于查找單點(diǎn)登錄名稱及所述業(yè)務(wù) 服務(wù)器上注冊(cè)的登錄名稱對(duì)應(yīng)的關(guān)聯(lián)列表;而關(guān)聯(lián)列表發(fā)送單元422用于將上述查找到的 關(guān)聯(lián)列表發(fā)送到業(yè)務(wù)服務(wù)器的。
此外,在本實(shí)施例中,上述單點(diǎn)登錄服務(wù)器4還包括用戶名稱驗(yàn)證裝置44,用戶名 稱驗(yàn)證裝置44用于根據(jù)其存儲(chǔ)的關(guān)聯(lián)列表對(duì)用戶在所述業(yè)務(wù)系統(tǒng)中注冊(cè)的用戶名進(jìn)行唯 一性驗(yàn)證,如該用戶名是唯一的,則允許其注冊(cè),否則,不予注冊(cè)。。以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并 不能因此而理解為對(duì)本發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對(duì)于本領(lǐng)域的普通技術(shù)人員 來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保 護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。
權(quán)利要求
1.一種松耦合單點(diǎn)登錄的實(shí)現(xiàn)方法,其特征在于,包括如下步驟A)業(yè)務(wù)服務(wù)器獲取用戶發(fā)出的、對(duì)于其他業(yè)務(wù)服務(wù)器的登錄請(qǐng)求;B)判斷在所述業(yè)務(wù)服務(wù)器中是否有關(guān)聯(lián)列表,如無(wú),執(zhí)行步驟C);如有,執(zhí)行步驟D), 所述關(guān)聯(lián)列表包括具有關(guān)聯(lián)關(guān)系的單點(diǎn)登錄服務(wù)器的用戶名、業(yè)務(wù)服務(wù)器的用戶名和業(yè)務(wù) 服務(wù)器編號(hào);C)驗(yàn)證所述登錄請(qǐng)求中用戶信息的合法性,如通過(guò)則登錄所述業(yè)務(wù)服務(wù)器,所述業(yè)務(wù) 服務(wù)器發(fā)送登錄信息到單點(diǎn)登錄服務(wù)器,驗(yàn)證用戶,取得該用戶對(duì)于所述業(yè)務(wù)服務(wù)器的關(guān) 聯(lián)列表,生成并存儲(chǔ)轉(zhuǎn)向鏈接,并返回登錄的結(jié)果;D)驗(yàn)證所述登錄請(qǐng)求中用戶信息的合法性,如通過(guò)則所述業(yè)務(wù)服務(wù)器發(fā)送由所述關(guān)聯(lián) 列表而得的轉(zhuǎn)向鏈接所生成的登錄鏈接到所述單點(diǎn)登錄服務(wù)器,查找所述用戶與所述業(yè)務(wù) 服務(wù)器的關(guān)聯(lián)列表并返回,更新所述業(yè)務(wù)服務(wù)器的本地列表,并返回登錄的結(jié)果。
2.根據(jù)權(quán)利要求1所述的松耦合單點(diǎn)登錄的實(shí)現(xiàn)方法,其特征在于,所述步驟C)進(jìn)一 步包括如下步驟Cl)登錄所述業(yè)務(wù)服務(wù)器,所述業(yè)務(wù)服務(wù)器驗(yàn)證所述登錄信息并將其發(fā)送到所述單點(diǎn) 登錄服務(wù)器;C2)所述單點(diǎn)登錄服務(wù)器驗(yàn)證所述登錄信息,形成關(guān)聯(lián),并返回所述業(yè)務(wù)服務(wù)器登錄的結(jié)果;C3)所述業(yè)務(wù)服務(wù)器生成轉(zhuǎn)向鏈接訪問(wèn)所述單點(diǎn)登錄服務(wù)器,取得關(guān)聯(lián)列表返回;C4 )所述業(yè)務(wù)服務(wù)器生成訪問(wèn)鏈接,并返回登錄的結(jié)果。
3.根據(jù)權(quán)利要求2所述的松耦合單點(diǎn)登錄的實(shí)現(xiàn)方法,其特征在于,所述步驟Cl)進(jìn)一 步包括如下步驟CiD以在所述業(yè)務(wù)服務(wù)器注冊(cè)的本地登錄名稱登錄所述業(yè)務(wù)服務(wù)器;C12)所述業(yè)務(wù)服務(wù)器驗(yàn)證所述登錄信息,對(duì)其做出標(biāo)記;C13)所述業(yè)務(wù)服務(wù)器發(fā)送所述登錄信息到所述單點(diǎn)登錄服務(wù)器。
4.根據(jù)權(quán)利要求3所述的松耦合單點(diǎn)登錄的實(shí)現(xiàn)方法,其特征在于,所述步驟C2)進(jìn)一 步包括如下步驟C21)取得在所述單點(diǎn)登錄服務(wù)器上注冊(cè)的單點(diǎn)登錄名稱;C22)取得在所述業(yè)務(wù)服務(wù)器上注冊(cè)的登錄名稱;C23)將所述業(yè)務(wù)服務(wù)器編號(hào)、所述單點(diǎn)登錄名稱和所述業(yè)務(wù)服務(wù)器上注冊(cè)的登錄名稱 存儲(chǔ)在同一關(guān)聯(lián)列表內(nèi),并存儲(chǔ)所述關(guān)聯(lián)列表。
5.根據(jù)權(quán)利要求4所述的松耦合單點(diǎn)登錄的實(shí)現(xiàn)方法,其特征在于,所述步驟C3)進(jìn)一 步包括如下步驟C31)取出所述用戶在其上注冊(cè)的單點(diǎn)登錄名稱;C32)查找所述單點(diǎn)登錄名稱及所述業(yè)務(wù)服務(wù)器上注冊(cè)的登錄名稱對(duì)應(yīng)的關(guān)聯(lián)列表;C33)將所述關(guān)聯(lián)列表發(fā)送到所述業(yè)務(wù)服務(wù)器。
6.根據(jù)權(quán)利要求5所述的松耦合單點(diǎn)登錄的實(shí)現(xiàn)方法,其特征在于,所述步驟D)進(jìn)一 步包括如下步驟Dl)所述業(yè)務(wù)服務(wù)器依據(jù)所述關(guān)聯(lián)列表生成登錄鏈接,連接所述單點(diǎn)登錄服務(wù)器;D2)所述單點(diǎn)登錄服務(wù)器驗(yàn)證所述登錄鏈接內(nèi)容,并返回與所述登錄鏈接內(nèi)容相關(guān)的關(guān)聯(lián);D3)所述業(yè)務(wù)服務(wù)器驗(yàn)證所述關(guān)聯(lián)內(nèi)容,并存儲(chǔ)該關(guān)聯(lián)內(nèi)容。
7.根據(jù)權(quán)利要求1-6任意一項(xiàng)所述的松耦合單點(diǎn)登錄的實(shí)現(xiàn)方法,其特征在于,還包 括如下步驟在任意一個(gè)業(yè)務(wù)服務(wù)器上注冊(cè)時(shí),所述單點(diǎn)登錄服務(wù)器根據(jù)其存儲(chǔ)的關(guān)聯(lián)列 表對(duì)用戶在所述業(yè)務(wù)系統(tǒng)中注冊(cè)的用戶名進(jìn)行唯一性驗(yàn)證。
8.根據(jù)權(quán)利要求7所述的松耦合單點(diǎn)登錄的實(shí)現(xiàn)方法,其特征在于,所述關(guān)聯(lián)列表還 包括關(guān)聯(lián)關(guān)系的有效時(shí)間長(zhǎng)度及隨機(jī)數(shù)。
9.一種實(shí)現(xiàn)松耦合單點(diǎn)登錄的系統(tǒng),包括單點(diǎn)登錄服務(wù)器和多個(gè)業(yè)務(wù)服務(wù)器,其特征 在于,所述單點(diǎn)登錄服務(wù)器包括用于產(chǎn)生關(guān)聯(lián)列表的關(guān)聯(lián)生成裝置和用于應(yīng)答所述業(yè)務(wù)服 務(wù)器發(fā)出的、由轉(zhuǎn)向鏈接產(chǎn)生的登錄鏈接訪問(wèn)的轉(zhuǎn)向鏈接應(yīng)答裝置;所述業(yè)務(wù)服務(wù)器分別 包括用于判斷在所述業(yè)務(wù)服務(wù)器中是否有關(guān)聯(lián)列表的判斷裝置和依據(jù)所述關(guān)聯(lián)列表生成 轉(zhuǎn)向鏈接的轉(zhuǎn)向鏈接生成裝置;所述關(guān)聯(lián)列表包括具有關(guān)聯(lián)關(guān)系的單點(diǎn)登錄服務(wù)器的用戶 名、業(yè)務(wù)服務(wù)器的用戶名和業(yè)務(wù)服務(wù)器編號(hào)。
10.根據(jù)權(quán)利要求9所述的實(shí)現(xiàn)松耦合單點(diǎn)登錄的系統(tǒng),其特征在于,所述關(guān)聯(lián)生成裝 進(jìn)一步置包括用于取得所述用戶在所述單點(diǎn)登錄服務(wù)器上注冊(cè)的單點(diǎn)登錄名稱的單點(diǎn)登 錄名稱取得單元、用于取得所述用戶在所述業(yè)務(wù)服務(wù)器上注冊(cè)的登錄名稱的業(yè)務(wù)登錄名稱 取得單元和用于將所述業(yè)務(wù)服務(wù)器編號(hào)、所述單點(diǎn)登錄名稱和所述業(yè)務(wù)服務(wù)器上注冊(cè)的登 錄名稱存儲(chǔ)在同一關(guān)聯(lián)列表內(nèi),并存儲(chǔ)所述關(guān)聯(lián)列表的關(guān)聯(lián)單元。
11.根據(jù)權(quán)利要求10所述的實(shí)現(xiàn)松耦合單點(diǎn)登錄的系統(tǒng),其特征在于,所述轉(zhuǎn)向鏈接 應(yīng)答裝置進(jìn)一步包括用于查找所述單點(diǎn)登錄名稱及所述業(yè)務(wù)服務(wù)器上注冊(cè)的登錄名稱對(duì) 應(yīng)的關(guān)聯(lián)列表的關(guān)聯(lián)列表查找單元以及用于將所述關(guān)聯(lián)列表發(fā)送到所述業(yè)務(wù)服務(wù)器的關(guān) 聯(lián)列表發(fā)送單元。
12.根據(jù)權(quán)利要求10所述的實(shí)現(xiàn)松耦合單點(diǎn)登錄的系統(tǒng),其特征在于,所述單點(diǎn)登錄 服務(wù)器還包括用于根據(jù)其存儲(chǔ)的關(guān)聯(lián)列表對(duì)用戶在所述業(yè)務(wù)系統(tǒng)中注冊(cè)的用戶名進(jìn)行唯 一性驗(yàn)證的用戶名稱驗(yàn)證裝置。
13.根據(jù)權(quán)利要求9-12任意一項(xiàng)所述的實(shí)現(xiàn)松耦合單點(diǎn)登錄的系統(tǒng),其特征在于,所 述關(guān)聯(lián)列表包括所述用戶在所述單點(diǎn)登錄服務(wù)器注冊(cè)的單點(diǎn)登錄名稱、所述用戶在各業(yè)務(wù) 服務(wù)器注冊(cè)且與其他登錄名稱不重復(fù)的業(yè)務(wù)登錄名稱、各業(yè)務(wù)服務(wù)器在所述單點(diǎn)登錄服務(wù) 器上的編號(hào)、關(guān)聯(lián)關(guān)系的有效時(shí)間長(zhǎng)度及隨機(jī)數(shù)。
全文摘要
本發(fā)明涉及一種松耦合單點(diǎn)登錄的實(shí)現(xiàn)方法,包括如下步驟首次登錄業(yè)務(wù)服務(wù)器時(shí),所述業(yè)務(wù)服務(wù)器發(fā)送登錄信息到單點(diǎn)登錄服務(wù)器,驗(yàn)證用戶,取得該用戶對(duì)于所述業(yè)務(wù)服務(wù)器的關(guān)聯(lián)列表,生成并存儲(chǔ)轉(zhuǎn)向鏈接,并返回用戶登錄的結(jié)果;再次登錄所述業(yè)務(wù)服務(wù)器時(shí),所述業(yè)務(wù)服務(wù)器發(fā)送由所述轉(zhuǎn)向鏈接生成的登錄鏈接到所述單點(diǎn)登錄服務(wù)器,查找所述用戶與所述業(yè)務(wù)服務(wù)器的關(guān)聯(lián)列表并返回,更新所述業(yè)務(wù)服務(wù)器的連接清單,并返回用戶登錄的結(jié)果。本發(fā)明還涉及一種實(shí)現(xiàn)松耦合單點(diǎn)登錄的系統(tǒng)。實(shí)施本發(fā)明的松耦合單點(diǎn)登錄的實(shí)現(xiàn)方法及其系統(tǒng),具有以下有益效果減輕了SSOServer的壓力,解除了對(duì)SSOServer的依賴。
文檔編號(hào)H04L29/06GK102064941SQ20101050499
公開(kāi)日2011年5月18日 申請(qǐng)日期2010年10月12日 優(yōu)先權(quán)日2010年10月12日
發(fā)明者丁永峰 申請(qǐng)人:深圳市同洲電子股份有限公司