彭勇 黃劍華 王喆 王全亮 王歡
摘 ?要:針對現(xiàn)代信息門戶用戶訪問量大、信息系統(tǒng)集成數(shù)量多的特點,信息系統(tǒng)身份認證分散、用戶體驗差等問題。本文設計了一種分布式協(xié)同統(tǒng)一身份認證平臺。平臺提供認證服務、目錄服務、接口服務、負載均衡和數(shù)據(jù)同步等功能。利用CA數(shù)字證書和SSL協(xié)議,增強認證和傳輸過程中的安全性;采用SSO代理和服務器的模式實現(xiàn)用戶的單點登錄。通過票據(jù)同步、Redis共享數(shù)據(jù)和身份漫游等技術實現(xiàn)分布式協(xié)同身份認證。本文設計的分布式協(xié)同統(tǒng)一身份認證平臺,能夠有效地解決信息系統(tǒng)分散的問題,提升用戶體驗。
關鍵詞:統(tǒng)一身份認證;分布式;身份漫游
中圖分類號:TP393 ? ? 文獻標識碼:A
Design and Implementation of Distributed Cooperation and
Uniform Identity Authentication Platform
PENG Yong, HUANG Jianhua, WANG Zhe, WANG ?Quanliang, WANG Huan
(Guangxi University of Science and Technology, Liuzhou 545006, China)
pengyong@gxust.edu.cn; 872874889@qq.com; 751602523@qq.com;
wqlet@qq.com; wanghuan@gxust.edu.cn
Abstract: Currently, large numbers of visits ?and highly-integrated information system lead to the scattered identity authentication and poor user experience. This paper proposes a distributed collaboration and uniform identity authentication platform. It provides functions such as authentication services, directory services, interface services, load balancing, and data synchronization. CA (Certificate Authority) digital certificate and SSL (Secure Socket Layer) protocol are used to enhance the security in authentication and transmission process. SSO (Single Sign-on) agent and server mode are used to realize single sign-on. Distributed collaboration and uniform identity authentication are achieved through technologies such as ticket synchronization, Redis shared data, and identity roaming. The proposed identity authentication platform can effectively coordinate decentralized information systems, and improve user experience.
Keywords: uniform identity authentication; distributed; identity roaming
1 ? 引言(Introduction)
隨著信息技術的不斷發(fā)展,政府、高校及企事業(yè)部門越來越重視信息化程度,對信息化建設進行了深入探索。近年來各級單位不斷地提高自己的信息化水平,并逐步建立自己的信息門戶,并將多種不同的信息系統(tǒng)進行組合和整合,以達到更好的服務廣大用戶的目的[1,2]。在信息化建設的過程中業(yè)報露出一系列的問題,這些問題在高校當中尤為突出,如用戶登錄入口繁多,缺乏統(tǒng)一的身份認證平臺[3,4]。由于系統(tǒng)的管理部門不統(tǒng)一,進而形成多個登錄入口,缺乏統(tǒng)一的身份認證平臺,用戶無法通過統(tǒng)一的入口來訪問不同的信息系統(tǒng)。此外每個用戶在不同的業(yè)務系統(tǒng)都擁有不同的賬號和密碼,經(jīng)常出現(xiàn)用戶賬號密碼混淆的情況[5,6]。
綜上所述,當今各單位的信息化建設急需整體的規(guī)劃和統(tǒng)一的門戶平臺,為各級用戶提供統(tǒng)一的訪問入口,打破信息孤島的壁壘,最終形成統(tǒng)一的門戶平臺。然而,統(tǒng)一身份認證不僅是門戶平臺的重要組成部分,而且在整個平臺中起到核心的關隘作用[7]。為此本文,針對現(xiàn)代信息門戶用戶訪問量大、信息系統(tǒng)集成數(shù)量多的特點,設計了一種分布式協(xié)同統(tǒng)一身份認證平臺,來提高信息化門戶的安全性和便捷性。
2 ?統(tǒng)一身份認證需求分析(Analysis of unified identity authentication requirements)
2.1 ? 平臺的功能需求
(1)認證服務
統(tǒng)一身份認證平臺提供的認證服務功能,就是要對現(xiàn)有的信息系統(tǒng)提供統(tǒng)一的登錄認證服務,用戶只需要進行一次認證就可以漫游至其他集成的信息系統(tǒng),避免多次記錄賬號密碼。此項功能主要完成以下兩個方面的工作:一是對不同的信息系統(tǒng)賬號進行統(tǒng)一管理,對系統(tǒng)資源進行統(tǒng)一分配。二是與各個子系統(tǒng)進行有效的對接,實現(xiàn)系統(tǒng)的單點登錄和身份漫游[8]。
(2)統(tǒng)一共享數(shù)據(jù)服務
統(tǒng)一共享數(shù)據(jù)服務就是對所有信息系統(tǒng)的用戶數(shù)據(jù),按照統(tǒng)一數(shù)據(jù)標準建立共享數(shù)據(jù)庫。共享數(shù)據(jù)庫不僅存儲用戶的身份信息,還會存儲各系統(tǒng)間的認證接口信息,進而實現(xiàn)統(tǒng)一的認證交互。
(3)認證接口服務
由于集成的信息系統(tǒng)種類繁多、開發(fā)的語言也不盡相同、部署的平臺也具有多樣性。為此統(tǒng)一身份認證平臺要提供認證接口服務。接口服務主要具備以下功能:第一、跨平臺的系統(tǒng)調(diào)用與多種語言支持;第二、單點登錄認證和身份漫游;第三、支持多種協(xié)議,保證運行的可靠性。
(4)負載均衡
由于統(tǒng)一身份認證平臺承載著大量用戶的并發(fā)訪問,為了保證認證平臺的安全平穩(wěn)運行,需要進行負載均衡設計和部署。通過負載均衡技術協(xié)調(diào)多個分布式認證服務器協(xié)同工作,避免單點故障的出現(xiàn),從而影響平臺的可靠性。
(5)數(shù)據(jù)同步服務
由于各個信息系統(tǒng)每天更新的數(shù)據(jù)較為頻繁,用戶變更頻率也較高,依賴人工同步難以及時完成,為此統(tǒng)一身份認證平臺需要提供數(shù)據(jù)同步服務,定時的向子系統(tǒng)推送和拉取數(shù)據(jù),以確保認證信息更新的及時性。
2.2 ? 用戶角色需求
統(tǒng)一身份認證平臺最典型的場景就是高校的數(shù)字化校園平臺。下面以高校的統(tǒng)一身份認證平臺為例,進行用戶角色分析。角色分析主要是確定用戶的種類和角色,在統(tǒng)一身份認證的過程中,通常可以分為普通用戶和系統(tǒng)管理員兩部分,二者因為角色不同、權限不同,所以具備的功能也不同,本文以用例圖的方式對其進行分析,二者的用例圖分別如圖1和圖2所示。
由圖1可知,通常情況下普通用戶會包括登錄、注冊、注銷和進入系統(tǒng)等四類操作。其中在登錄的過程還會進行登錄驗證和SSO代理兩部分操作。
由圖2可知,與普通用戶不同,系統(tǒng)管理員用例包括用戶管理、賬號的關聯(lián)設置、角色配置、權限配置、應用管理等六個操作,實現(xiàn)對整個認證平臺的管理。
3 ?身份認證安全性設計(Identity authentication security design)
由于當前大多數(shù)信息系統(tǒng)都是采用web架構進行設計。為此本文的設計方案主要是針對基于web的應用系統(tǒng)。在身份認證平臺的設計過程中,主要考慮兩種情況:一種是已經(jīng)建成的web應用系統(tǒng);另一種新建的應用系統(tǒng)。對于已經(jīng)建成的應用系統(tǒng),平臺提供組件認證功能,應用系統(tǒng)通過此功能,將自身用戶的賬號密碼與統(tǒng)一身份認證平臺的賬號進行關聯(lián);對于新建的應用系統(tǒng),應用系統(tǒng)本身不在提供用戶賬號管理功能,此部分直接與統(tǒng)一身份認證平臺對接,由認證中心完成。此外,本文還考慮了統(tǒng)一身份認證平臺的安全性,將CA數(shù)字證書集成到設計方案中,保證數(shù)據(jù)安全。用戶在認證時,不再是輸入傳統(tǒng)的用戶名和密碼,還有符合要求的是數(shù)字證書CA。
集成CA數(shù)字證書的身份認證過程如下:
(1)統(tǒng)一身份認證服務器通知CA認證服務器驗證訪問是否持有CA數(shù)字證書,如果沒有數(shù)字證書則拒絕訪問,并給出提示信息;如果持有數(shù)字證書,則通知統(tǒng)一身份認證服務器,并有統(tǒng)一身份認證服務器執(zhí)行第(2)步。
(2)服務器驗證用戶輸入的賬號和密碼,如果驗證不通過,則提示用戶;如果驗證通過,則執(zhí)行第(3)步。
(3)統(tǒng)一身份認證服務器獲取身份信息,并進行數(shù)據(jù)同步,獲取用戶可以訪問的資源列表。
(4)通過SSL協(xié)議建立數(shù)據(jù)傳輸通道,向用戶展示可訪問的資源列表。用戶選擇要訪問的應用系統(tǒng)。
(5)統(tǒng)一身份認證系統(tǒng)通知認證服務器,建立漫游信息。
4 ? 單點登錄設計(Single sign-on design)
在整個統(tǒng)一身份認證平臺中,單點登錄模塊起到核心的作用。在本文的單點登錄設計采用的是集中式的架構。用戶通過用戶名、密碼登錄成功后,將獲取到有認證服務器分發(fā)的認證令牌Token,令牌的唯一標識為用戶的SessionID。采用此種模式設計主要是基于Session在同一次會話內(nèi)相關信息會保留,可以維持服務器訪問資源的持續(xù)性。本方案中,用戶一旦通過用戶名密碼以及數(shù)字證書CA登錄成功以后,系統(tǒng)就會與用戶端建立一個會話,然后生成令牌分發(fā)給用戶和其他認證服務系,這樣用戶就可以通過令牌進行身份漫游了。
單點登錄過程的身份認證過程如圖3所示。由圖3可知,在本文設計的單點登錄過程中,包含用戶、登錄、驗證及應用系統(tǒng)四部分。
用戶為應用系統(tǒng)的訪問者;登錄為提供統(tǒng)一入口的門戶登錄平臺,此部分會采集用戶的賬號密碼信息。驗證提供身份認證操作,主要進行用戶身份認證及認證令牌的生成和分發(fā);應用系統(tǒng)為用戶訪問的對象,負責在本系統(tǒng)內(nèi)容的身份生成和訪問控制,并完成相關業(yè)務操作。此外應用系統(tǒng)在用戶訪問的時候還會識別用戶的會話以及持有token令牌。如果令牌真實,則允許其訪問;如果令牌無效,則跳轉(zhuǎn)至登錄頁面。
用戶申請訪問某一個信息系統(tǒng),信息系統(tǒng)判斷用戶的身份狀態(tài),如果發(fā)現(xiàn)其存在令牌,則根據(jù)漫游信息,向認證服務器獲取身份信息,并允許其訪問;如果發(fā)現(xiàn)其沒有令牌,則返回登錄入口,進行登錄操作。單點登錄的過程為:
(1)用戶發(fā)起登錄請求,服務器響應登錄頁面,用戶輸入賬號和密碼,向統(tǒng)一身份認證服務器發(fā)起請求,提交登錄表單。
(2)認證服務端接收到請求后,提取表單數(shù)據(jù),進行用戶憑證的校驗,并調(diào)用驗證模塊。
(3)驗證模塊對用戶的賬號密碼進行驗證,并獲取用戶的ID及用戶相關的其他信息,并將這些信息存儲至Session對象中,同時做出響應。
(4)登錄模塊收到驗證模塊的響應后,收到用戶的令牌Token,系統(tǒng)根據(jù)此令牌獲取用戶可以訪問的資源列表,并將其顯示在門戶列表上。
(5)用戶選擇要訪問的信息系統(tǒng)目錄。
(6)用戶端將獲取到的令牌發(fā)送至認證服務端,對用戶身份進行驗證。
(7)認證服務端對用戶的驗證請求做出響應,并通知應用系統(tǒng)。
(8)應用系統(tǒng)響應用戶請求,并生成用戶在應用系統(tǒng)權限列表和功能集合,并在應用系統(tǒng)中進行展示。
5 ?分布式協(xié)同認證設計(Design of distributed authentication)
考慮到統(tǒng)一身份認證的高可用需求。本文采用分布式協(xié)同認證的方式來進行認證。本方案中,包括多臺認證服務器和兩臺數(shù)據(jù)存儲服務器。其中認證服務器負責采集用戶的登錄狀態(tài),而數(shù)據(jù)庫服務器負責存儲相關的登錄信息。此外由于是多機協(xié)同工作,需要處理認證服務器和數(shù)據(jù)庫服務器的數(shù)據(jù)同步和緩存。本方案采用Redis技術實現(xiàn)對認證會話Session、TGT票和ST票據(jù)的同步,實現(xiàn)數(shù)據(jù)同步的緩存和持久。
5.1 ? Session會話同步
由于本文采用的是分布式協(xié)同認證,所以不同子系統(tǒng)的有著不同的請求域。這就要求用戶在訪問和認證的過程中,要將Session信息同步到不同子系統(tǒng)中,從而保證用戶認證后可以進行身份漫游,實現(xiàn)不同子系統(tǒng)的無縫切換。
為了實現(xiàn)會話同步,本文采用的是通過Redis技術將會話信息存儲到共享數(shù)據(jù)庫中,改變原有存儲在web中間件內(nèi)存中的存儲方式,實現(xiàn)會話信息的持久化,并通過CAS的服務器端進行會話共享,進而實現(xiàn)多認證服務器的協(xié)同工作,實現(xiàn)用戶的身份漫游。
5.2 ? 認證票據(jù)
在基于CAS的認證方案中,包含著兩種至關重要的票據(jù)TGT和ST,其中TGT為登錄票據(jù),ST為訪問票據(jù)。其中登錄票據(jù)TGT包含:ID、創(chuàng)建時間、過期策略、狀態(tài)及最后的使用時間等信息。訪問票據(jù)ST則包含著ID、訪問目錄、創(chuàng)建時間等信息。二者在認證的過程中,通過認證是否成功進行轉(zhuǎn)換和同步,如果登錄成功則將TGT同步轉(zhuǎn)換為ST,如果不成功,則TGT銷毀和終止。
5.3 ? Redis共享數(shù)據(jù)的存儲結構
本文采用Redis方案存儲統(tǒng)一身份認證中的TGT、ST票據(jù)和Session會話信息。利用哈希的原理,對這三個對象進行鍵值對的映射。在Redis得存儲過程中,通過鍵值對方式進行存儲。其中對于Session會話對象,其鍵key為Session會話的ID,值為Session對象;對于票據(jù)TGT、ST,其ID為序列化后通過MD5計算得到的值,值為序列化后對象。Redis存儲方案中的具體數(shù)據(jù)結構如表1所示。
5.4 ? 同步數(shù)據(jù)的實現(xiàn)
由于本文采用的是集群式的Redis部署方案,為此需要考慮集群之間的數(shù)據(jù)同步過程。本文在集群搭建的過程中,采用的是Sentinel流量控制框架,分別構造了三個數(shù)據(jù)節(jié)點和監(jiān)控節(jié)點,從而保證集群系統(tǒng)的穩(wěn)定運行。
集群中的三個數(shù)據(jù)節(jié)點中,一個節(jié)點為主節(jié)點,兩個為從節(jié)點,形成了主從同步的高可用方案。其中主節(jié)點負責認證數(shù)據(jù)的寫入,從節(jié)點負責數(shù)據(jù)的讀取操作,二者通過中繼推送的方式實現(xiàn)數(shù)據(jù)同步。在認證的過程主節(jié)點上會根據(jù)數(shù)據(jù)節(jié)點的負載情況,將認證請求分發(fā)至數(shù)據(jù)節(jié)點,進而實現(xiàn)負載均衡。
在集群中Sentinel流量控制框架被部署在監(jiān)控節(jié)點上。監(jiān)
控節(jié)點會對數(shù)據(jù)節(jié)點進行監(jiān)控,在集群運行的過程中,如果發(fā)現(xiàn)某一個節(jié)點服務異?;蛘叱霈F(xiàn)故障,則對節(jié)點進行故障標識,后續(xù)將不再分配訪問流量,并通過郵件或者其他消息的形式通知給管理員,告知其及時處理。
6 ? 結論(Conclusion)
針對現(xiàn)代信息門戶用戶訪問量大、信息系統(tǒng)集成數(shù)量多的特點,信息系統(tǒng)身份認證分散、用戶體驗差等問題。本文設計了一種分布式協(xié)同統(tǒng)一身份認證平臺。平臺提供認證服務、目錄服務、接口服務、負載均衡及數(shù)據(jù)同步等功能。利用CA數(shù)字證書和SSL協(xié)議,增強認證和傳輸過程中的安全性;采用SSO代理和服務器的模式實現(xiàn)用戶的單點登錄。通過票據(jù)同步、Redis共享數(shù)據(jù),以及身份漫游等技術實現(xiàn)分布式協(xié)同身份認證。本文設計分布式協(xié)同統(tǒng)一身份認證平臺,能夠有效提高信息化門戶的安全性和便捷性。
參考文獻(References)
[1] 方乃釵.統(tǒng)一身份認證技術在機場的應用[J].江蘇航空,2020?(02):34-35.
[2] 尹蕊,高陽,李凱,等.身份認證技術在電力行業(yè)移動應用中的應用[J].中國新通信,2020,22(10):116.
[3] Entao Luo,Kehua Guo,Yayuan Tang,etal.Hidden the true identity and dating characteristics based on quick private matching in mobile social networks[J].Future Generation Computer Systems,2020(109):633-641.
[4] Quan Liu,Bei Gong,Zhenhu Ning.Research on CLPKC-IDPKC cross-domain identity authentication for IoT environment[J].Computer Communications,2020(157):410-416.
[5] 賈悠,葉常華,盧宇浩,等.一種基于安全標簽的單向身份認證技術[J].通信技術,2020,53(05):1231-1234.
[6] 徐安令.基于三大平臺的高校數(shù)字化校園應用系統(tǒng)整合集成設計[J].科技資訊,2020,18(06):29;31.
[7] 王群,李馥娟.一種基于單點登錄的實驗室統(tǒng)一身份認證方案[J].實驗技術與管理,2020,37(05):219-223.
[8] 江澤濤,徐娟娟.云環(huán)境下基于簽密的異構跨域身份認證方案[J].計算機應用,2020,40(03):740-746.
作者簡介:
彭 ? 勇(1975-),男,碩士,工程師.研究領域:數(shù)字化校園,網(wǎng)絡與信息安全.
黃劍華(1982-),男,碩士,工程師.研究領域:計算機網(wǎng)絡,密碼學.本文通訊作者.
王 ? 喆(1989-),女,碩士,助理研究員.研究領域:網(wǎng)絡輿論安全.
王全亮(1989-),男,碩士,講師.研究領域:教育技術.
王 ? 歡(1987-),男,博士,副研究員.研究領域:網(wǎng)絡與信息安全.