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