一種基于saml的跨域單點登錄系統(tǒng)及登錄方法
【專利摘要】本發(fā)明公開了一種基于SAML的跨域單點登錄系統(tǒng)及登錄方法,包括跨域訪問中心模塊、域內(nèi)單點登錄子系統(tǒng)模塊和用戶管理子系統(tǒng)模塊、域內(nèi)單點登錄控制中心模塊,其中跨域訪問中心模塊包括跨域用戶數(shù)據(jù)映射同步模塊、多級域域ID生成模塊、多級域訪問認證接口模塊。該跨域單點登錄系統(tǒng)采用跨域訪問中心的創(chuàng)建,將多級域的域內(nèi)認證提升到了多級域之間的統(tǒng)一跨域認證,通過統(tǒng)一認證源的整合,將多級域的入口整合到了一起,變得更為高效,節(jié)省了用戶訪問多級域的時間,提高了認證效率。
【專利說明】—種基于SAML的跨域單點登錄系統(tǒng)及登錄方法
【技術領域】
[0001]本發(fā)明屬于對Web應用的整合管理【技術領域】,涉及一種基于SAML的跨域單點登錄系統(tǒng),還涉及上述跨域單點登錄系統(tǒng)的跨域單點登錄方法。
【背景技術】
[0002]單點登錄機制由單點登錄的服務器端(server)和集成在參與單點登錄應用端的客戶端(client)組成。公知的單點登錄機制基本上采用票據(jù)的形式,來存儲用戶在首次認證通過后的相關信息,具體操作流程為:對于多應用系統(tǒng),當用戶首次訪問某個應用時,首先被引導到認證中心進行系統(tǒng)登錄,根據(jù)用戶登錄信息,認證中心進行身份驗證;如果驗證通過,認證中心向用戶返回票據(jù)(ticket);那么用戶再次訪問其他應用時會自動攜帶該票據(jù),作為認證的憑據(jù),當應用接收到用戶的訪問請求之后首先把ticket送到認證中心進行效驗,檢查ticket是否合法;如果驗證合法,用戶不需要重新登陸即可訪問其他應用,稱之為“一次登錄,多方認證”。
[0003]目前,單點登錄領域比較流行的解決方案是Yale大學發(fā)起的認證系統(tǒng),稱為CAS,即為Center Authenticat1n Service,其原理與上述單點登錄機制相同?,F(xiàn)有技術的不足是只能解決域內(nèi)的單點登錄,并未提出對于多域認證的整合,在多級域的情況下,存在用戶即屬于子域A又屬于子域B的情況。而用戶在訪問所擁有的A、B域的應用時,需要通過不同的A、B域入口進行訪問。并且現(xiàn)有的技術并未將權限的判斷放入到單點登錄中,即就是用戶可以進入應用,但不能控制用戶進入應用的細粒度。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的目的是提供一種基于SAML的跨域單點登錄系統(tǒng),解決了現(xiàn)有技術中存在的同一用戶訪問不同域時需要通過不同的域入口分別登錄及不能控制用戶進入應用的細粒度的技術問題。
[0005]本發(fā)明還提供上述跨域單點登錄系統(tǒng)的跨域單點登錄方法。
[0006]本發(fā)明提供的第一技術方案是,一種基于SAML的跨域單點登錄系統(tǒng),包括跨域訪問中心模塊、域內(nèi)單點登錄子系統(tǒng)模塊、用戶管理子系統(tǒng)模塊和域內(nèi)單點登錄控制中心模塊;跨域訪問中心模塊,用于同步用戶數(shù)據(jù)、域ID生成、多級域訪問認證接口的管理;域內(nèi)單點登錄子系統(tǒng),用于在用戶進行多級域登錄時對用戶進行認證,并返回用戶可以訪問的若干個多級域;用戶管理子系統(tǒng)模塊用于用戶在域內(nèi)訪問應用時,進行域內(nèi)應用訪問權限的分配,并對用戶的HTTP訪問請求進行攔截,將請求內(nèi)容與用戶票據(jù)中的權限信息進行比對,實現(xiàn)對于用戶訪問權限的控制;域內(nèi)單點登錄控制中心模塊是用于配置域內(nèi)單點登錄的模塊,其包括對多級域ID注冊、域內(nèi)單點登錄子系統(tǒng)認證源的配置。
[0007]本發(fā)明的第一技術方案的特點還在于,
[0008]跨域訪問中心模塊包括跨域用戶數(shù)據(jù)映射同步模塊、多級域域ID生成模塊、多級域訪問認證接口模塊;跨域用戶數(shù)據(jù)映射同步模塊為跨域訪問中心發(fā)布用戶數(shù)據(jù)的同步接口,用于將域ID信息與用戶的映射信息進行封裝,一并同步到跨域訪問中心;多級域域ID模塊是用于生成多級域的唯一標識,包括多級域ID的生成;多級域訪問認證接口模塊用于提供多級域唯一的統(tǒng)一認證源,包括數(shù)據(jù)比對、數(shù)據(jù)解析,用于將多級域的用戶通過用戶數(shù)據(jù)映射的方式同步到統(tǒng)一認證源中。
[0009]本發(fā)明提供的另一技術方案是,上述跨域單點登錄系統(tǒng)的跨域單點登錄的方法,包括以下步驟:
[0010]步驟1,跨域認證注冊,詳細步驟如下,
[0011]1.1.部署域內(nèi)單點登錄系統(tǒng):利用用戶管理子系統(tǒng)模塊分別錄入用戶數(shù)據(jù),即用戶名和密碼,錄入的用戶數(shù)據(jù)需要以用戶的身份證號為唯一標識信息,這樣便于在將用戶數(shù)據(jù)同步到跨域訪問中心時,提供可依據(jù)的用戶映射關系;
[0012]1.2.為分布的域內(nèi)單點登錄系統(tǒng)申請域ID,由域內(nèi)單點登錄系統(tǒng)管理員利用多級域域ID模塊申請該域單點登錄系統(tǒng)SS0ID,多級域域ID模塊通過跨域訪問中心提供的域ID生成接口,將域ID生成,同時保留在跨域訪問中心和子域的存儲中,便于在提供數(shù)據(jù)訪問、數(shù)據(jù)同步過程中,表示用戶數(shù)據(jù)的來源,域內(nèi)單點登錄子系統(tǒng)的描述信息;
[0013]1.3.由域內(nèi)單點登錄系統(tǒng)管理員將域內(nèi)單點登錄子系統(tǒng)的用戶數(shù)據(jù)進行數(shù)據(jù)同步,在用戶的映射數(shù)據(jù)同步過程中,將域ID信息與用戶的映射信息進行封裝,一并同步到跨域訪問中心,這樣就標識了在跨域訪問中心的每個用戶映射數(shù)據(jù)的數(shù)據(jù)來源,然后由跨域用戶數(shù)據(jù)映射同步模塊的數(shù)據(jù)接口進行接收,處理用戶數(shù)據(jù)映射關系;
[0014]1.4.在域內(nèi)單點登錄控制中心模塊,將域內(nèi)的認證模式由域內(nèi)認證設置為跨域單點登錄;
[0015]步驟2,進行跨域認證服務,實現(xiàn)用戶跨域單點登錄,具體步驟如下:
[0016]2.1.用戶在域內(nèi)SSO登錄,輸入用戶名和密碼,域內(nèi)SSO將首先調(diào)用跨域訪問中心的認證服務,對用戶提交的信息進行驗證,驗證成功后,將該用戶的所有已授權的域訪問列表返回;
[0017]2.2.用戶選擇需要訪問的子域,跨域訪問中心模塊帶領用戶去子域進行驗證,當子域驗證用戶已經(jīng)跨域登陸成功后,調(diào)用子域權限管理模塊的方法獲取用戶權限信息,將權限信息進行封裝,頒發(fā)用戶子域的憑證信息,并且返回用戶子域的應用列表;
[0018]2.3.用戶選擇需要訪問的應用列表,子域SSO代理用戶訪問應用,通過域內(nèi)單點登錄系統(tǒng)驗證子域憑證的有效性后,便返回應用信息。
[0019]本發(fā)明的有益效果是,本發(fā)明采用了跨域訪問中心的創(chuàng)建,將多級域的域內(nèi)認證提升到了多級域之間的統(tǒng)一跨域認證,通過統(tǒng)一認證源的整合,將多級域的入口整合到了一起,變得更為高效,節(jié)省了用戶訪問多級域的時間,提高了認證效率。另外,本發(fā)明中對單點登錄客戶端的優(yōu)化,采用了過濾器攔截請求內(nèi)容與票據(jù)進行比對,控制了用戶訪問應用的顆粒度,克服了原有單點登錄只能控制到訪問應用這一層的問題,實現(xiàn)了對于用戶、應用權限管理更加仔細的操作。
【專利附圖】
【附圖說明】
[0020]圖1為本發(fā)明的跨域單點登錄系統(tǒng)總體架構圖;
[0021]圖2為本發(fā)明的跨域單點登錄方法;
[0022]圖3為本發(fā)明的跨域認證服務流程。
【具體實施方式】
[0023]下面結合附圖和實施例,對本發(fā)明的【具體實施方式】作進一步描述。
[0024]本發(fā)明的跨域單點登錄系統(tǒng),如圖1所示,包括跨域訪問中心模塊、域內(nèi)單點登錄子系統(tǒng)模塊、用戶管理子系統(tǒng)模塊和域內(nèi)單點登錄控制中心模塊。
[0025]跨域訪問中心模塊是用于同步用戶數(shù)據(jù)、域ID生成、多級域訪問認證接口管理的模塊,其包括跨域用戶數(shù)據(jù)映射同步模塊、多級域域ID生成模塊、多級域訪問認證接口模塊,詳細介紹如下:
[0026](I)跨域用戶數(shù)據(jù)映射同步模塊為跨域訪問中心發(fā)布用戶數(shù)據(jù)的同步接口,接口內(nèi)容包含同步更新、修改、刪除用戶數(shù)據(jù),具體實現(xiàn)為用戶通過子域接口從子域抽取用戶數(shù)據(jù)信息、子域ID信息,在子域進行封裝,然后通過數(shù)據(jù)同步接口傳入到跨域訪問中心。在用戶的映射數(shù)據(jù)同步過程中,會將域ID信息與用戶的映射信息進行封裝,一并同步到跨域訪問中心,這樣就標識了在跨域訪問中心的每個用戶映射數(shù)據(jù)的數(shù)據(jù)來源。
[0027](2)多級域域ID模塊是用于生成多級域的唯一標識,包括多級域ID的生成,用于給每個參與了跨域的多級域都分配域ID,在多級域部署完成后,管理員使用多級域的域ID生成功能,通過跨域訪問中心提供的域ID生成接口,將域ID生成,同時保留在跨域訪問中心和子域的存儲中。
[0028](3)多級域訪問認證接口模塊是用于提供多級域唯一的統(tǒng)一認證源,包括數(shù)據(jù)比對、數(shù)據(jù)解析,用于將多級域的用戶通過用戶數(shù)據(jù)映射的方式同步到統(tǒng)一認證源中,實現(xiàn)這一點,多級域的每一個子域內(nèi)的用戶都具有相同的唯一標識信息,在用戶數(shù)據(jù)同步的過程中,相同唯一標識的用戶信息存儲在同一個數(shù)據(jù)節(jié)點下,數(shù)據(jù)節(jié)點下存儲著用戶每個子域不同的用戶名和密碼信息。
[0029]域內(nèi)單點登錄子系統(tǒng),用于為用戶在進行多級域登錄認證時,需要提供用戶的唯一標識、用戶名、密碼(其中用戶名和密碼可以是用戶在任意域的用戶名、密碼),用戶在登錄成功后,會返回用戶可以訪問的若干個多級域,然后用戶選擇需要訪問的多級域進行訪問。用戶選擇需要訪問的多級域后,即跳轉(zhuǎn)至域內(nèi)單點登錄系統(tǒng)內(nèi),通過解析用戶身份信息,獲取到可以訪問的應用列表。
[0030]用戶管理子系統(tǒng)模塊是用于在域內(nèi)訪問應用時,提供用戶應用訪問權限管理的模塊,其結構用于進行用戶在域內(nèi)應用訪問權限的分配。用戶在域內(nèi)單點登錄子系統(tǒng)訪問應用時,使用單點登錄為應用系統(tǒng)配置的client端,對用戶的HTTP訪問請求進行攔截,與用戶票據(jù)中的權限信息進行比對,對于符合權限信息的請求進行放行,從而,達到對于用戶訪問權限的控制。
[0031]域內(nèi)單點登錄控制中心模塊是用于配置域內(nèi)單點登錄的模塊,其包括對多級域ID注冊、域內(nèi)單點登錄子系統(tǒng)認證源配置,其結構用于在進行多級域訪問時,首先需要通過WebService接口向跨域訪問中心申請多級域ID,成功后返回多級域ID,并且將域ID存儲在本地的Ldap數(shù)據(jù)庫中;其次通過修改配置文件中的信息來更改域內(nèi)單點登錄子系統(tǒng)認證源為多級域訪問認證源。域內(nèi)單點登錄控制中心,對于目前的域內(nèi)單點登錄進行了架構上的改造,對于多級域用戶可以進行認證源選擇,對于多級域,用戶既可以選擇域內(nèi)的認證源進行域內(nèi)私有認證,也可以選擇跨域認證源,參與到多級域的跨域認證中。
[0032]跨域登錄方式
[0033]用戶有兩種跨域登錄方式:域登錄全域訪問和客戶端登錄全域訪問。
[0034]域登錄:用戶登錄任何一個域SSO認證成功,域SSO將展示本域和其他域可訪問的應用資源訪問列表,提供用戶進行已授權的訪問;
[0035]客戶端登錄:用戶通過客戶端登錄,在客戶端應用列表中列出該用戶可訪問的所有域的應用資源訪問列表。用戶點擊應用資源,客戶端瀏覽器打開該域應用系統(tǒng)界面提供用戶進入該系統(tǒng)進行訪問。
[0036]跨域認證注冊流程
[0037]在平臺層使用用戶唯一標識表示賬號ID-域內(nèi)用戶信息映射進行管理,其中域內(nèi)用戶信息由跨域訪問中心與域內(nèi)用戶管理系統(tǒng)進行同步數(shù)據(jù)管理。各個應用層權限由各個子域負責管理分配,如圖2所示,
[0038]步驟1,部署域內(nèi)單點登錄系統(tǒng):利用用戶管理子系統(tǒng)模塊分別錄入用戶數(shù)據(jù),即用戶名和密碼,錄入的用戶數(shù)據(jù)需要以用戶的身份證號為唯一標識信息,這樣便于在將用戶數(shù)據(jù)同步到跨域訪問中心時,提供可依據(jù)的用戶映射關系;
[0039]步驟2,為分布的域內(nèi)單點登錄系統(tǒng)申請域ID,由域內(nèi)單點登錄系統(tǒng)管理員利用多級域域ID模塊申請該域單點登錄系統(tǒng)SS0ID,多級域域ID模塊通過跨域訪問中心提供的域ID生成接口,將域ID生成,同時保留在跨域訪問中心和子域的存儲中,便于在提供數(shù)據(jù)訪問、數(shù)據(jù)同步過程中,表示用戶數(shù)據(jù)的來源,域內(nèi)單點登錄子系統(tǒng)的描述信息;
[0040]步驟3,由域內(nèi)單點登錄系統(tǒng)管理員將域內(nèi)單點登錄子系統(tǒng)的用戶數(shù)據(jù)進行數(shù)據(jù)同步,在用戶的映射數(shù)據(jù)同步過程中,將域ID信息與用戶的映射信息進行封裝,一并同步到跨域訪問中心,這樣就標識了在跨域訪問中心的每個用戶映射數(shù)據(jù)的數(shù)據(jù)來源,然后由跨域用戶數(shù)據(jù)映射同步模塊的數(shù)據(jù)接口進行接收,處理用戶數(shù)據(jù)映射關系;
[0041]步驟4,在域內(nèi)單點登錄控制中心模塊,將域內(nèi)的認證模式由域內(nèi)認證設置為跨域單點登錄;
[0042]跨域認證服務流程
[0043]參與跨域認證服務的在認證服務遵循先到跨域認證服務中進行用戶的認證,讀取用戶相關跨域信息;如果跨域服務中跨域信息未作其他域的關聯(lián)或者網(wǎng)絡不通等原因未有跨域的信息,域內(nèi)的認證服務將進行域內(nèi)的用戶認證和權限認證讀取。參照圖3,服務流程的方法步驟如下:
[0044](I)用戶在域內(nèi)SSO登錄,輸入用戶名和密碼,域內(nèi)SSO將首先調(diào)用跨域訪問中心的認證服務,并將該用戶的所有已授權的域訪問列表返回;
[0045](2)用戶選擇需要訪問的子域,跨域訪問中心模塊帶領用戶去子域進行驗證,當子域驗證用戶已經(jīng)跨域登陸成功后,頒發(fā)子域的憑證信息,并且返回用戶子域的應用列表;
[0046](3)用戶選擇需要訪問的應用列表,子域SSO代理用戶訪問應用,域內(nèi)單點登錄系統(tǒng)驗證子域憑證的有效性后,便返回應用信息。
[0047]跨域認證訪問的流程如下:
[0048]1.用戶向域SSO提出訪問域申請;
[0049]2.域內(nèi)SSO申請登錄,提交用戶名、密碼;
[0050]3.在跨域訪問中心驗證用戶提交的信息;
[0051]4.在驗證成功后,返回用戶可以訪問的子域的列表;
[0052]5.用戶選擇需要訪問的子域,跳轉(zhuǎn)到子域進行驗證跨域登陸;
[0053]6.驗證成功后,調(diào)用子域權限管理模塊的方法獲取用戶權限信息;
[0054]7.將權限信息進行封裝,頒發(fā)用戶子域訪問憑證;
[0055]8.返回用戶子域可訪問的應用列表;
[0056]9.用戶選擇應用發(fā)起應用訪問;
[0057]10.子域驗證用戶憑證的有效性;
[0058]11.驗證成功后,返回給用戶應用信息。
[0059]本發(fā)明采用了跨域訪問中心的創(chuàng)建,將多級域的域內(nèi)認證中提升到了多級域之間的統(tǒng)一跨域認證,通過統(tǒng)一認證源的整合,將多級域的入口整合到了一起,變得更為高效,節(jié)省了用戶訪問多級域的時間,認證效率,克服了原有需要通過多個子域訪問各自擁有的應用的技術問題。
【權利要求】
1.一種基于SAML的跨域單點登錄系統(tǒng),其特征在于,包括跨域訪問中心模塊、域內(nèi)單點登錄子系統(tǒng)模塊、用戶管理子系統(tǒng)模塊和域內(nèi)單點登錄控制中心模塊; 跨域訪問中心模塊,用于同步用戶數(shù)據(jù)、域ID生成、多級域訪問認證接口的管理;域內(nèi)單點登錄子系統(tǒng),用于在用戶進行多級域登錄時對用戶進行認證,并返回用戶可以訪問的若干個多級域; 用戶管理子系統(tǒng)模塊用于用戶在域內(nèi)訪問應用時,進行域內(nèi)應用訪問權限的分配,并對用戶的HTTP訪問請求進行攔截,將請求內(nèi)容與用戶票據(jù)中的權限信息進行比對,實現(xiàn)對于用戶訪問權限的控制; 域內(nèi)單點登錄控制中心模塊是用于配置域內(nèi)單點登錄的模塊,其包括對多級域ID注冊、域內(nèi)單點登錄子系統(tǒng)認證源的配置。
2.如權利要求1所述的一種基于SAML的跨域單點登錄系統(tǒng),其特征在于,所述跨域訪問中心模塊包括跨域用戶數(shù)據(jù)映射同步模塊、多級域域ID生成模塊、多級域訪問認證接口模塊; 跨域用戶數(shù)據(jù)映射同步模塊為跨域訪問中心發(fā)布用戶數(shù)據(jù)的同步接口,用于將域ID信息與用戶的映射信息進行封裝,一并同步到跨域訪問中心; 多級域域ID模塊是用于生成多級域的唯一標識,包括多級域ID的生成; 多級域訪問認證接口模塊用于提供多級域唯一的統(tǒng)一認證源,包括數(shù)據(jù)比對、數(shù)據(jù)解析,用于將多級域的用戶通過用戶數(shù)據(jù)映射的方式同步到統(tǒng)一認證源中。
3.一種基于SAML的跨域單點登錄方法,其特征在于,采用基于SAML的跨域單點登錄系統(tǒng),包括跨域訪問中心模塊、域內(nèi)單點登錄子系統(tǒng)模塊、用戶管理子系統(tǒng)模塊和域內(nèi)單點登錄控制中心模塊,其中跨域訪問中心模塊包括跨域用戶數(shù)據(jù)映射同步模塊、多級域域ID生成模塊、多級域訪問認證接口模塊; 跨域單點登錄方法包括以下步驟: 步驟1,跨域認證注冊,詳細步驟如下, .1.1.部署域內(nèi)單點登錄系統(tǒng):利用用戶管理子系統(tǒng)模塊分別錄入用戶數(shù)據(jù),即用戶名和密碼,錄入的用戶數(shù)據(jù)需要以用戶的身份證號為唯一標識信息,這樣便于在將用戶數(shù)據(jù)同步到跨域訪問中心時,提供可依據(jù)的用戶映射關系; .1.2.為分布的域內(nèi)單點登錄系統(tǒng)申請域ID,由域內(nèi)單點登錄系統(tǒng)管理員利用多級域域ID模塊申請該域單點登錄系統(tǒng)SSOID,多級域域ID模塊通過跨域訪問中心提供的域ID生成接口,將域ID生成,同時保留在跨域訪問中心和子域的存儲中,便于在提供數(shù)據(jù)訪問、數(shù)據(jù)同步過程中,表示用戶數(shù)據(jù)的來源,域內(nèi)單點登錄子系統(tǒng)的描述信息; .1.3.由域內(nèi)單點登錄系統(tǒng)管理員將域內(nèi)單點登錄子系統(tǒng)的用戶數(shù)據(jù)進行數(shù)據(jù)同步,在用戶的映射數(shù)據(jù)同步過程中,將域ID信息與用戶的映射信息進行封裝,一并同步到跨域訪問中心,這樣就標識了在跨域訪問中心的每個用戶映射數(shù)據(jù)的數(shù)據(jù)來源,然后由跨域用戶數(shù)據(jù)映射同步模塊的數(shù)據(jù)接口進行接收,處理用戶數(shù)據(jù)映射關系; .1.4.在域內(nèi)單點登錄控制中心模塊,將域內(nèi)的認證模式由域內(nèi)認證設置為跨域單點登錄; 步驟2,進行跨域認證服務,實現(xiàn)用戶跨域單點登錄,具體步驟如下: .2.1.用戶在域內(nèi)SSO登錄,輸入用戶名和密碼,域內(nèi)SSO將首先調(diào)用跨域訪問中心的認證服務,對用戶提交的信息進行驗證,驗證成功后,將該用戶的所有已授權的域訪問列表返回; .2.2.用戶選擇需要訪問的子域,跨域訪問中心模塊帶領用戶去子域進行驗證,當子域驗證用戶已經(jīng)跨域登陸成功后,調(diào)用子域權限管理模塊的方法獲取用戶權限信息,將權限信息進行封裝,頒發(fā)用戶子域的憑證信息,并且返回用戶子域的應用列表; .2.3.用戶選擇需要訪問的應用列表,子域SSO代理用戶訪問應用,通過域內(nèi)單點登錄系統(tǒng)驗證子域憑證的有效性后,便返回應用信息。
【文檔編號】H04L29/08GK104301418SQ201410570561
【公開日】2015年1月21日 申請日期:2014年10月23日 優(yōu)先權日:2014年10月23日
【發(fā)明者】朱志祥, 王茜, 史晨昱, 趙偉, 劉盛輝, 王佩 申請人:西安未來國際信息股份有限公司, 西安郵電大學