本發(fā)明涉及單點(diǎn)登錄技術(shù)領(lǐng)域,尤其涉及一種采用中間件實(shí)現(xiàn)單點(diǎn)登錄的方法和系統(tǒng)。
背景技術(shù):
單點(diǎn)登錄(Single Sign On),簡(jiǎn)稱(chēng)為SSO,是目前比較流行的企業(yè)業(yè)務(wù)整合的解決方案之一。SSO的定義是指在多個(gè)應(yīng)用系統(tǒng)中,用戶(hù)只需要登錄一次就可以訪問(wèn)所有相互信任的應(yīng)用系統(tǒng)。
現(xiàn)有應(yīng)用系統(tǒng)大多采用BS結(jié)構(gòu),將應(yīng)用系統(tǒng)部署于WEB服務(wù)器上,客戶(hù)端在瀏覽器上通過(guò)http或https進(jìn)行訪問(wèn),http協(xié)議以明文方式發(fā)送內(nèi)容,如果攻擊者截取了Web瀏覽器和服務(wù)器之間的傳輸報(bào)文,就可以直接讀懂其中的信息,因此http傳輸?shù)男畔⒁妆恍孤?、竊?。幌鄬?duì)而言,采用https安全性更可靠些,但必須取得證書(shū),證書(shū)還需要在瀏覽器中進(jìn)行安裝或注冊(cè),這就涉及到安全與證書(shū)警告,同時(shí)一旦擁有證書(shū)即可偽造與破解https傳輸?shù)膬?nèi)容。另外https需要特定的tcp端口(默認(rèn)為433),當(dāng)涉及到跨網(wǎng)或者跨域等訪問(wèn)時(shí),該端口可能被禁用,從而導(dǎo)致該種訪問(wèn)方式失效。
在現(xiàn)有的專(zhuān)利申請(qǐng)中,申請(qǐng)?zhí)枮镃N201310174917.9的專(zhuān)利申請(qǐng)公開(kāi)了一種基于多應(yīng)用系統(tǒng)統(tǒng)一用戶(hù)管理及單點(diǎn)登錄平臺(tái)的實(shí)現(xiàn)方法,它包括統(tǒng)一用戶(hù)管理步驟和單點(diǎn)登錄步驟,當(dāng)平臺(tái)的用戶(hù)信息發(fā)生變動(dòng)時(shí),自動(dòng)發(fā)送用戶(hù)信息到各個(gè)應(yīng)用系統(tǒng);當(dāng)點(diǎn)擊應(yīng)用系統(tǒng)鏈接時(shí),如在平臺(tái)已通過(guò)驗(yàn)證,則無(wú)需輸入密碼直接登入。本發(fā)明能夠整合企業(yè)各個(gè)獨(dú)立存在的現(xiàn)有應(yīng)用系統(tǒng),但這樣的方法仍然難以保證數(shù)據(jù)的安全。申請(qǐng)?zhí)枮镃N201110162876.2的專(zhuān)利申請(qǐng)公開(kāi)了一種單點(diǎn)登錄方法,包括:客戶(hù)端在用戶(hù)登錄后根據(jù)時(shí)間串、隨機(jī)碼和與服務(wù)端共享的共享密鑰生成秘文,并將時(shí)間串、隨機(jī)碼和秘文發(fā)送給服務(wù)端;服務(wù)端根據(jù)接收到的所述時(shí)間串、隨機(jī)碼和共享密鑰生成驗(yàn)證串,以對(duì)用戶(hù)進(jìn)行鑒權(quán),并根據(jù)鑒權(quán)結(jié)果處理用戶(hù)的登錄請(qǐng)求。本發(fā)明還提供了相應(yīng)的系統(tǒng)。
客戶(hù)端在用戶(hù)登錄后,這樣的話(huà),那客戶(hù)端就能隨意地依照規(guī)則生成時(shí)間串、隨機(jī)碼。同時(shí)共享密鑰這種是非常不安全的機(jī)制,且該方法未涉及到用戶(hù)的登錄信息,這樣就意味著任意的用戶(hù)、任意的客戶(hù)端只要通過(guò)享密鑰就可以利用時(shí)間串、隨機(jī)碼生成密文,同時(shí)從其表述可以看出,雖然有密文,但是其時(shí)間串、隨機(jī)碼是與密文一并發(fā)送的,這樣就存在在傳輸過(guò)程中時(shí)間串、隨機(jī)碼很容易被截獲,從而偽造時(shí)間串、隨機(jī)碼、密文來(lái)欺騙服務(wù)端達(dá)到登錄請(qǐng)求,從而使得該方法失效。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)現(xiàn)有技術(shù)中的單點(diǎn)登錄方法或者系統(tǒng)存在要實(shí)現(xiàn)跨域跨系統(tǒng)間的登錄時(shí),在數(shù)據(jù)傳輸過(guò)程中可能被不法分子竊取、篡改,進(jìn)而非法登錄訪問(wèn)的技術(shù)問(wèn)題,本發(fā)明公開(kāi)了一種采用中間件實(shí)現(xiàn)單點(diǎn)登錄的方法。本發(fā)明還公開(kāi)了一種采用中間件實(shí)現(xiàn)單點(diǎn)登錄的系統(tǒng)。
本發(fā)明的具體實(shí)現(xiàn)方式如下:
一種采用中間件實(shí)現(xiàn)單點(diǎn)登錄的方法,其具體包括以下的步驟:當(dāng)判斷用戶(hù)想要通過(guò)瀏覽器從門(mén)戶(hù)系統(tǒng)進(jìn)入應(yīng)用系統(tǒng)時(shí),門(mén)戶(hù)系統(tǒng)上的第一中間件獲取用戶(hù)的參數(shù),并對(duì)用戶(hù)的參數(shù)進(jìn)行動(dòng)態(tài)加密后發(fā)送給目標(biāo)地址對(duì)應(yīng)的應(yīng)用系統(tǒng)的服務(wù)器;應(yīng)用系統(tǒng)的服務(wù)器上的第二中間件對(duì)用戶(hù)的參數(shù)進(jìn)行解密并對(duì)參數(shù)進(jìn)行有效性驗(yàn)證,若無(wú)效,則返回登錄失敗信息;若有效,則驗(yàn)證參數(shù)中的登錄用戶(hù)號(hào)是否已登錄,若已登錄,則返回已登錄信息;若未登錄,則向AD認(rèn)證服務(wù)器申請(qǐng)AD認(rèn)證,若AD認(rèn)證失敗,則返回登錄失敗信息,若AD認(rèn)證成功,則 返回登錄成功信息;當(dāng)判斷登錄用戶(hù)號(hào)已登錄時(shí),將目標(biāo)地址賦值給單點(diǎn)登錄目標(biāo)地址,目標(biāo)地址附加參數(shù)賦值給單點(diǎn)單點(diǎn)登錄參數(shù)屬性,登錄用戶(hù)賦值給單點(diǎn)登錄用戶(hù)號(hào),從而通過(guò)單點(diǎn)登錄實(shí)現(xiàn)應(yīng)用系統(tǒng)的登錄。
更進(jìn)一步地,上述用戶(hù)的參數(shù)至少包括登錄用戶(hù)號(hào)、登錄用戶(hù)AD認(rèn)證碼、轉(zhuǎn)到的目標(biāo)地址和目標(biāo)地址附加參數(shù)。
更進(jìn)一步地,上述第一中間件生成訪問(wèn)隨機(jī)碼,通過(guò)訪問(wèn)隨機(jī)碼對(duì)AD認(rèn)證真實(shí)碼進(jìn)行加密,生成登錄用戶(hù)AD認(rèn)證碼。
更進(jìn)一步地,上述用戶(hù)的參數(shù)通過(guò)控制符進(jìn)行連接并進(jìn)行編碼,獲得單點(diǎn)登錄驗(yàn)證碼。
更進(jìn)一步地,上述的第一中間件生成動(dòng)態(tài)加密碼,通過(guò)動(dòng)態(tài)加密碼將用戶(hù)的參數(shù)進(jìn)行加密,然后發(fā)送給應(yīng)用系統(tǒng)的服務(wù)器進(jìn)行解密驗(yàn)證。
更進(jìn)一步地,在上述參數(shù)中加入時(shí)間戳,并設(shè)定時(shí)間戳的有效時(shí)長(zhǎng)。
更進(jìn)一步地,上述第二中間件對(duì)用戶(hù)的參數(shù)進(jìn)行解密,其具體為第二中間件使用動(dòng)態(tài)加密碼通過(guò)解密將密文變?yōu)槊魑模浣饷芩惴椋号袆e其奇偶性,為偶則采用動(dòng)態(tài)加密碼依次對(duì)參數(shù)內(nèi)容按二進(jìn)制字節(jié)依次進(jìn)行加操作,否則進(jìn)行減操作,然后以分隔符作為分隔還原參數(shù)內(nèi)容。
更進(jìn)一步地,上述對(duì)參數(shù)進(jìn)行有效性驗(yàn)證包括以下至少一個(gè)方面,當(dāng)其中任一個(gè)方面的驗(yàn)證結(jié)果為無(wú)效,則對(duì)參數(shù)進(jìn)行有效性驗(yàn)證的結(jié)果為無(wú)效:
驗(yàn)證參數(shù)類(lèi)別及內(nèi)容是否足夠,若足夠,則有效;
驗(yàn)證參數(shù)類(lèi)型是否正確,若正確,則有效;
將參數(shù)通過(guò)控制符進(jìn)行連接并進(jìn)行編碼后,判斷其是否與所述單點(diǎn)登錄驗(yàn)證碼一致,若一致,則有效;
驗(yàn)證所述請(qǐng)求時(shí)間戳是否在有效時(shí)長(zhǎng)內(nèi),若是,則有效;
驗(yàn)證所述第源應(yīng)用系統(tǒng)編碼是否有權(quán)登錄,若有權(quán),則有效。
更進(jìn)一步地,當(dāng)驗(yàn)證結(jié)果為無(wú)效時(shí),返回登錄失敗信息,該登錄失敗信息先返回到應(yīng)用系統(tǒng)的服務(wù)器上的第二中間件,然后通過(guò)第二中間件發(fā)送給門(mén)戶(hù)系統(tǒng)的服務(wù)器上的第一中間件,再通知門(mén)戶(hù)系統(tǒng)用戶(hù)登錄失敗,禁止登錄。
本發(fā)明還公開(kāi)了一種采用中間件實(shí)現(xiàn)單點(diǎn)登錄的系統(tǒng),其具體包括門(mén)戶(hù)系統(tǒng)的服務(wù)器、應(yīng)用系統(tǒng)的服務(wù)器和AD驗(yàn)證服務(wù)器,所述瀏覽器通過(guò)http協(xié)議與服務(wù)器之間進(jìn)行數(shù)據(jù)交換,所述門(mén)戶(hù)系統(tǒng)的服務(wù)器上運(yùn)行第一中間件,所述應(yīng)用系統(tǒng)的服務(wù)器上運(yùn)行第二中間件,所述AD驗(yàn)證服務(wù)器用于進(jìn)行身份驗(yàn)證;所述第一中間件用于在判斷用戶(hù)想要通過(guò)瀏覽器從門(mén)戶(hù)系統(tǒng)進(jìn)入應(yīng)用系統(tǒng)時(shí),獲取用戶(hù)的參數(shù),并對(duì)用戶(hù)的參數(shù)進(jìn)行動(dòng)態(tài)加密后發(fā)送給目標(biāo)地址對(duì)應(yīng)的應(yīng)用系統(tǒng)的服務(wù)器;所述應(yīng)用系統(tǒng)服務(wù)器上的第二中間件對(duì)用戶(hù)的參數(shù)進(jìn)行解密并對(duì)參數(shù)進(jìn)行有效性驗(yàn)證,若無(wú)效,則返回登錄失敗信息;若有效,則驗(yàn)證參數(shù)中的登錄用戶(hù)號(hào)是否已登錄,若已登錄,則返回已登錄信息;若未登錄,則向AD認(rèn)證服務(wù)器申請(qǐng)AD認(rèn)證,若AD認(rèn)證失敗,則返回登錄失敗信息,若AD認(rèn)證成功,則返回登錄成功信息;當(dāng)判斷登錄用戶(hù)號(hào)已登錄時(shí),將目標(biāo)地址賦值給單點(diǎn)登錄目標(biāo)地址,目標(biāo)地址附加參數(shù)賦值給單點(diǎn)單點(diǎn)登錄參數(shù)屬性,登錄用戶(hù)賦值給單點(diǎn)登錄用戶(hù)號(hào),從而通過(guò)單點(diǎn)登錄實(shí)現(xiàn)應(yīng)用系統(tǒng)的登錄。
通過(guò)采用以上的技術(shù)方案,本發(fā)明具有以下的有益效果:本發(fā)明通過(guò)對(duì)用戶(hù)參數(shù)進(jìn)行加解密使得既能夠通過(guò)http協(xié)議進(jìn)行安全傳輸,同時(shí)提高了跨域跨系統(tǒng)間單點(diǎn)登錄的安全性,通過(guò)參數(shù)驗(yàn)證可以判斷出傳輸數(shù)據(jù)是否被非法分子劫獲或篡改,進(jìn)而阻止非法登錄訪問(wèn)。本申請(qǐng)中的單點(diǎn)登錄是在服務(wù)器端實(shí)現(xiàn)的,而不是在客戶(hù)端(這樣就可以防止客戶(hù)端隨時(shí)偽造時(shí)間串、隨機(jī)碼等信息)。在門(mén)戶(hù)系統(tǒng)服務(wù)器端由服務(wù)器的時(shí)間截、隨機(jī)碼是有本質(zhì)的區(qū)別的。其次,本申請(qǐng)最終生成的單點(diǎn)登所有的參數(shù)信息通過(guò)動(dòng)態(tài)加密后封裝成一個(gè)整體進(jìn)行發(fā)送,就算信息被攔截也不會(huì)被破譯,并不是像現(xiàn)有的將相應(yīng)的參數(shù)進(jìn)行直接發(fā)送,第三, 本申請(qǐng)所述之單點(diǎn)登錄,不僅處理用戶(hù)的登錄請(qǐng)求,同時(shí)還實(shí)現(xiàn)對(duì)用戶(hù)有效性、時(shí)效性進(jìn)行鑒權(quán),在鑒權(quán)通過(guò)后轉(zhuǎn)向到其需要訪問(wèn)的目標(biāo)地址,從而實(shí)現(xiàn)單點(diǎn)登錄。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,應(yīng)當(dāng)理解,以下附圖僅示出了本發(fā)明的某些實(shí)施例,因此不應(yīng)被看作是對(duì)范圍的限定,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他相關(guān)的附圖。
圖1為本發(fā)明的采用中間件實(shí)現(xiàn)單點(diǎn)登錄的方法的流程圖。
圖2為在門(mén)戶(hù)系統(tǒng)和應(yīng)用系統(tǒng)的服務(wù)器上分別運(yùn)行中間件的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,很顯然,下文所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。通常在此處附圖中描述和示出的本發(fā)明實(shí)施例的組件可以以各種不同的配置來(lái)布置和設(shè)計(jì),比如本發(fā)明中的第二系統(tǒng)可以為一個(gè)或者多個(gè),運(yùn)行中間件的可以是門(mén)戶(hù)系統(tǒng),也可以是其他的系統(tǒng)等等之類(lèi)。因此,以下對(duì)在附圖中提供的本發(fā)明的實(shí)施例的詳細(xì)描述并非旨在限制要求保護(hù)的本發(fā)明的范圍,而是僅僅表示本發(fā)明的選定實(shí)施例。基于本發(fā)明的實(shí)施例,本領(lǐng)域技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
在本實(shí)施例中,第一系統(tǒng)為用戶(hù)通過(guò)登錄信息,比如通過(guò)輸入帳號(hào)和密碼直接登錄的系統(tǒng),其驗(yàn)證可以通過(guò)WEB對(duì)應(yīng)的服務(wù)器進(jìn)行驗(yàn)證,也可以通過(guò)專(zhuān)門(mén)的AD認(rèn)證服務(wù)器進(jìn)行認(rèn)證,這屬于現(xiàn)有的常規(guī)方案,不屬于本發(fā)明的重點(diǎn),在此不詳細(xì)描述。
為了符合用戶(hù)的使用習(xí)慣,其第一系統(tǒng)可以為公司的門(mén)戶(hù)系統(tǒng),比如公司的門(mén)戶(hù)網(wǎng)頁(yè),第二系統(tǒng)則為通過(guò)單點(diǎn)登錄方式登錄的其他被門(mén)戶(hù)系統(tǒng)信任的應(yīng)用系統(tǒng),在實(shí)際應(yīng)用中,第二系統(tǒng)可以為一個(gè)或者多個(gè),每個(gè)第二系統(tǒng)與第一系統(tǒng)之間的信號(hào)傳輸關(guān)系相同,具體的單點(diǎn)登錄方式也相同,為了便于描述,下面僅以一個(gè)第二系統(tǒng)為例進(jìn)行說(shuō)明。
如圖1所示的本發(fā)明的采用中間件實(shí)現(xiàn)單點(diǎn)登錄的方法的流程圖。本發(fā)明公開(kāi)了一種采用中間件實(shí)現(xiàn)單點(diǎn)登錄的方法,其具體包括以下的步驟:當(dāng)判斷用戶(hù)想要通過(guò)瀏覽器從門(mén)戶(hù)系統(tǒng)進(jìn)入應(yīng)用系統(tǒng)時(shí),門(mén)戶(hù)系統(tǒng)上的第一中間件獲取用戶(hù)的參數(shù),并對(duì)用戶(hù)的參數(shù)進(jìn)行動(dòng)態(tài)加密后發(fā)送給目標(biāo)地址對(duì)應(yīng)的應(yīng)用的服務(wù)器;應(yīng)用系統(tǒng)的服務(wù)器上的第二中間件對(duì)用戶(hù)的參數(shù)進(jìn)行解密并對(duì)參數(shù)進(jìn)行有效性驗(yàn)證,若無(wú)效,則返回登錄失敗信息;若有效,則驗(yàn)證參數(shù)中的登錄用戶(hù)號(hào)是否已登錄,若已登錄,則返回已登錄信息;若未登錄,則向AD認(rèn)證服務(wù)器申請(qǐng)AD認(rèn)證,若AD認(rèn)證失敗,則返回登錄失敗信息,若AD認(rèn)證成功,則返回登錄成功信息;當(dāng)判斷為登錄用戶(hù)號(hào)已登錄時(shí),將目標(biāo)地址賦值給單點(diǎn)登錄目標(biāo)地址,目標(biāo)地址附加參數(shù)賦值給單點(diǎn)單點(diǎn)登錄參數(shù)屬性,登錄用戶(hù)賦值給單點(diǎn)登錄用戶(hù)號(hào),從而通過(guò)單點(diǎn)登錄實(shí)現(xiàn)應(yīng)用系統(tǒng)的登錄。
步驟S11、用戶(hù)在第一系統(tǒng)中輸入用戶(hù)的登錄信息,并通過(guò)第一系統(tǒng)的服務(wù)器對(duì)登錄信息進(jìn)行驗(yàn)證,通過(guò),則返回登錄成功信息,并進(jìn)入登錄后的頁(yè)面,否則,返回登錄失敗信息;步驟S12、根據(jù)用戶(hù)提供的目標(biāo)地址判定目標(biāo)地址是否是第一系統(tǒng)信任的系統(tǒng),是則啟動(dòng)第一系統(tǒng)的服務(wù)器上第一中間件,否則結(jié)束;步驟S13、第一中間件獲取用戶(hù)的參數(shù),并對(duì)用戶(hù)的參數(shù)進(jìn)行動(dòng)態(tài)加密后發(fā)送給目標(biāo)地址對(duì)應(yīng)的第二系統(tǒng)的服務(wù)器;步驟S14、第二系統(tǒng)的 服務(wù)器上的第二中間件對(duì)用戶(hù)的參數(shù)進(jìn)行解密并對(duì)參數(shù)進(jìn)行有效性驗(yàn)證,若無(wú)效,則返回登錄失敗信息;若有效,則驗(yàn)證參數(shù)中的登錄用戶(hù)號(hào)是否已登錄,若已登錄,則返回已登錄信息;若未登錄,則向AD認(rèn)證服務(wù)器申請(qǐng)AD認(rèn)證,若AD認(rèn)證失敗,則返回登錄失敗信息,若AD認(rèn)證成功,則返回登錄成功信息;步驟S15、將目標(biāo)地址賦值給單點(diǎn)登錄目標(biāo)地址,目標(biāo)地址附加參數(shù)賦值給單點(diǎn)單點(diǎn)登錄參數(shù)屬性,登錄用戶(hù)賦值給單點(diǎn)登錄用戶(hù)號(hào),從而實(shí)現(xiàn)第二系統(tǒng)的單點(diǎn)登錄。本發(fā)明通過(guò)對(duì)用戶(hù)參數(shù)進(jìn)行加解密使得既能夠通過(guò)http協(xié)議進(jìn)行安全傳輸,同時(shí)提高了跨域跨系統(tǒng)間單點(diǎn)登錄的安全性,通過(guò)參數(shù)驗(yàn)證可以判斷出傳輸數(shù)據(jù)是否被非法分子劫獲或篡改,進(jìn)而阻止非法登錄訪問(wèn)。
其中,對(duì)第一系統(tǒng)中輸入的用戶(hù)的登錄信息的驗(yàn)證可以在第一系統(tǒng)對(duì)應(yīng)的服務(wù)器上直接進(jìn)行驗(yàn)證,也可以采用AD認(rèn)證服務(wù)器進(jìn)行驗(yàn)證。
需要說(shuō)明的是,在上述的具體實(shí)施例中,第一中間件運(yùn)行在門(mén)戶(hù)系統(tǒng)的服務(wù)器上,用于提取用戶(hù)的參數(shù)和并進(jìn)行加密,第二中間件運(yùn)行在應(yīng)用系統(tǒng)對(duì)應(yīng)的服務(wù)器上,用于解密和驗(yàn)證。當(dāng)然也可以將這兩種功能的中間件集成封裝在同一個(gè)中間件上,并將該中間件運(yùn)行在所信任的每個(gè)服務(wù)器上,根據(jù)需要運(yùn)行不同的功能,從而實(shí)現(xiàn)所有相互信任系統(tǒng)的單點(diǎn)登錄。
更具體地,上述第一中間件獲取用戶(hù)的參數(shù)如下表1所示,稱(chēng)為第一單點(diǎn)登錄參數(shù)組。
第一中間件獲取到以上的7個(gè)用戶(hù)參數(shù),并通過(guò)第一中間件同時(shí)生成動(dòng)態(tài)加密碼和訪問(wèn)隨機(jī)碼(表2中的序號(hào)7、8),通過(guò)訪問(wèn)隨機(jī)碼對(duì)所述第一單點(diǎn)登錄參數(shù)組中的AD認(rèn)證真實(shí)碼進(jìn)行加密,生成登錄用戶(hù)AD認(rèn)證碼(表2序號(hào)5),即得到如下表2,稱(chēng)為第二單點(diǎn)登錄參數(shù)組。
為了防止過(guò)期的訪問(wèn)發(fā)生,例如:有些訪問(wèn),例如待辦,它是有時(shí)效性的,比如3分鐘或者更短的時(shí)間,就禁止訪問(wèn)?;蛘呔退阍L問(wèn)到了它,也是一個(gè)過(guò)時(shí)的信息。這可以通過(guò)時(shí)間戳來(lái)實(shí)現(xiàn)。下表為添加了時(shí)間戳的參數(shù)表,稱(chēng)為第三單點(diǎn)登錄參數(shù)組。
第一中間件將除了動(dòng)態(tài)加密碼之外的上述9個(gè)參數(shù)通過(guò)控制符進(jìn)行連接("\r\n"+dstAppNo+"\r\n"+srcAppNo+"\r\n"+userNo+"\r\n"+requestMinutes+"\r\n"+loginNo+"\r\n"+visitRandomNo+"\r\n"+userCertAD+"\r\n"+gotoURL+"\r\n"+urlParams)后,再進(jìn)行編碼(比如編碼方式可以為MD5)后,獲得單點(diǎn)登錄驗(yàn)證碼,將單點(diǎn)登錄驗(yàn)證碼加入到上述的參數(shù)表中。進(jìn)而得到下表4,稱(chēng)為第四單點(diǎn)登錄參數(shù)組。
當(dāng)用戶(hù)在門(mén)戶(hù)網(wǎng)站上點(diǎn)擊相應(yīng)的應(yīng)用系統(tǒng)圖標(biāo)時(shí),第一中間即獲取到上述的第四單點(diǎn)登錄參數(shù)組,并將該參數(shù)組發(fā)送到該應(yīng)用系統(tǒng)所對(duì)應(yīng)的服務(wù)器上,即本實(shí)施例中所描述的第二系統(tǒng)對(duì)應(yīng)的服務(wù)器。
需要說(shuō)明的是,本具體實(shí)施例的第四單點(diǎn)登錄參數(shù)組包含了11項(xiàng)參數(shù),但在不同的實(shí)際需求情況下,所述參數(shù)的數(shù)量、類(lèi)別和內(nèi)容都可能會(huì)發(fā)生變化,只要按照本發(fā)明提供的方法進(jìn)行加解密,無(wú)論加解密前后的參數(shù)數(shù)量和內(nèi)容如何,均在本發(fā)明的保護(hù)范圍之內(nèi)。
更具體地,上述步驟S14中第二系統(tǒng)的服務(wù)器上的第二中間件對(duì)用戶(hù)的參數(shù)進(jìn)行解密,其具體為第二中間件使用動(dòng)態(tài)加密碼通過(guò)解密將密文變?yōu)槊魑模浣饷芩惴椋号袆e其奇偶性,為偶則采用動(dòng)態(tài)加密碼依次對(duì)參數(shù)內(nèi)容按二進(jìn)制字節(jié)依次進(jìn)行加操作,否則進(jìn)行減操作,然后以分隔符“\r\n”作為分隔還原參數(shù)內(nèi)容。
然后對(duì)解密后的參數(shù)進(jìn)行有效性驗(yàn)證,當(dāng)所有的參數(shù)驗(yàn)證都通過(guò)后,驗(yàn)證登錄用戶(hù)號(hào)是否登錄,是,則返回已登錄信息并進(jìn)行單點(diǎn)登錄的賦值和跳轉(zhuǎn),否則還需向AD認(rèn)證服務(wù)器申請(qǐng)AD認(rèn)證。若AD認(rèn)證失敗,則第二中間件獲得認(rèn)證失敗信息,然后返回登錄失敗信息,再通知門(mén)戶(hù)系統(tǒng)用戶(hù)登錄失敗,禁止登錄。若AD認(rèn)證成功,則第二中間件獲得認(rèn)證成功信息,然后通知門(mén)戶(hù)子系統(tǒng)用戶(hù)登錄成功,并由代理URL跳轉(zhuǎn)到目標(biāo)地址頁(yè)面。
為了方便下一次單點(diǎn)登錄,AD認(rèn)證成功后,返回所述第四單點(diǎn)登錄參數(shù)組中的登錄用戶(hù)號(hào)、轉(zhuǎn)到的目標(biāo)地址和目標(biāo)地址附加參數(shù),將其賦值到第四單點(diǎn)登錄參數(shù)組中。
進(jìn)一步的,考慮到在數(shù)據(jù)的傳輸過(guò)程中,不法分子劫獲并破譯傳輸信息的情況下,本發(fā)明中加入請(qǐng)求時(shí)間戳參數(shù),以進(jìn)行時(shí)效性管理,為了防止加密端和解密端的時(shí)鐘不一致而導(dǎo)致時(shí)間戳的判別處理失效,還需要引入時(shí)鐘同步管理機(jī)制,使第二中間件與所述單點(diǎn)登錄加密參數(shù)的加密端即第一中間件保持時(shí)鐘一致。
對(duì)于參數(shù)的驗(yàn)證,可以根據(jù)實(shí)際需求和參數(shù)組的參數(shù)類(lèi)別、內(nèi)容進(jìn)行有效性檢驗(yàn),包括以下至少一個(gè)方面,可以設(shè)定其中任一個(gè)方面的驗(yàn)證結(jié)果為無(wú)效,則對(duì)參數(shù)進(jìn)行有效性驗(yàn)證的結(jié)果為無(wú)效:
驗(yàn)證參數(shù)類(lèi)別及內(nèi)容是否足夠,若足夠,則有效;
驗(yàn)證參數(shù)類(lèi)型是否正確,若正確,則有效;
將參數(shù)通過(guò)控制符進(jìn)行連接并進(jìn)行MD5編碼后,判斷其是否與所述單點(diǎn)登錄驗(yàn)證碼一致,若一致,則有效;
驗(yàn)證所述請(qǐng)求時(shí)間戳是否在有效時(shí)長(zhǎng)內(nèi),若是,則有效;
驗(yàn)證所述第源應(yīng)用系統(tǒng)編碼是否有權(quán)登錄,若有權(quán),則有效。
仍以上述本發(fā)明提供的優(yōu)選的具體實(shí)施例為例,在解密后獲得參數(shù),第二中間件對(duì)其進(jìn)行有效性檢驗(yàn)如下:
驗(yàn)證第四單點(diǎn)登錄參數(shù)組中的參數(shù)是否足夠,包括參數(shù)的類(lèi)別是否足夠、參數(shù)的數(shù)量是否足夠以及參數(shù)的內(nèi)容是否足夠等多個(gè)子項(xiàng)的有效性驗(yàn)證,如果有任一項(xiàng)子項(xiàng)不足夠,則該有效性驗(yàn)證結(jié)果為無(wú)效,此時(shí)返回登錄失敗信息,該登錄失敗信息先返回到應(yīng)用系統(tǒng)服務(wù)器上的第二中間件,然后通過(guò)第二中間件發(fā)送給門(mén)戶(hù)系統(tǒng)服務(wù)器上的第一中間件,再通知門(mén)戶(hù)子系統(tǒng)用戶(hù)登錄失敗,禁止登錄。若全部子項(xiàng)的有效性驗(yàn)證結(jié)果都為有效,則本有效性驗(yàn)證結(jié)果為有效,可以進(jìn)行其他步驟。
驗(yàn)證第四單點(diǎn)登錄參數(shù)組中的參數(shù)類(lèi)型是否匹配,即每個(gè)參數(shù)類(lèi)型是否與預(yù)先設(shè)定或約定的參數(shù)類(lèi)型相匹配,其中任一項(xiàng)參數(shù)不匹配,說(shuō)明參數(shù)存在被篡改的可能,有安全隱患,驗(yàn)證結(jié)果為無(wú)效,此時(shí)返回登錄失敗信息,該登錄失敗信息先由第二中間件返回到第二調(diào)用模塊,然后第二調(diào)用模塊再將其發(fā)送到第一調(diào)用模塊,由門(mén)戶(hù)系統(tǒng)通知用戶(hù)登錄失敗,禁止登錄。若全部參數(shù)的類(lèi)型都匹配,則本有效性驗(yàn)證結(jié)果為有效,可以進(jìn)行其他步驟。
本發(fā)明在具體實(shí)現(xiàn)的時(shí)候可以采用代理URL的方式來(lái)實(shí)現(xiàn),首先,在門(mén)戶(hù)系統(tǒng)中來(lái)源URL調(diào)用部署在門(mén)戶(hù)系統(tǒng)中的第一中間件將預(yù)定種類(lèi)的單點(diǎn)登錄參數(shù)組進(jìn)行處理并加密,然后,來(lái)源URL將加密后獲得的單點(diǎn)登錄加密參數(shù)傳輸?shù)讲渴鹪跇I(yè)務(wù)系統(tǒng)的代理URL,該代理URL調(diào)用部署在業(yè)務(wù)系統(tǒng)的第二中間件進(jìn)行解密后進(jìn)行有效性驗(yàn)證和已登錄驗(yàn)證,從而實(shí)現(xiàn)單點(diǎn)登錄,有效解決了傳統(tǒng)的使用用戶(hù)名和密碼進(jìn)行單點(diǎn)登錄時(shí)容易發(fā)生泄密和賬號(hào)失竊的問(wèn)題。采用代理URL的方式,在登錄之后,用戶(hù)看到的界面和原來(lái)單獨(dú)登錄應(yīng)用系統(tǒng)的界面完全一致,符合用戶(hù)的使用習(xí)慣。
也就是說(shuō),本發(fā)明引入部署在WEB服務(wù)器上的“企業(yè)信息門(mén)戶(hù)單點(diǎn)登錄中間件”(后文簡(jiǎn)稱(chēng)中間件),采用中間件的方式對(duì)參數(shù)進(jìn)行加密封包、解密驗(yàn)證,該中間件調(diào)用簡(jiǎn)單,部署方便,且該中間件部署于各個(gè)業(yè)務(wù)系統(tǒng)的WEB服務(wù)器上,相應(yīng)的代碼僅在服務(wù)器上運(yùn)行,且可兼容于各種瀏覽器版本,提高了信息的安全性,在采用http方式進(jìn)行信息傳遞的情況下,為確保信息的安全,將http傳送的信息進(jìn)行加密,各個(gè)業(yè)務(wù)系統(tǒng)提供單點(diǎn)登錄代理URL,該代理URL訪問(wèn)中間件,并將當(dāng)前登錄的用戶(hù)號(hào)及訪問(wèn)該代理URL的信息以參數(shù)(單點(diǎn)登錄認(rèn)證參數(shù))的方式傳遞給中間件,中間件的加密與解密過(guò)程是封閉式的,保證了安全性。
本發(fā)明還公開(kāi)了一種采用中間件實(shí)現(xiàn)單點(diǎn)登錄的系統(tǒng),其具體包括包括至少一個(gè)門(mén)戶(hù)子系統(tǒng)和至少一個(gè)業(yè)務(wù)子系統(tǒng),用戶(hù)通過(guò)門(mén)戶(hù)子系統(tǒng)登錄業(yè)務(wù)子系統(tǒng),該門(mén)戶(hù)子系統(tǒng)包括使用本發(fā)明提供的第一中間件,該業(yè)務(wù)子系統(tǒng)包括使用本發(fā)明提供的第二中間件;該門(mén)戶(hù)子系統(tǒng)還包括第一調(diào)用模塊,可以稱(chēng)為來(lái)源URL,用于獲取單點(diǎn)登錄參數(shù)組、調(diào)用所述第一中間件進(jìn)行加密以及與所述業(yè)務(wù)子系統(tǒng)間傳輸信號(hào),所述業(yè)務(wù)子系統(tǒng)還包括第二調(diào)用模塊,該第二調(diào)用模塊部署于業(yè)務(wù)子系統(tǒng),可以稱(chēng)為代理URL,用于與門(mén)戶(hù)子系統(tǒng)間傳輸信號(hào)以及調(diào)用所述第二中間件進(jìn)行解密驗(yàn)證。
圖2為在門(mén)戶(hù)系統(tǒng)和應(yīng)用系統(tǒng)的服務(wù)器上分別運(yùn)行中間件的結(jié)構(gòu)示意圖。其中第一中間件運(yùn)行在門(mén)戶(hù)系統(tǒng)的服務(wù)器上,第二中間件運(yùn)行在應(yīng)用系統(tǒng)的服務(wù)器上。在實(shí)際應(yīng)用中,任何被信任的系統(tǒng)都可以做為本實(shí)施例中描述的門(mén)戶(hù)系統(tǒng)或者第一系統(tǒng),其它的系統(tǒng)作為本實(shí)施例中的第二系統(tǒng)。門(mén)戶(hù)系統(tǒng)上運(yùn)行的第一中間件獲取用戶(hù)參數(shù),并將用戶(hù)參數(shù)經(jīng)過(guò)加密和 編碼后發(fā)送給應(yīng)用系統(tǒng)服務(wù)器上的第二中間件進(jìn)行解密驗(yàn)證。
本實(shí)施例中的加解密采用第一中間件生成的動(dòng)態(tài)加密碼實(shí)現(xiàn),加密碼動(dòng)態(tài)變化,保證了加密的效果。
本發(fā)明的另外一個(gè)實(shí)施例,當(dāng)用戶(hù)沒(méi)有在門(mén)戶(hù)網(wǎng)站中進(jìn)行登錄或者登錄后已經(jīng)退出,此時(shí)點(diǎn)擊了門(mén)戶(hù)網(wǎng)站中應(yīng)用系統(tǒng)的圖標(biāo)時(shí),此時(shí)第一中間件也啟動(dòng),但在驗(yàn)證登錄用戶(hù)號(hào)是否登錄時(shí),判斷結(jié)果為未登錄,此時(shí)需要進(jìn)行AD認(rèn)證。
認(rèn)證所述單點(diǎn)登錄參數(shù)組中的登錄用戶(hù)號(hào)是否已登錄,若AD認(rèn)證失敗,則返回登錄失敗信息,若AD認(rèn)證成功,則返回登錄成功信息。
本發(fā)明采用中間件的方式實(shí)現(xiàn)單點(diǎn)登錄,不改變現(xiàn)有已經(jīng)存在的門(mén)戶(hù)系統(tǒng)或者應(yīng)用系統(tǒng)的架構(gòu),實(shí)現(xiàn)成本低,在門(mén)戶(hù)系統(tǒng)的中間件上,采用動(dòng)態(tài)加密的方式實(shí)現(xiàn)參數(shù)的加密,在應(yīng)用系統(tǒng)的中間件上進(jìn)行解密驗(yàn)證,保證了數(shù)據(jù)的安全和不被篡改,提高了整個(gè)系統(tǒng)的安全性。
本發(fā)明的另外一個(gè)具體實(shí)施例
在初始條件下,單點(diǎn)登錄目標(biāo)地址、單點(diǎn)登錄參數(shù)屬性這兩個(gè)參數(shù)的值為空,從而確保系統(tǒng)的安全。只有在通過(guò)參數(shù)驗(yàn)證以及登錄用戶(hù)號(hào)已經(jīng)登錄的情況下,這兩個(gè)參數(shù)才得到賦值,從而實(shí)現(xiàn)單點(diǎn)登錄并進(jìn)行頁(yè)面跳轉(zhuǎn)。
本發(fā)明的另外的實(shí)施例
本發(fā)明實(shí)施例提供的一種用于單點(diǎn)登錄的解密驗(yàn)證方法和一種用于單點(diǎn)登錄的參數(shù)加密方法,為單點(diǎn)登錄技術(shù)提供了一種更加安全的解決方案,兩種方法是基于共同的技術(shù)方案而互相配合使用的,其共同的技術(shù)方案為:首先,在門(mén)戶(hù)系統(tǒng)中來(lái)源URL調(diào)用部署在門(mén)戶(hù)系統(tǒng)中的第一中間件將預(yù)定種類(lèi)的單點(diǎn)登錄參數(shù)組進(jìn)行處理并加密,然后,來(lái)源URL將加密后獲得的單點(diǎn)登錄加密參數(shù)傳輸?shù)讲渴鹪跇I(yè)務(wù)系統(tǒng)的代理URL,該代理URL調(diào)用部署在業(yè)務(wù)系統(tǒng)的第二中間件進(jìn)行解密后進(jìn)行有效性驗(yàn)證和已登錄驗(yàn)證,從而實(shí)現(xiàn)單點(diǎn)登錄,有效解決了傳統(tǒng)的使用用戶(hù)名和密碼進(jìn)行單點(diǎn)登錄時(shí)容易發(fā)生泄密和賬號(hào)失竊的問(wèn)題。
也就是說(shuō),本發(fā)明引入部署在WEB服務(wù)器上的“企業(yè)信息門(mén)戶(hù)單點(diǎn)登錄中間件”(后文簡(jiǎn)稱(chēng)中間件),采用中間件方式對(duì)參數(shù)進(jìn)行加密封包、解密驗(yàn)證,該中間件調(diào)用簡(jiǎn)單,部署方便,且該中間件部署于各個(gè)業(yè)務(wù)系統(tǒng)的WEB服務(wù)器上,相應(yīng)的代碼僅在服務(wù)器上運(yùn)行,且可兼容于各種瀏覽器版本,提高了信息的安全性,在采用http方式進(jìn)行信息傳遞的情況下,為確保信息的安全,將http傳送的信息進(jìn)行加密,各個(gè)業(yè)務(wù)系統(tǒng)提供單點(diǎn)登錄代理URL,該代理URL訪問(wèn)中間件,并將當(dāng)前登錄的用戶(hù)號(hào)及訪問(wèn)該代理URL的信息以參數(shù)(單點(diǎn)登錄認(rèn)證參數(shù))的方式傳遞給中間件,中間件的加密與解密過(guò)程是封閉式的,保證了安全性。
為了便于理解,在此先對(duì)本發(fā)明公開(kāi)的一個(gè)優(yōu)選的具體實(shí)施例中進(jìn)行初步介紹,本發(fā)明優(yōu)選的具體實(shí)施例是一單點(diǎn)登錄系統(tǒng),包括至少一個(gè)門(mén)戶(hù)子系統(tǒng)和至少一個(gè)業(yè)務(wù)子系統(tǒng),用戶(hù)通過(guò)門(mén)戶(hù)子系統(tǒng)登錄業(yè)務(wù)子系統(tǒng),該門(mén)戶(hù)子系統(tǒng)包括使用本發(fā)明提供的一種用于單點(diǎn)登錄的參數(shù)加密方法封裝而成的第一中間件,該業(yè)務(wù)子系統(tǒng)包括使用本發(fā)明提供的一種用于單點(diǎn)登錄的解密驗(yàn)證方法封裝而成的第二中間件;該門(mén)戶(hù)子系統(tǒng)還包括第一調(diào)用模塊,可以稱(chēng)為來(lái)源URL,用于獲取第一單點(diǎn)登錄參數(shù)組、調(diào)用所述第一中間件進(jìn)行加密以及與所述業(yè)務(wù)子系統(tǒng)間傳輸信號(hào),所述業(yè)務(wù)子系統(tǒng)還包括第二調(diào)用模塊,該第二調(diào)用模塊部署于業(yè)務(wù)子系統(tǒng),可以稱(chēng)為代理URL,用于與門(mén)戶(hù)子系統(tǒng)間傳輸信號(hào)以及調(diào)用所述第二中間件進(jìn)行解密驗(yàn)證。
需要說(shuō)明的是,在上述優(yōu)選的具體實(shí)施例中,所述第一中間件和所述第二中間件也可以是同樣的中間件,其中同時(shí)封裝了本發(fā)明提供的一種用于單點(diǎn)登錄的參數(shù)加密方法和一種用于單點(diǎn)登錄的解密驗(yàn)證方法,只是根據(jù)不同的需要采用不同的方法,為了描述清楚,下文中仍將第一中間件和第二中間件區(qū)別表述。
下面對(duì)本發(fā)明的實(shí)施例逐一進(jìn)行詳細(xì)說(shuō)明。
一種用于單點(diǎn)登錄的解密驗(yàn)證方法,該方法包括步驟S101-S104,具體如下:
步驟S101:獲取單點(diǎn)登錄加密參數(shù);
本步驟獲取單點(diǎn)登錄加密參數(shù),傳統(tǒng)的單點(diǎn)登錄需要發(fā)送用戶(hù)名及密碼進(jìn)行AD認(rèn)證以實(shí)現(xiàn)單點(diǎn)登錄,這樣用戶(hù)名和密碼容易在網(wǎng)絡(luò)數(shù)據(jù)傳輸過(guò)程中被截獲、竊取,尤其是在http協(xié)議傳輸過(guò)程中,鑒于此,在本步驟之前,在單點(diǎn)登錄的請(qǐng)求端(門(mén)戶(hù)子系統(tǒng))先對(duì)單點(diǎn)登錄參數(shù)進(jìn)行加密,即使在http協(xié)議的傳輸中,仍可有效避免用戶(hù)名和密碼的泄露。本步驟就是獲取加密后的單點(diǎn)登錄參數(shù),即單點(diǎn)登錄加密參數(shù)。
在本發(fā)明的優(yōu)選的具體實(shí)施例中,門(mén)戶(hù)子系統(tǒng)中的第一調(diào)用模塊將單點(diǎn)登錄加密參數(shù)以http傳輸協(xié)議發(fā)送到業(yè)務(wù)子系統(tǒng)的第二調(diào)用模塊,第二調(diào)用模塊將所述單點(diǎn)登錄加密參數(shù)發(fā)送到第二中間件,實(shí)現(xiàn)了第二中間件獲取單點(diǎn)登錄加密參數(shù)的步驟,其中第二調(diào)用模塊可以是代理URL。
步驟S102:對(duì)上述單點(diǎn)登錄加密參數(shù)進(jìn)行解密,獲得第一單點(diǎn)登錄參數(shù)組;
根據(jù)步驟S101已得到單點(diǎn)登錄加密參數(shù),接下來(lái),需要對(duì)所述單點(diǎn)登錄加密參數(shù)進(jìn)行解密,解密的方法是與加密的方法相對(duì)應(yīng)的,例如使用動(dòng)態(tài)加密碼對(duì)所述單點(diǎn)登錄加密參數(shù)進(jìn)行解密,獲得第一單點(diǎn)登錄參數(shù)組。
步驟S103:對(duì)上述第一單點(diǎn)登錄參數(shù)組進(jìn)行有效性驗(yàn)證,若無(wú)效,則執(zhí)行步驟S122返回登錄失敗信息;
通過(guò)步驟S102,已經(jīng)過(guò)解密獲得第一單點(diǎn)登錄參數(shù)組,接下來(lái),需要對(duì)該第一單點(diǎn)登錄參數(shù)組進(jìn)行有效性驗(yàn)證,從多個(gè)方面對(duì)所述第一單點(diǎn)登錄參數(shù)組進(jìn)行驗(yàn)證,可以診斷所述第一單點(diǎn)登錄參數(shù)組在傳輸過(guò)程中是否被竊取、泄露或篡改,如有效性驗(yàn)證結(jié)果為無(wú)效,則返回登錄無(wú)效信息,禁止登錄,從而提高本發(fā)明提供的用于單點(diǎn)登錄的解密驗(yàn)證方法的安全性。
針對(duì)第一單點(diǎn)登錄參數(shù)組,可以根據(jù)實(shí)際需求和參數(shù)組的參數(shù)類(lèi)別、內(nèi)容進(jìn)行有效性檢驗(yàn),包括以下至少一個(gè)方面,其中任一個(gè)方面的驗(yàn)證結(jié)果為無(wú)效,則對(duì)該第一單點(diǎn)登錄參數(shù)組進(jìn)行有效性驗(yàn)證的結(jié)果為無(wú)效:
驗(yàn)證所述第一單點(diǎn)登錄參數(shù)組中的參數(shù)類(lèi)別及內(nèi)容是否足夠,若足夠,則有效;
驗(yàn)證所述第一單點(diǎn)登錄參數(shù)組中的參數(shù)類(lèi)型是否正確,若正確,則有效;
將所述第一單點(diǎn)登錄參數(shù)組中除單點(diǎn)登錄驗(yàn)證碼以外的參數(shù)通過(guò)控制符進(jìn)行連接并進(jìn)行MD5編碼后,判斷其是否與所述第一單點(diǎn)登錄參數(shù)組中的單點(diǎn)登錄驗(yàn)證碼一致,若一致,則有效;
驗(yàn)證所述第一單點(diǎn)登錄參數(shù)組中的請(qǐng)求時(shí)間戳是否在有效時(shí)長(zhǎng)內(nèi),若是,則有效;
驗(yàn)證所述第一單點(diǎn)登錄參數(shù)組中的來(lái)源應(yīng)用系統(tǒng)編碼是否有權(quán)登錄,若有權(quán),則有效。
仍以上述本發(fā)明提供的優(yōu)選的具體實(shí)施例為例,在解密后獲得第一單點(diǎn)登錄參數(shù)組后,第二中間件對(duì)其進(jìn)行有效性檢驗(yàn)如下:
驗(yàn)證第一單點(diǎn)登錄參數(shù)組中的參數(shù)是否足夠,包括參數(shù)的類(lèi)別是否足夠、參數(shù)的數(shù)量是否足夠以及參數(shù)的內(nèi)容是否足夠等多個(gè)子項(xiàng)的有效性驗(yàn)證,如果有任一項(xiàng)子項(xiàng)不足夠,則該有效性驗(yàn)證結(jié)果為無(wú)效,此時(shí)返回登錄失敗信息,該登錄失敗信息先由第二中間件返回到第二調(diào)用模塊,然后第二調(diào)用模塊再將其發(fā)送到第一調(diào)用模塊,通知門(mén)戶(hù)子系統(tǒng)用戶(hù)登錄失敗,禁止登錄。若全部子項(xiàng)的有效性驗(yàn)證結(jié)果都為有效,則本有效性驗(yàn)證結(jié)果為有效,可以進(jìn)行其他步驟。
驗(yàn)證第一單點(diǎn)登錄參數(shù)組中的參數(shù)類(lèi)型是否匹配,即每個(gè)參數(shù)類(lèi)型是否與預(yù)先設(shè)定或約定的參數(shù)類(lèi)型相匹配,其中任一項(xiàng)參數(shù)不匹配,說(shuō)明參數(shù)存在被篡改的可能,有安全隱患,驗(yàn)證結(jié)果為無(wú)效,此時(shí)返回登錄失敗信息,該登錄失敗信息先由第二中間件返回到第二調(diào)用模塊,然后第二調(diào)用模塊再將其發(fā)送到第一調(diào)用模塊,由門(mén)戶(hù)系統(tǒng)通知用戶(hù)登錄失敗,禁止登錄。若全部參數(shù)的類(lèi)型都匹配,則本有效性驗(yàn)證結(jié)果為有效,可以進(jìn)行其他步驟。
將所述第一單點(diǎn)登錄參數(shù)組中除單點(diǎn)登錄驗(yàn)證碼以外的參數(shù)通過(guò)控制符進(jìn)行連接 ("\r\n"+dstAppNo+"\r\n"+srcAppNo+"\r\n"+userNo+"\r\n"+requestMinutes+"\r\n"+loginNo+"\r\n"+visitRandomNo+"\r\n"+userCertAD+"\r\n"+gotoURL+"\r\n"+urlParams),再進(jìn)行MD5編碼后,與第一單點(diǎn)登錄參數(shù)組中的單點(diǎn)登錄驗(yàn)證碼進(jìn)行比對(duì),如果一致則認(rèn)為參數(shù)內(nèi)容未被修改,可以進(jìn)行其他步驟,否則認(rèn)為參數(shù)被修改,驗(yàn)證結(jié)果為無(wú)效,此時(shí)返回登錄失敗信息,該登錄失敗信息先由第二中間件返回到第二調(diào)用模塊,然后第二調(diào)用模塊再將其發(fā)送到第一調(diào)用模塊,通知門(mén)戶(hù)系統(tǒng)用戶(hù)登錄失敗,禁止登錄。
驗(yàn)證所述第一單點(diǎn)登錄參數(shù)組中的請(qǐng)求時(shí)間戳是否在有效時(shí)長(zhǎng)內(nèi),如超過(guò)有效請(qǐng)求時(shí)長(zhǎng)則驗(yàn)證結(jié)果為無(wú)效,此時(shí)返回登錄失敗信息,該登錄失敗信息先由第二中間件返回到第二調(diào)用模塊,然后第二調(diào)用模塊再將其發(fā)送到第一調(diào)用模塊,通知門(mén)戶(hù)子系統(tǒng)用戶(hù)登錄失敗,禁止登錄。否則驗(yàn)證結(jié)果為有效,可以進(jìn)行其他步驟。通過(guò)時(shí)間戳驗(yàn)證,可以加強(qiáng)時(shí)效性管理,防止過(guò)期的訪問(wèn)發(fā)生,例如:有些訪問(wèn),例如待辦,它是有時(shí)效性的,超過(guò)5分鐘或者更短的時(shí)間,它就會(huì)禁止訪問(wèn)?;蛘呔退阍L問(wèn)到了它,也是一個(gè)過(guò)時(shí)的信息。因此必須通過(guò)時(shí)間戳來(lái)實(shí)現(xiàn),從而對(duì)具體的目標(biāo)URL訪問(wèn),該目標(biāo)URL是業(yè)務(wù)子系統(tǒng)中的統(tǒng)一資源定位符,可以通過(guò)時(shí)間戳的過(guò)時(shí)時(shí)效來(lái)加以限定。
另外,需要強(qiáng)調(diào)的是,由于采用http方式進(jìn)行數(shù)據(jù)的傳遞,客戶(hù)可以攔截傳遞的數(shù)據(jù),然后偽造訪問(wèn),來(lái)訪問(wèn)代理URL,此時(shí),這個(gè)時(shí)間戳就相當(dāng)有用,否則就可能會(huì)出現(xiàn)長(zhǎng)時(shí)的訪問(wèn)存在,從而進(jìn)一步的提高了單點(diǎn)登錄的安全性。
驗(yàn)證所述第一單點(diǎn)登錄參數(shù)組中的來(lái)源應(yīng)用系統(tǒng)編碼是否有權(quán)登錄,如驗(yàn)證結(jié)果為無(wú)效,此時(shí)返回登錄失敗信息,該登錄失敗信息先由第二中間件返回到第二調(diào)用模塊,然后第二調(diào)用模塊再將其發(fā)送到第一調(diào)用模塊,通知門(mén)戶(hù)子系統(tǒng)用戶(hù)登錄失敗,禁止登錄。否則驗(yàn)證結(jié)果為有效,可以進(jìn)行其他步驟。
需要說(shuō)明的是,本具體實(shí)施例的有效性驗(yàn)證包括上述多個(gè)方面的驗(yàn)證,但在不同的實(shí)際需求情況下,所需驗(yàn)證的項(xiàng)目、內(nèi)容都可能發(fā)生變化,但只要其能夠驗(yàn)證第一單點(diǎn)登錄參數(shù)組的有效性,判斷其是否被竊取或篡改,就在本發(fā)明的技術(shù)方案之內(nèi),均受本發(fā)明的保護(hù)。
步驟S104:若有效,則驗(yàn)證所述第一單點(diǎn)登錄參數(shù)組中的登錄用戶(hù)號(hào)是否已登錄,若已登錄,則執(zhí)行步驟S123返回已登錄信息;
仍以上述優(yōu)選的具體實(shí)施例為例,通過(guò)步驟S103,已對(duì)所述第一單點(diǎn)登錄參數(shù)組進(jìn)行了有效性驗(yàn)證,接下來(lái),需要驗(yàn)證所述第一單點(diǎn)登錄參數(shù)組中的登錄用戶(hù)號(hào)是否已登錄,包括驗(yàn)證所述第一單點(diǎn)登錄參數(shù)組中的登錄用戶(hù)號(hào)與當(dāng)前會(huì)話(huà)登錄用戶(hù)號(hào)是否一致,該當(dāng)前會(huì)話(huà)登錄用戶(hù)號(hào)是代理URL傳送的代理URL所在系統(tǒng)的當(dāng)前會(huì)話(huà)登錄號(hào),如果一致,則驗(yàn)證結(jié)果為所述登錄用戶(hù)號(hào)已登錄,并將驗(yàn)證結(jié)果先由第二中間件返回到第二調(diào)用模塊,然后第二調(diào)用模塊再將其發(fā)送到第一調(diào)用模塊,通知門(mén)戶(hù)子系統(tǒng)用戶(hù)已登錄,并并由代理URL跳轉(zhuǎn)到目標(biāo)地址頁(yè)面。如果不一致,則驗(yàn)證結(jié)果為所述登錄用戶(hù)號(hào)未登錄,需進(jìn)行AD認(rèn)證。
步驟S105:若未登錄,則使用所述第一單點(diǎn)登錄參數(shù)組向AD認(rèn)證服務(wù)器申請(qǐng)AD認(rèn)證,若AD認(rèn)證失敗,則執(zhí)行步驟S124返回登錄失敗信息,若AD認(rèn)證成功,則執(zhí)行步驟S125返回登錄成功信息。
通過(guò)步驟S104,已驗(yàn)證所述第一單點(diǎn)登錄參數(shù)組中的登錄用戶(hù)號(hào)是否已登錄,若未登錄,則使用所述第一單點(diǎn)登錄參數(shù)組向AD認(rèn)證服務(wù)器申請(qǐng)AD認(rèn)證,其具體包括:
使用所述第一單點(diǎn)登錄參數(shù)組中的訪問(wèn)隨機(jī)碼對(duì)所述第一單點(diǎn)登錄參數(shù)組中的登錄用戶(hù)AD認(rèn)證號(hào)進(jìn)行解碼,獲取AD認(rèn)證真實(shí)碼;
使用所述第一單點(diǎn)登錄參數(shù)組中的登錄用戶(hù)號(hào)與所述AD認(rèn)證真實(shí)碼向AD認(rèn)證服務(wù)器申請(qǐng)AD認(rèn)證。
仍以上述優(yōu)選的具體實(shí)施例為例,為了進(jìn)一步增強(qiáng)數(shù)據(jù)傳輸?shù)陌踩?,該第一單點(diǎn)登錄參數(shù)組中的登錄用戶(hù)AD認(rèn)證號(hào)是預(yù)先經(jīng)過(guò)加密生成的,等同于預(yù)先將密碼明文經(jīng)過(guò)加密變?yōu)? 密碼密文,在本步驟中,第二中間件再通過(guò)解密將密碼密文變?yōu)槊艽a明文,然后向AD認(rèn)證服務(wù)器申請(qǐng)AD認(rèn)證。若AD認(rèn)證失敗,則第二中間件獲得認(rèn)證失敗信息,然后向第二調(diào)用模塊返回登錄失敗信息,第二調(diào)用模塊再將其發(fā)送到第一調(diào)用模塊,通知門(mén)戶(hù)系統(tǒng)用戶(hù)登錄失敗,禁止登錄。若AD認(rèn)證成功,則第二中間件獲得認(rèn)證成功信息,然后想第二調(diào)用模塊返回登錄成功信息,第二調(diào)用模塊再將其發(fā)送到第一調(diào)用模塊,通知門(mén)戶(hù)子系統(tǒng)用戶(hù)登錄成功,并由代理URL跳轉(zhuǎn)到目標(biāo)地址頁(yè)面。
為了方便下一次單點(diǎn)登錄,AD認(rèn)證成功后,返回所述第一單點(diǎn)登錄參數(shù)組中的登錄用戶(hù)號(hào)、轉(zhuǎn)到的目標(biāo)地址和目標(biāo)地址附加參數(shù),將其賦值到第一單點(diǎn)登錄參數(shù)組中。
進(jìn)一步的,考慮到在數(shù)據(jù)的傳輸過(guò)程中,不法分子劫獲并破譯傳輸信息的情況下,本發(fā)明中加入請(qǐng)求時(shí)間戳參數(shù),以進(jìn)行時(shí)效性管理,為了防止加密端和解密端的時(shí)鐘不一致而導(dǎo)致時(shí)間戳的判別處理失效,還需要引入時(shí)鐘同步管理機(jī)制,使第二中間件與所述單點(diǎn)登錄加密參數(shù)的加密端即第一中間件保持時(shí)鐘一致。
綜上,該方法對(duì)多個(gè)參數(shù)進(jìn)行有效性驗(yàn)證,且使用動(dòng)態(tài)加密碼進(jìn)行解密,提高了提高了跨域跨系統(tǒng)間單點(diǎn)登錄的安全性,可以判斷出傳輸數(shù)據(jù)是否被非法分子劫獲或篡改,進(jìn)而阻止非法登錄訪問(wèn)。進(jìn)一步的,又驗(yàn)證請(qǐng)求時(shí)間戳參數(shù),以進(jìn)行時(shí)效性管理,進(jìn)一步的增加了單點(diǎn)登錄的安全性。
上述對(duì)解密過(guò)程進(jìn)行了詳細(xì)的介紹,接下來(lái),將對(duì)單點(diǎn)登錄參數(shù)的加密過(guò)程進(jìn)行介紹,該加密方法主要包括步驟S201-S204,具體如下:
步驟S201:獲取預(yù)定類(lèi)型的第二單點(diǎn)登錄參數(shù)組;
本步驟首先獲取預(yù)定類(lèi)型的第二單點(diǎn)登錄參數(shù)組,該第二單點(diǎn)登錄參數(shù)組至少包括參數(shù):登錄用戶(hù)號(hào)、AD認(rèn)證真實(shí)碼、轉(zhuǎn)到的目標(biāo)地址和目標(biāo)地址附加參數(shù)。
以上述本發(fā)明的優(yōu)選的具體實(shí)施例為例,門(mén)戶(hù)系統(tǒng)中的第一調(diào)用模塊獲取預(yù)定類(lèi)型的第二單點(diǎn)登錄參數(shù)組,并將其發(fā)送到第一中間件。
步驟S202:生成動(dòng)態(tài)加密碼和訪問(wèn)隨機(jī)碼,所述動(dòng)態(tài)加密碼和訪問(wèn)隨機(jī)碼與第二單點(diǎn)登錄參數(shù)組共同組成第三單點(diǎn)登錄參數(shù)組;
仍以上述優(yōu)選的具體實(shí)施例為例,通過(guò)步驟S201,已獲取預(yù)定類(lèi)型的第二單點(diǎn)登錄參數(shù)組,為了進(jìn)行加密,還需生成動(dòng)態(tài)加密碼和訪問(wèn)隨機(jī)碼,并將其與第二單點(diǎn)登錄參數(shù)組組成第三單點(diǎn)登錄參數(shù)組。
步驟S203:將所述第三單點(diǎn)登錄參數(shù)組使用預(yù)定的方法處理后,獲得第四單點(diǎn)登錄參數(shù)組;
所述將所述第三單點(diǎn)登錄參數(shù)組使用預(yù)定的方法處理后,獲得第四單點(diǎn)登錄參數(shù)組,是采用以下至少一種方式實(shí)現(xiàn)的:
使用所述訪問(wèn)隨機(jī)碼對(duì)所述第三單點(diǎn)登錄參數(shù)組中的AD認(rèn)證真實(shí)碼進(jìn)行加密,生成登錄用戶(hù)AD認(rèn)證碼,將所述登錄用戶(hù)AD認(rèn)證碼和所述第三單點(diǎn)登錄參數(shù)中的除所述AD認(rèn)證真實(shí)碼之外的參數(shù)共同組成第四單點(diǎn)登錄參數(shù)組;
將所述第三單點(diǎn)登錄參數(shù)組中的各個(gè)參數(shù)通過(guò)控制符進(jìn)行連接并進(jìn)行MD5編碼,獲得單點(diǎn)登錄驗(yàn)證碼,將所述單點(diǎn)登錄驗(yàn)證碼與所述第三單點(diǎn)登錄參數(shù)組共同組成第四單點(diǎn)登錄參數(shù)組;
生成請(qǐng)求時(shí)間戳,將所述請(qǐng)求時(shí)間戳與所述第三單點(diǎn)登錄參數(shù)組共同組成第四單點(diǎn)登錄參數(shù)組。
仍以本發(fā)明的優(yōu)選的具體實(shí)施例為例,通過(guò)步驟S202,已生成動(dòng)態(tài)加密碼和訪問(wèn)隨機(jī)碼并獲得第三單點(diǎn)登錄參數(shù)組,接下來(lái)按照如下步驟獲得第四單點(diǎn)登錄參數(shù)組。
使用所述訪問(wèn)隨機(jī)碼對(duì)所述第三單點(diǎn)登錄參數(shù)組中的AD認(rèn)證真實(shí)碼進(jìn)行加密,生成登錄用戶(hù)AD認(rèn)證碼,將所述登錄用戶(hù)AD認(rèn)證碼和所述第三單點(diǎn)登錄參數(shù)中的除所述AD認(rèn)證真實(shí)碼 之外的參數(shù)共同組成第四單點(diǎn)登錄參數(shù)組,加密的算法為業(yè)界通用算法,在此不再贅述;
將第三單點(diǎn)登錄參數(shù)組中的參數(shù)通過(guò)控制符進(jìn)行連接("\r\n"+dstAppNo+"\r\n"+srcAppNo+"\r\n"+userNo+"\r\n"+requestMinutes+"\r\n"+loginNo+"\r\n"+visitRandomNo+"\r\n"+userCertAD+"\r\n"+gotoURL+"\r\n"+urlParams)后,再進(jìn)行MD5編碼后,獲得單點(diǎn)登錄驗(yàn)證碼,將所述單點(diǎn)登錄驗(yàn)證碼與所述第三單點(diǎn)登錄參數(shù)組共同組成第四單點(diǎn)登錄參數(shù)組;
生成請(qǐng)求時(shí)間戳,所述時(shí)間戳是第一中間件依據(jù)系統(tǒng)時(shí)間減去2001年1月1日后獲得的分鐘數(shù),將所述請(qǐng)求時(shí)間戳與所述第三單點(diǎn)登錄參數(shù)組共同組成第四單點(diǎn)登錄參數(shù)組。
步驟S204:使用所述動(dòng)態(tài)加密碼對(duì)所述第四單點(diǎn)登錄參數(shù)組進(jìn)行加密,獲得單點(diǎn)登錄加密參數(shù);
通過(guò)步驟S203,已將所述第三單點(diǎn)登錄參數(shù)組使用預(yù)定的方法處理后,獲得第四單點(diǎn)登錄參數(shù)組,接下來(lái)需要使用動(dòng)態(tài)加密碼對(duì)所述第四單點(diǎn)登錄參數(shù)組進(jìn)行加密,獲得單點(diǎn)登錄加密參數(shù)。
以本發(fā)明的優(yōu)選的具體實(shí)施例為例,將第四單點(diǎn)登錄參數(shù)組中的參數(shù)以“\r\n”進(jìn)行連接為字符串,并轉(zhuǎn)為二進(jìn)制串,用動(dòng)態(tài)加密碼對(duì)參數(shù)進(jìn)行加密(解密算法為,判別其奇偶性,為偶則采用動(dòng)態(tài)密碼依次對(duì)參數(shù)內(nèi)容按二進(jìn)制字節(jié)依次進(jìn)行減操作,否則進(jìn)行加操作)形成參數(shù)加密串,即單點(diǎn)登錄加密參數(shù)。
需要說(shuō)明的是,上述方法僅是使用動(dòng)態(tài)加密碼進(jìn)行加密的方式之一,除此之外的其他使用動(dòng)態(tài)加密碼進(jìn)行加密的方式也在本發(fā)明的保護(hù)范圍之內(nèi)。
綜上,該方法采用中間件的方式,在WEB服務(wù)器上部署中間件,對(duì)單點(diǎn)登錄參數(shù)進(jìn)行加密并使用動(dòng)態(tài)加密碼,提高了數(shù)據(jù)傳輸?shù)陌踩?,且加密封包時(shí)加入時(shí)間戳,防止不法分子破譯后訪問(wèn)目標(biāo)網(wǎng)址。
本發(fā)明實(shí)施例還提供了一種用于單點(diǎn)登錄的解密驗(yàn)證裝置30,該裝置的主要結(jié)構(gòu)包括:
獲取模塊301,用于獲取單點(diǎn)登錄加密參數(shù);
解密模塊302,用于對(duì)所述單點(diǎn)登錄加密參數(shù)進(jìn)行解密,獲得第一單點(diǎn)登錄參數(shù)組;
有效性驗(yàn)證模塊303,用于對(duì)所述第一單點(diǎn)登錄參數(shù)組進(jìn)行有效性驗(yàn)證,若驗(yàn)證結(jié)果為無(wú)效,則返回登錄失敗信息;
已登錄驗(yàn)證模塊304,用于驗(yàn)證所述第一單點(diǎn)登錄參數(shù)組中的登錄用戶(hù)號(hào)是否已登錄,若驗(yàn)證結(jié)果為已登錄,則返回已登錄信息;
請(qǐng)求AD認(rèn)證模塊305,用于使用所述第一單點(diǎn)登錄參數(shù)組向AD認(rèn)證服務(wù)器申請(qǐng)AD認(rèn)證,若AD認(rèn)證失敗,則返回登錄失敗信息,若AD認(rèn)證成功,則返回登錄成功信息。
上述解密模塊302包括:
解密單元,用于使用動(dòng)態(tài)加密碼對(duì)所述單點(diǎn)登錄加密參數(shù)進(jìn)行解密,獲得第一單點(diǎn)登錄參數(shù)組。
上述有效性驗(yàn)證模塊303包括以下至少一個(gè)單元,其中任一單元的驗(yàn)證結(jié)果為無(wú)效時(shí),則所述有效性驗(yàn)證模塊的驗(yàn)證結(jié)果為無(wú)效:
參數(shù)類(lèi)別及內(nèi)容驗(yàn)證單元,用于驗(yàn)證所述第一單點(diǎn)登錄參數(shù)組中的參數(shù)類(lèi)別及內(nèi)容是否足夠,若足夠,則驗(yàn)證結(jié)果為有效;
參數(shù)類(lèi)型驗(yàn)證單元,用于驗(yàn)證所述第一單點(diǎn)登錄參數(shù)組中的參數(shù)類(lèi)型是否正確,若正確,則驗(yàn)證結(jié)果為有效;
MD5編碼驗(yàn)證單元,用于將所述第一單點(diǎn)登錄參數(shù)組中除單點(diǎn)登錄驗(yàn)證碼以外的參數(shù)通過(guò)控制符進(jìn)行連接并進(jìn)行MD5編碼后,判斷其是否與所述第一單點(diǎn)登錄參數(shù)組中的單點(diǎn)登錄驗(yàn)證碼一致,若一致,則驗(yàn)證結(jié)果為有效;
請(qǐng)求時(shí)間戳驗(yàn)證單元,用于驗(yàn)證所述第一單點(diǎn)登錄參數(shù)組中的請(qǐng)求時(shí)間戳是否在有效時(shí) 長(zhǎng)內(nèi),若是,則驗(yàn)證結(jié)果為有效;
來(lái)源應(yīng)用系統(tǒng)編碼驗(yàn)證單元,用于驗(yàn)證所述第一單點(diǎn)登錄參數(shù)組中的來(lái)源應(yīng)用系統(tǒng)編碼是否有權(quán)登錄,若有權(quán),則驗(yàn)證結(jié)果為有效。
上述已登錄驗(yàn)證模塊304包括:
已登錄驗(yàn)證單元,用于驗(yàn)證所述第一單點(diǎn)登錄參數(shù)組中的登錄用戶(hù)號(hào)與當(dāng)前會(huì)話(huà)登錄用戶(hù)號(hào)是否一致,若一致,則驗(yàn)證結(jié)果為已登錄,否則驗(yàn)證結(jié)果為為未登錄。
上述請(qǐng)求AD認(rèn)證模塊305包括:
解碼單元,用于使用所述第一單點(diǎn)登錄參數(shù)組中的訪問(wèn)隨機(jī)碼對(duì)所述第一單點(diǎn)登錄參數(shù)組中的登錄用戶(hù)AD認(rèn)證號(hào)進(jìn)行解碼,獲取AD認(rèn)證真實(shí)碼;
請(qǐng)求AD認(rèn)證單元,用于使用所述第一單點(diǎn)登錄參數(shù)組中的登錄用戶(hù)號(hào)與所述AD認(rèn)證真實(shí)碼進(jìn)行AD認(rèn)證。
上述裝置還包括:時(shí)鐘同步模塊,用于采用時(shí)鐘同步管理機(jī)制,與所述單點(diǎn)登錄加密參數(shù)的加密端保持時(shí)鐘一致。
上述裝置還包括:參數(shù)返回模塊,用于AD認(rèn)證成功后,返回所述第一單點(diǎn)登錄參數(shù)組中的登錄用戶(hù)號(hào)、轉(zhuǎn)到的目標(biāo)地址和目標(biāo)地址附加參數(shù)。
綜上,該裝置對(duì)多個(gè)參數(shù)進(jìn)行有效性驗(yàn)證,提高了提高了跨域跨系統(tǒng)間單點(diǎn)登錄的安全性,可以判斷出傳輸數(shù)據(jù)是否被非法分子劫獲或篡改,進(jìn)而阻止非法登錄訪問(wèn)。進(jìn)一步的,又驗(yàn)證請(qǐng)求時(shí)間戳參數(shù),以進(jìn)行時(shí)效性管理,進(jìn)一步的增加了單點(diǎn)登錄的安全性。
本發(fā)明實(shí)施例還提供了一種用于單點(diǎn)登錄的參數(shù)加密裝置40,該裝置的主要結(jié)構(gòu)包括:
獲取模塊401,用于獲取預(yù)定類(lèi)型的第二單點(diǎn)登錄參數(shù)組;
動(dòng)態(tài)加密碼和訪問(wèn)隨機(jī)碼生成模塊402,用于生成動(dòng)態(tài)加密碼和訪問(wèn)隨機(jī)碼,所述動(dòng)態(tài)加密碼和訪問(wèn)隨機(jī)碼與第二單點(diǎn)登錄參數(shù)組共同組成第三單點(diǎn)登錄參數(shù)組;
處理模塊403,用于將所述第三單點(diǎn)登錄參數(shù)組使用預(yù)定的方法處理后,獲得第四單點(diǎn)登錄參數(shù)組;
加密模塊404,用于使用所述動(dòng)態(tài)加密碼對(duì)所述第四單點(diǎn)登錄參數(shù)組進(jìn)行加密,獲得單點(diǎn)登錄加密參數(shù);
上述處理模塊403至少包括以下一種單元:
訪問(wèn)隨機(jī)碼處理單元,用于使用所述訪問(wèn)隨機(jī)碼對(duì)所述第三單點(diǎn)登錄參數(shù)組中的AD認(rèn)證真實(shí)碼進(jìn)行加密,生成登錄用戶(hù)AD認(rèn)證碼,將所述登錄用戶(hù)AD認(rèn)證碼和所述第三單點(diǎn)登錄參數(shù)中的除所述AD認(rèn)證真實(shí)碼之外的參數(shù)共同組成第四單點(diǎn)登錄參數(shù)組;
MD5編碼處理單元,用于將所述第三單點(diǎn)登錄參數(shù)組中的各個(gè)參數(shù)通過(guò)控制符進(jìn)行連接并進(jìn)行MD5編碼,獲得單點(diǎn)登錄驗(yàn)證碼,將所述單點(diǎn)登錄驗(yàn)證碼與所述第三單點(diǎn)登錄參數(shù)組共同組成第四單點(diǎn)登錄參數(shù)組;
請(qǐng)求時(shí)間戳處理單元,用于生成請(qǐng)求時(shí)間戳,將所述請(qǐng)求時(shí)間戳與所述第三單點(diǎn)登錄參數(shù)組共同組成第四單點(diǎn)登錄參數(shù)組。
上述裝置還包括:時(shí)鐘同步模塊,用于采用時(shí)鐘同步管理機(jī)制,與所述單點(diǎn)登錄加密參數(shù)的加密端保持時(shí)鐘一致。
綜上,該裝置對(duì)單點(diǎn)登錄參數(shù)進(jìn)行加密后傳輸,并且在加密過(guò)程中使用動(dòng)態(tài)加密的方法,又加入請(qǐng)求時(shí)間戳,為數(shù)據(jù)傳輸過(guò)程的安全性提供支持。
本發(fā)明實(shí)施例還提供了一種單點(diǎn)登錄系統(tǒng),該系統(tǒng)至少包括兩個(gè)子系統(tǒng),其中第一子系統(tǒng)51包括第一調(diào)用裝置511和上述的用于單點(diǎn)登錄的參數(shù)加密裝置40,第二子系統(tǒng)52包括第二調(diào)用裝置521和上述的用于單點(diǎn)登錄的解密驗(yàn)證裝置30;
上述第一調(diào)用裝置511,用于獲取預(yù)定類(lèi)型的第二單點(diǎn)登錄參數(shù)組,調(diào)用本發(fā)明實(shí)施例提供的用于單點(diǎn)登錄的參數(shù)加密裝置40對(duì)所述第二單點(diǎn)登錄參數(shù)組進(jìn)行處理并加密,獲得單 點(diǎn)登錄加密參數(shù),并將所述單點(diǎn)登錄加密參數(shù)發(fā)送到第二調(diào)用裝置521;
上述第二調(diào)用裝置521,用于接收所述第一調(diào)用裝置511發(fā)送的單點(diǎn)登錄加密參數(shù),調(diào)用本發(fā)明實(shí)施例提供的用于單點(diǎn)登錄的解密驗(yàn)證裝置30對(duì)其進(jìn)行解密及單點(diǎn)登錄驗(yàn)證,當(dāng)認(rèn)證結(jié)果為登錄成功或已登錄時(shí),跳轉(zhuǎn)到目標(biāo)登錄頁(yè)面。
綜上所述,單點(diǎn)登錄系統(tǒng)通過(guò)在門(mén)戶(hù)系統(tǒng)中來(lái)源URL調(diào)用部署在門(mén)戶(hù)系統(tǒng)中的第一中間件將預(yù)定種類(lèi)的單點(diǎn)登錄參數(shù)組進(jìn)行處理并加密,該加密的方法可以是上述的用于單點(diǎn)登錄的參數(shù)加密方法,然后,來(lái)源URL將加密后獲得的單點(diǎn)登錄加密參數(shù)傳輸?shù)讲渴鹪跇I(yè)務(wù)系統(tǒng)的代理URL,該代理URL調(diào)用部署在業(yè)務(wù)系統(tǒng)的第二中間件進(jìn)行解密后進(jìn)行有效性驗(yàn)證和已登錄驗(yàn)證,該解密驗(yàn)證的方法可以是上述的用于單點(diǎn)登錄的解密驗(yàn)證方法,從而實(shí)現(xiàn)單點(diǎn)登錄,因此,提高了跨域跨系統(tǒng)間單點(diǎn)登錄的安全性,防止非法分子對(duì)傳輸數(shù)據(jù)的篡改,阻止非法登錄訪問(wèn)。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡(jiǎn)潔,上述描述的系統(tǒng)和裝置的具體工作過(guò)程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過(guò)程,在此不再贅述。
最后應(yīng)說(shuō)明的是:以上所述實(shí)施例,僅為本發(fā)明的具體實(shí)施方式,用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制,本發(fā)明的保護(hù)范圍并不局限于此,盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),其依然可以對(duì)前述實(shí)施例所記載的技術(shù)方案進(jìn)行修改或可輕易想到變化,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改、變化或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明實(shí)施例技術(shù)方案的精神和范圍。都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)所述以權(quán)利要求的保護(hù)范圍為準(zhǔn)。