本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種基于單點登錄的認證方法及裝置。
背景技術(shù):
SSO(Single Sign On,單點登錄)是在多個應(yīng)用系統(tǒng)中,用戶只需要登錄一次就可以訪問所有相互信任的應(yīng)用系統(tǒng),是目前比較流行的企業(yè)業(yè)務(wù)整合的解決方案之一。在WEB(網(wǎng)絡(luò))應(yīng)用中,可以采用三方庫來實現(xiàn)單點登錄,目前在WEB應(yīng)用中使用的三方庫一般為CAS(Central Authentication Service,中心認證服務(wù)),在采用CAS進行單點登錄時需要在WEB容器中配置過濾器,并且需要在過濾器中配置認證地址等參數(shù),這些參數(shù)都是根據(jù)具體的WEB應(yīng)用預(yù)先配置的參數(shù)。
目前,一般一個WEB容器中只有一個過濾器,該過濾器中的認證地址是根據(jù)公有IP地址配置的。但是,目前為了實現(xiàn)網(wǎng)絡(luò)安全,終端一般通過私有IP地址訪問網(wǎng)絡(luò),當終端發(fā)送訪問請求時,路由器可以將訪問請求中的私有IP地址進行NAT(Network Address Translation,網(wǎng)絡(luò)地址轉(zhuǎn)換),將私有IP地址轉(zhuǎn)換為公有IP地址以實現(xiàn)終端接入網(wǎng)絡(luò)。在實現(xiàn)單點登錄時,首先終端向過濾器發(fā)送認證請求,認證請求中攜帶私有IP地址,由于過濾器中并未配置該私有IP地址的相關(guān)信息,所以無法處理攜帶私有IP地址的認證請求,導(dǎo)致終端無法訪問WEB服務(wù)器。
技術(shù)實現(xiàn)要素:
本發(fā)明的實施例提供一種基于單點登錄的認證方法及裝置,可以解決終端無法訪問WEB服務(wù)器的問題。
為達到上述目的,本發(fā)明的實施例采用如下技術(shù)方案:
一種基于單點登錄的認證方法,包括:
接收終端發(fā)送的認證請求,認證請求中攜帶待訪問IP地址;
根據(jù)待訪問IP地址確定認證請求的認證請求類型;
判斷是否存在所述認證請求類型對應(yīng)的過濾器邏輯鏈管理器;
若存在,則調(diào)用所述認證請求類型對應(yīng)的過濾器邏輯鏈管理器處理認證請求;
若不存在,則創(chuàng)建所述認證請求類型對應(yīng)的過濾器邏輯鏈管理器以及所述認證請求類型對應(yīng)的三方庫過濾器組;
調(diào)用所述認證請求類型對應(yīng)的過濾器邏輯鏈管理器處理認證請求。
一種基于單點登錄的認證裝置,包括:
接收單元,用于接收終端發(fā)送的認證請求,認證請求中攜帶待訪問IP地址;
確定單元,用于根據(jù)所述接收單元接收的認證請求中的待訪問IP地址確定認證請求的認證請求類型;
判斷單元,用于判斷是否存在所述確定單元確定的所述認證請求類型對應(yīng)的過濾器邏輯鏈管理器;
處理單元,用于當所述判斷單元的判斷結(jié)果為存在時,調(diào)用所述認證請求類型對應(yīng)的過濾器邏輯鏈管理器處理認證請求;
創(chuàng)建單元,用于當所述判斷單元的判斷結(jié)果為不存在時,創(chuàng)建所述認證請求類型對應(yīng)的過濾器邏輯鏈管理器以及所述認證請求類型對應(yīng)的三方庫過濾器組;
所述處理單元,還用于調(diào)用所述創(chuàng)建單元創(chuàng)建的所述認證請求類型對應(yīng)的過濾器邏輯鏈管理器處理認證請求。
本發(fā)明實施例提供的基于單點登錄的認證方法及裝置,首先接收終端發(fā)送的認證請求,然后根據(jù)認證請求中的待訪問IP地址確定認證請求的認證請求類型,進而判斷是否存在該認證請求類型對應(yīng)的過濾器邏輯鏈管理器,如果存在,則直接調(diào)用認證請求類型對應(yīng)的過濾器邏輯鏈管理器處理認證請求,如果不存在,則創(chuàng)建該認證請求類型對應(yīng)的過濾器邏輯鏈管理器以及三方庫過濾器組,進而調(diào)用創(chuàng)建的該過濾器邏輯鏈管理器處理認證請求,與現(xiàn)有技術(shù)中由于無法進行單點登錄認證而導(dǎo)致無法訪問WEB服務(wù)器的問題相比,本發(fā)明實施例中,如果不存在認證請求類型對應(yīng)的過濾器邏輯鏈管理器時,就會創(chuàng)建該認證請求類型對應(yīng)的過濾器邏輯鏈管理器以及三方庫過濾器組,進而可以由創(chuàng)建的過濾器邏輯鏈管理器來處理認證請求,相當于即使認證請求中攜帶了私有IP地址,如果WEB容器中沒有用于處理該私有IP地址的過濾器邏輯鏈管理器,也可以創(chuàng)建該私有IP地址對應(yīng)的過濾器邏輯鏈管理器,不會出現(xiàn)無法處理認證請求的情況,所以本發(fā)明實施例可以處理攜帶私有IP地址的認證請求,不會出現(xiàn)由于無法處理認證請求而導(dǎo)致終端無法訪問WEB服務(wù)器的情況。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例提供的一種基于單點登錄的認證方法的流程圖;
圖2為本發(fā)明實施例提供的另一種基于單點登錄的認證方法的流程圖;
圖3為本發(fā)明實施例提供的一種基于單點登錄的認證裝置的邏輯結(jié)構(gòu)示意圖;
圖4為本發(fā)明實施例提供的另一種基于單點登錄的認證裝置的邏輯結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
為了解決終端在NAT的場景下無法進行單點登錄認證,進而導(dǎo)致終端無法訪問WEB服務(wù)器的問題,本發(fā)明實施例提供一種基于單點登錄的認證方法,如圖1所示,該方法包括:
101、接收終端發(fā)送的認證請求,認證請求中攜帶待訪問IP地址。
首先,需要說明的是本發(fā)明實施例的執(zhí)行主體可以為WEB容器中集成的具有處理功能的過濾器代理容器,或者可以由WEB容器中的不同的功能模塊執(zhí)行不同的步驟。
需要說明的是,認證請求中攜帶的待訪問地址是私有IP地址,當終端采用該私有IP地址訪問網(wǎng)絡(luò)時,路由器會將該私有IP地址轉(zhuǎn)換為公有IP地址。
102、根據(jù)待訪問IP地址確定認證請求的認證請求類型。
其中,一個公有IP地址對應(yīng)多個私有IP地址,每個私有IP地址對應(yīng)一種認證請求類型,例如,私有IP地址1、私有IP地址2、私有IP地址3都能轉(zhuǎn)換為同一個公有IP地址,且私有IP地址1、私有IP地址2、私有IP地址3分別對應(yīng)一種認證請求類型,每種類型的認證請求由各自類型對應(yīng)的過濾器邏輯鏈路管理器處理。
103、判斷是否存在認證請求類型對應(yīng)的過濾器邏輯鏈管理器。
若存在,則執(zhí)行步驟104,若不存在,則執(zhí)行步驟105。
104、調(diào)用認證請求類型對應(yīng)的過濾器邏輯鏈管理器處理認證請求。
105、創(chuàng)建認證請求類型對應(yīng)的過濾器邏輯鏈管理器以及認證請求類型對應(yīng)的三方庫過濾器組。
需要說明的是,如果不存在認證請求類型對應(yīng)的過濾器邏輯鏈管理器,則WEB容器中當前不存在可以處理該認證請求的過濾器,為了避免出現(xiàn)無法認證的情況,需要創(chuàng)建認證請求類型對應(yīng)的過濾器邏輯鏈管理器以及該過濾器邏輯鏈管理器所管理的三方庫過濾器組。
在本發(fā)明實施例的一種實現(xiàn)方式中,三方庫過濾器組可以包括退出檢查過濾器、票根檢查過濾器、認證用戶獲取過濾器。
退出檢測過濾器,用于實現(xiàn)單點登錄退出功能,用于系統(tǒng)實現(xiàn)退出功能;
認證檢查過濾器,用于在用戶輸入地址后,檢查當前用戶是否登錄,如果沒有登錄需要跳轉(zhuǎn)CAS認證服務(wù)器進行用戶名密碼輸入認證;
票根檢查過濾器,用于在系統(tǒng)通過上一個認證檢查過濾器后,如果認證成功,CAS認證服務(wù)器會攜帶票根跳回跳該系統(tǒng),該過濾器是檢查當前票根是否存在,是否有效,無效會提示錯誤。
認證用戶獲取過濾器,用于在認證完成后,讀取用戶登錄的用戶信息,CAS通過該過濾器完成。
106、調(diào)用認證請求類型對應(yīng)的過濾器邏輯鏈管理器處理認證請求。
可以理解的是,過濾器邏輯鏈管理器可以調(diào)用三方庫過濾器組中的各個過濾器的功能來處理認證請求。
以下對調(diào)用認證請求類型對應(yīng)的過濾器邏輯鏈管理器處理認證請求的方法進行說明,過濾器邏輯鏈管理器需調(diào)用三方過濾器組,根據(jù)認證系統(tǒng)地址跳轉(zhuǎn)到認證系統(tǒng),然后可提示用戶在認證系統(tǒng)的顯示界面中輸入登錄信息,例如用戶名和密碼,然后認證系統(tǒng)對接收到的登錄信息進行驗證,如果驗證成功,則將認證信息存儲到認證系統(tǒng)中,再生成認證信息對應(yīng)的ticket并建立session的cookie,認證系統(tǒng)再跳轉(zhuǎn)會WEB應(yīng)用系統(tǒng),跳轉(zhuǎn)地址中攜帶ticket的參數(shù),此時終端訪問WEB服務(wù)器,過濾器邏輯鏈管理器讀取認證信息從而完成認證。
本發(fā)明實施例提供的基于單點登錄的認證方法,首先接收終端發(fā)送的認證請求,然后根據(jù)認證請求中的待訪問IP地址確定認證請求的認證請求類型,進而判斷是否存在該認證請求類型對應(yīng)的過濾器邏輯鏈管理器,如果存在,則直接調(diào)用認證請求類型對應(yīng)的過濾器邏輯鏈管理器處理認證請求,如果不存在,則創(chuàng)建該認證請求類型對應(yīng)的過濾器邏輯鏈管理器以及三方庫過濾器組,進而調(diào)用創(chuàng)建的該過濾器邏輯鏈管理器處理認證請求,與現(xiàn)有技術(shù)中由于無法進行單點登錄認證而導(dǎo)致無法訪問WEB服務(wù)器的問題相比,本發(fā)明實施例中,如果不存在認證請求類型對應(yīng)的過濾器邏輯鏈管理器時,就會創(chuàng)建該認證請求類型對應(yīng)的過濾器邏輯鏈管理器以及三方庫過濾器組,進而可以由創(chuàng)建的過濾器邏輯鏈管理器來處理認證請求,相當于即使認證請求中攜帶了私有IP地址,如果WEB容器中沒有用于處理該私有IP地址的過濾器邏輯鏈管理器,也可以創(chuàng)建該私有IP地址對應(yīng)的過濾器邏輯鏈管理器,不會出現(xiàn)無法處理認證請求的情況,所以本發(fā)明實施例可以處理攜帶私有IP地址的認證請求,不會出現(xiàn)由于無法處理認證請求而導(dǎo)致終端無法訪問WEB服務(wù)器的情況。
在本發(fā)明實施例提供的另一種實現(xiàn)方式中,對創(chuàng)建過濾器邏輯鏈管理器和三方庫過濾器的方法進行了說明,如圖2所示,上述步驟105、創(chuàng)建認證請求類型對應(yīng)的過濾器邏輯鏈管理器以及所述認證請求類型對應(yīng)的三方庫過濾器組,具體可以實現(xiàn)為步驟1051至步驟1053。
1051、創(chuàng)建認證請求類型對應(yīng)的過濾器邏輯鏈管理器。
需要說明的是,每個過濾器邏輯鏈管理器用于處理一種類型的認證請求,且每個過濾器邏輯鏈管理器管理一組三方庫過濾器。
1052、根據(jù)待訪問IP地址生成認證請求類型對應(yīng)的三方庫過濾器組的配置參數(shù)。
其中,配置參數(shù)包括:認證系統(tǒng)地址、WEB應(yīng)用地址、認證信息存儲地址。
其中,認證系統(tǒng)地址為用于對該認證請求進行認證的認證系統(tǒng)的地址。
WEB應(yīng)用地址為待訪問IP地址所對應(yīng)的WEB應(yīng)用系統(tǒng)的地址。
認證信息存儲地址為用于存儲認證信息的存儲區(qū)域或者系統(tǒng)的地址。
1053、根據(jù)配置參數(shù)創(chuàng)建認證請求類型對應(yīng)的三方庫過濾器組。
可以理解的是,由于配置參數(shù)是根據(jù)待訪問IP地址生成的,為與該認證請求類型所匹配的配置參數(shù),所以根據(jù)該配置參數(shù)生成的三方過濾器組可以用于處理該類型的認證請求。
需要說明的是,為了后續(xù)接收到相同類型的認證請求時,可以直接調(diào)用該過濾器邏輯鏈管理器來處理認證請求,在創(chuàng)建該認證請求對應(yīng)的過濾器邏輯鏈管理器之后,還需存儲認證請求類型與過濾器邏輯鏈管理器之間的對應(yīng)關(guān)系。
對于本發(fā)明實施例,當不存在與認證請求類型對應(yīng)的過濾器邏輯鏈管理器時,就創(chuàng)建該認證請求類型對應(yīng)的過濾器邏輯鏈管理器以及三方庫過濾器,避免了認證請求無法被處理的情況出現(xiàn),且每次創(chuàng)建過濾器邏輯鏈路管理器,都會存儲新建的過濾器邏輯鏈管理器與認證請求類型的對應(yīng)關(guān)系,在下次接收到相同類型的認證請求時,就可以直接調(diào)用,無需重新創(chuàng)建過濾器邏輯鏈管理器,提高了認證請求的處理效率。
對應(yīng)于上述方法實施例,本發(fā)明實施例還提供一種基于單點登錄的認證裝置,如圖3所示,該裝置包括:接收單元301,確定單元302,判斷單元303,處理單元304,創(chuàng)建單元305。
接收單元301,用于接收終端發(fā)送的認證請求,認證請求中攜帶待訪問IP地址;
確定單元302,用于根據(jù)接收單元301接收的認證請求中的待訪問IP地址確定認證請求的認證請求類型;
判斷單元303,用于判斷是否存在確定單元302確定的認證請求類型對應(yīng)的過濾器邏輯鏈管理器;
處理單元304,用于當判斷單元303的判斷結(jié)果為存在時,調(diào)用認證請求類型對應(yīng)的過濾器邏輯鏈管理器處理認證請求;
創(chuàng)建單元305,用于當判斷單元303的判斷結(jié)果為不存在時,創(chuàng)建認證請求類型對應(yīng)的過濾器邏輯鏈管理器以及認證請求類型對應(yīng)的三方庫過濾器組;
處理單元304,還用于調(diào)用創(chuàng)建單元305創(chuàng)建的認證請求類型對應(yīng)的過濾器邏輯鏈管理器處理認證請求。
在本發(fā)明實施例提供的另一種實現(xiàn)方式中,創(chuàng)建單元305,還用于創(chuàng)建認證請求類型對應(yīng)的過濾器邏輯鏈管理器;根據(jù)待訪問IP地址生成認證請求類型對應(yīng)的三方庫過濾器組的配置參數(shù);根據(jù)配置參數(shù)創(chuàng)建認證請求類型對應(yīng)的三方庫過濾器組。
其中,配置參數(shù)至少包括:認證系統(tǒng)地址、WEB應(yīng)用地址、認證信息存儲地址。
在本發(fā)明實施例提供的另一種實現(xiàn)方式中,如圖4所示,該裝置還包括:存儲單元306。
存儲單元306,用于存儲認證請求類型與過濾器邏輯鏈管理器之間的對應(yīng)關(guān)系。
在本發(fā)明實施例提供的另一種實現(xiàn)方式中,處理單元304,還用于通過請求類型對應(yīng)的過濾器邏輯鏈管理器,調(diào)用三方庫過濾器組跳轉(zhuǎn)到認證系統(tǒng)地址對應(yīng)的認證系統(tǒng);在認證系統(tǒng)中接收用戶輸入的登錄信息;對用戶輸入的登錄信息進行驗證;若驗證成功,則將認證信息存儲到認證信息存儲地址中;跳轉(zhuǎn)到WEB應(yīng)用地址對應(yīng)的WEB應(yīng)用系統(tǒng),并向WEB應(yīng)用系統(tǒng)發(fā)送認證信息;從認證信息存儲地址中讀取認證信息,通過讀取到的認證信息驗證從認證系統(tǒng)中接收到的認證信息的有效性;若驗證成功,則向終端發(fā)送認證請求成功響應(yīng)。
本發(fā)明實施例提供的基于單點登錄的認證裝置,首先接收單元接收終端發(fā)送的認證請求,然后確定單元根據(jù)認證請求中的待訪問IP地址確定認證請求的認證請求類型,進而判斷單元判斷是否存在該認證請求類型對應(yīng)的過濾器邏輯鏈管理器,如果存在,處理單元則直接調(diào)用認證請求類型對應(yīng)的過濾器邏輯鏈管理器處理認證請求,如果不存在,則創(chuàng)建單元創(chuàng)建該認證請求類型對應(yīng)的過濾器邏輯鏈管理器以及三方庫過濾器組,進而處理單元調(diào)用創(chuàng)建的該過濾器邏輯鏈管理器處理認證請求,與現(xiàn)有技術(shù)中由于無法進行單點登錄認證而導(dǎo)致無法訪問WEB服務(wù)器的問題相比,本發(fā)明實施例中,如果不存在認證請求類型對應(yīng)的過濾器邏輯鏈管理器時,就會創(chuàng)建該認證請求類型對應(yīng)的過濾器邏輯鏈管理器以及三方庫過濾器組,進而可以由創(chuàng)建的過濾器邏輯鏈管理器來處理認證請求,相當于即使認證請求中攜帶了私有IP地址,如果WEB容器中沒有用于處理該私有IP地址的過濾器邏輯鏈管理器,也可以創(chuàng)建該私有IP地址對應(yīng)的過濾器邏輯鏈管理器,不會出現(xiàn)無法處理認證請求的情況,所以本發(fā)明實施例可以處理攜帶私有IP地址的認證請求,不會出現(xiàn)由于無法處理認證請求而導(dǎo)致終端無法訪問WEB服務(wù)器的情況。
通過以上的實施方式的描述,所屬領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件的方式來實現(xiàn),當然也可以通過硬件,但很多情況下前者是更佳的實施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在可讀取的存儲介質(zhì)中,如計算機的軟盤,硬盤或光盤等,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述的方法。
以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)以所述權(quán)利要求的保護范圍為準。