基于網絡控制器的局域網單點登錄方法
【技術領域】
[0001]本發(fā)明涉及一種基于網絡控制器的局域網單點登錄方法,屬于網絡控制技術領域。
【背景技術】
[0002]大型的企業(yè)(如南京供電公司等)往往已經在企業(yè)內部存在多個信息子系統(tǒng),分別用來處理不同的業(yè)務。為了全面整合現(xiàn)有的多個信息系統(tǒng),實現(xiàn)企業(yè)的數(shù)據資源等信息的統(tǒng)一管理,首先需要對現(xiàn)有信息系統(tǒng)的登陸用戶名和密碼進行統(tǒng)一,即實現(xiàn)對現(xiàn)有多信息系統(tǒng)的全局統(tǒng)一的單點登錄(即Single Sign-On,簡稱SS0)。單點登錄是包括企業(yè)在內的各類組織對其業(yè)務進行整合時必須解決的問題之一。單點登錄可使得在多個應用系統(tǒng)中,用戶只需要登錄一次就可以訪問所有相互信任的其它應用系統(tǒng),即用戶只需登錄一次,便可通過單點登錄系統(tǒng)訪問后臺的多個應用系統(tǒng),二次登錄時無需重新輸入用戶名和密碼。
[0003]CAS(即Central Authenticat1n Service)是一款不錯的針對Web應用的單點登錄框架?,F(xiàn)有的基于CAS技術的單點登錄方法如圖1所示,參與單點登錄過程的有用戶、子系統(tǒng)、CAS客戶端、CAS服務器端等。
[0004]CAS框架的基本工作原理(角色分工)如下:
I)用戶正常使用各個子系統(tǒng)。
[0005]2)各子系統(tǒng)必須改造,或者已包含CAS客戶端,或者最初就用CAS客戶端構建。通常,一種CAS服務器端會提供大量符合不同技術平臺的客戶端實現(xiàn),以盡可能集成多數(shù)子系統(tǒng)。
[0006]3)植入到各應用子系統(tǒng)中的CAS客戶端:用戶訪問子系統(tǒng)時,子系統(tǒng)首先用自己的方式(如,借助于Sess1n中的狀態(tài)設值)識別用戶是否已經成功登錄過本子系統(tǒng),如果發(fā)現(xiàn)用戶未曾登錄子系統(tǒng),則讓CAS客戶端查看用戶是否在CAS服務器上登錄過(查看是否擁有CAS服務器設置的Ticket),如果沒有登錄過,則將用戶請求重定向給CAS服務器進行登錄。如果登錄過,CAS客戶端只需要在后臺向CAS服務器申請驗證用戶持有的Ticket是否合法,不合法的用戶仍將需要被重定向到CAS服務端登錄驗證。
[0007]4)CAS服務器端:如果有用戶過來登錄,則給予登錄頁面,待用戶輸入身份信息并提交,CAS服務器認證用戶。如果合法,則在客戶請求中設置Ticket,將用戶請求重定向到來源子系統(tǒng)。如果有子系統(tǒng)(通過內嵌的CAS客戶端)過來驗證Ticket是否合法,則將驗證結果直接返回給子系統(tǒng)。
[0008]從以上工作原理能看出,傳統(tǒng)的基于CAS框架的單點登錄方法需要在各子系統(tǒng)中集成CAS客戶端。但對于企業(yè)中大量存在的且已經開發(fā)并部署完成的信息管理子系統(tǒng),這種方法需要我們逐一改造每個子系統(tǒng)的安全模塊。但通常企業(yè)內部的信息系統(tǒng)來源各異,有些系統(tǒng)沒有源代碼,有些系統(tǒng)雖有源代碼但不好修改,而且可能各系統(tǒng)使用的軟件平臺、語言也不相同。在這樣異構的系統(tǒng)之上實現(xiàn)一個全局統(tǒng)一的單點登錄系統(tǒng),開發(fā)成本高且實現(xiàn)難度大,技術可行性不高。
【發(fā)明內容】
[0009]本發(fā)明要解決技術問題是:克服上述技術的缺點,提供一種針對局域網內現(xiàn)有的所有子信息系統(tǒng)進行統(tǒng)一整合,在不修改現(xiàn)有信息子系統(tǒng)源碼的前提下,實現(xiàn)用戶只需登錄一次,便可根據用戶權限訪問局域網內相應多個子系統(tǒng)的單點登陸方法。
[0010]為了解決上述技術問題,本發(fā)明提出的技術方案是:一種基于網絡控制器的局域網單點登錄方法,所述局域網設有若干相互連接的信息子系統(tǒng),每個信息子系統(tǒng)均連接有多個客戶端;所述方法包括以下步驟:
1)在所述局域網內安裝網絡控制器,并在所述網絡控制器上安裝CAS服務器,所述網絡控制器與轉發(fā)面通過OpenFlow協(xié)議連接;所述轉發(fā)面是局域網內負責數(shù)據轉發(fā)任務的交換機、路由器和網關;所述網絡控制器用于對局域網進行集中控制并實現(xiàn)OpenFlow協(xié)議中控制面的功能;
2)關閉每個信息子系統(tǒng)的登陸功能,在每個信息子系統(tǒng)及其連接的客戶端上均安裝預設的用于讀寫IP包頭部信息的網絡協(xié)議模塊;在所述CAS服務器上一一對應配置每個信息子系統(tǒng)的訪問接口,所述訪問接口復制每個信息子系統(tǒng)中的訪問控制邏輯;
3)所述客戶端發(fā)出訪問請求,所述訪問請求的目標地址所指向的服務器包括所述信息子系統(tǒng)和所述局域網以外的網絡服務器,所述客戶端上的網絡協(xié)議模塊將該客戶端的Sess1n中的與所述目標地址對應的認證信息作為IP頭部信息添加到客戶端發(fā)出的請求數(shù)據的IP包中;
4)所述轉發(fā)面接收所述IP包,并將該IP包轉發(fā)至所述CAS服務器上與所述目標地址相對應的訪問接口,并由該訪問接口對所述目標地址對應的認證信息進行身份認證,如果通過身份驗證,則所述轉發(fā)面將通過身份驗證的IP包轉發(fā)至所述目標地址所指向的信息子系統(tǒng);
5)如果所述IP包沒有通過身份驗證且該IP包中不包含Ticket,則所述CAS服務器將CAS登陸頁面通過所述轉發(fā)面返回至發(fā)出訪問請求的客戶端,由該客戶端輸入登陸信息并生成目標地址對應的Ticket,然后由所述客戶端的網絡協(xié)議模塊將該Ticket添加到所述IP包中并將該IP包發(fā)送到轉發(fā)面,再重復執(zhí)行步驟4)和步驟5);
如果所述IP包沒有通過身份驗證且該IP包中含有與所述目標地址對應的Ticket,則所述CAS服務器利用該Ticket生成所述目標地址對應的認證信息,并將該認證信息保存到所述客戶端的Sess1n中,然后由所述客戶端的網絡協(xié)議模塊將所述目標地址對應的認證信息作為IP頭部信息添加到所述IP包中并將該IP包發(fā)送到轉發(fā)面,再重復執(zhí)行步驟4)和步驟
5)0
[0011]傳統(tǒng)網絡設備中,網絡通信客戶端發(fā)出的數(shù)據包,在由交換機、路由器等設備收到后,繼續(xù)由本設備中統(tǒng)籌計算,完成數(shù)據包的正確發(fā)出。這種工作方式下,設備只能在網絡層、傳輸層實現(xiàn)一定的智能化,無法實現(xiàn)復雜的控制,不能實現(xiàn)單點登錄功能。
[0012]SDN(即Software Defined Network,又稱軟件定義網絡)是一種新型網絡創(chuàng)新架構,其核心技術標準為OpenFlow協(xié)議。SDN將網絡設備的功能劃分為控制面和轉發(fā)面,轉發(fā)面負責數(shù)據的發(fā)送和接收,控制面負責數(shù)據通信過程中關于路由、權限等方面的控制決策。SDN通過將網絡設備的控制面與轉發(fā)面分離開,可以實現(xiàn)對網絡數(shù)據包轉發(fā)路徑及轉發(fā)流量的智能控制。正是基于此,本發(fā)明創(chuàng)造性地采用SDN架構將傳統(tǒng)網絡設備的控制面抽取出來,集中放置在網絡控制器中,所有的交換機、路由器和網關等(即轉發(fā)面)在收到網絡數(shù)據包后,將會請求網絡控制器而不是依靠自己完成統(tǒng)籌計算,網絡控制器指揮轉發(fā)面的設備(即局域網絡中的交換機、路由器和網關等)完成數(shù)據包的正確轉發(fā)。本發(fā)明正是利用網絡控制器的集中控制地位,將CAS服務器安裝在網絡控制器中,通過將CAS服務器與SDN網絡相結合,利用現(xiàn)有的CAS框架實現(xiàn)局域網內的單點登錄功能,因此本發(fā)明是在網絡設備層而不是在應用層實現(xiàn)單點登錄。
[0013]本發(fā)明中Ticket是CAS服務器在請求數(shù)據的IP包中設置的識別信息,通過Ticket可以得知用戶身份。本發(fā)明在網絡控制器上復制各信息子系統(tǒng)的訪問認證接口,而不是修改各信息子系統(tǒng)中已有的訪問控制接口實現(xiàn)。每個信息子系統(tǒng)的訪問接口可以根據用戶身份生成或獲取的認證信息。將這些認證信息作為頭部信息插入到請求數(shù)據的IP包中,CAS月艮務器就能確認這些請求數(shù)據的IP包的合法性,從而可以正常進入到目標信息子系統(tǒng)中。
[0014]現(xiàn)有的各信息子系統(tǒng)中各種平臺的訪問控制方法,如圖2所示,一般是工作在網絡應用層。而本發(fā)明的網絡控制器通過將Ticket寫入IP包作為頭部信息,在網絡設備層面上切入工作,其安全處置時間點超前;同時在CAS服務器上配置所有信息子系統(tǒng)的訪問接口,所述訪問接口復制相對應的信息子系統(tǒng)中原有的訪問控制邏輯,因此,無論信息子系統(tǒng)原先采用何種訪問控制技術,在本發(fā)明中均能被無縫集成到一個單點登錄體系之中,而且集成過程中無需修改信息子系統(tǒng)源代碼。
[0015]優(yōu)選地,所述網絡協(xié)議模塊為IPSec協(xié)議棧。
[0016]優(yōu)選地,所述步驟4)中所述轉發(fā)面接收到所述IP包后,所述轉發(fā)面檢查所述IP包的目標地址信息,如果該IP包的目標地址信息與所述局域網中的任一信息子系統(tǒng)的地址信息均不對應,則所述轉發(fā)面將所述IP包直接轉發(fā)至該目標地址信息所指向的所述局域網以外的網絡服務器。
[0017]對于無法安裝IPSec協(xié)議棧的客戶端(通常這些客戶端來自于外網,其軟件配置不受企業(yè)規(guī)則控制),可以在SDN網絡的轉發(fā)面上記錄源IP地址、端口號、最終訪問時間等,并以超時機制(如超過30分鐘等)對長期未發(fā)生后繼訪問的客戶端信息予以清除,本發(fā)明的網絡控制器可以通過跟蹤這些客戶端從而替客戶端維護IP頭。
【附圖說明】
[0018]下面結合附圖對本發(fā)明作進一步說明。
[0019]圖1是現(xiàn)有技術中基于CAS技術的單點登錄方法。
[0020]圖2是現(xiàn)有技術中客戶端的訪問控制方法。
[0021]圖3是本發(fā)明實施例中客戶端的訪問控制方法。