摘要:針對高校的學生和教職工需要訪問數量眾多的信息系統(tǒng),每個系統(tǒng)都需要單獨的用戶名和密碼的問題,提出高校統(tǒng)一身份認證平臺。首先,介紹高校統(tǒng)一身份認證平臺的具體功能;然后,分析單點登錄的3種常見技術:中央身份服務、全斷言標記語言、開放授權;最后,結合學校情況,對高校統(tǒng)一身份認證平臺的單點登錄進行應用測試。測試結果表明,用戶在通過單點登錄后,所有系統(tǒng)都能同步登入,功能和性能滿足需求。
關鍵詞:高校統(tǒng)一身份認證平臺;單點登錄技術;中央身份服務;全斷言標記語言;開放授權
中圖分類號:TP391.4 文獻標志碼:A 文章編號:1674-2605(2023)06-0010-04
DOI:10.3969/j.issn.1674-2605.2023.06.010
ExplorationofSingle Signon TechnologyforUnified IdentityAuthenticationPlatform in Universities
KEJiahaiHUANGJinrongDU LingCHENG Zhan
(Guangzhou Medical University, Guangzhou511436, China)
Abstract:In response to the issue that students and faculty in universities need to access a large number of information systems, each system requires a separate username and password, a unified identity authentication platform for universities is proposed. Firstly, introduce the specific functions of the unified identity authentication platform for universities; Then, analyze the three common techniques of single sign on: central authentication service, security assertion markup language, open authorization; Finally, based on the situation of the school, conduct application testing on the single sign on of the unified identity authentication platform for universities. The test results show that after single sign on, users can log in to all systems synchronously, and the functionality and performance meet the requirements.
Keywords:unified identity authentication platform in universities;singlesignon technology; CAS; SAML; OAuth
0引言
隨著信息技術的不斷發(fā)展和普及,高校的各種教學和管理活動越來越依賴各種信息系統(tǒng)。在智慧校園的建設過程中,高校信息系統(tǒng)扮演著非常關鍵的角色,從辦公OA、教育教學、人事管理、教務管理、在線學習平臺、科研管理、學生事務到后勤管理,高校的各種業(yè)務活動都離不開信息系統(tǒng)的支持。但在實際的高校環(huán)境中,這些信息系統(tǒng)一般由不同的供應商提供,有各自獨立的賬號和密碼,學生和教職工需要在不同的系統(tǒng)之間頻繁地切換,給用戶帶來了很大的不便。
因此,實現統(tǒng)一身份認證,即用戶只需要登錄一次,就可以訪問所有的系統(tǒng),已成為高校信息化建設的重要課題。為解決這一問題,高校的統(tǒng)一身份認證平臺應運而生,它可以實現用戶在各個系統(tǒng)中的統(tǒng)一登錄和訪問控制。
1統(tǒng)一身份認證平臺的具體功能
統(tǒng)一身份認證平臺是一個集中管理和提供身份認證和授權服務的平臺,用于實現用戶在多個系統(tǒng)中的單點登錄和統(tǒng)一身份管理。為了提供集中和統(tǒng)一的方式來管理和驗證用戶的身份,統(tǒng)一身份認證平臺通常需實現單點登錄、身份驗證、用戶管理、權限管理、多因素認證、審計和報告、安全性和合規(guī)性等功能。
單點登錄,允許用戶只需要進行一次身份驗證,就可以訪問多個應用和服務,不僅可以提供更好的用戶體驗,還可以減少密碼被盜用的風險。
身份驗證,通常通過用戶名、密碼或其他形式的憑證(如數字證書等)來驗證用戶的身份,確保用戶是真實的。
用戶管理,提供一種集中的方式來創(chuàng)建、更新、刪除和查詢用戶,簡化用戶管理的復雜性,提高效率。
權限管理,定義和管理用戶的權限,確保用戶只能訪問被授權的資源和服務。
多因素認證,要求用戶提供多種形式的憑證來驗證其身份,提高安全性。如,除密碼外,還可以要求用戶提供一次性的驗證碼或生物特征。
審計和報告,記錄和報告用戶的身份驗證和授權活動,幫助檢測和防止不正?;驉阂獾男袨?。
安全性和合規(guī)性,確保平臺的安全性,并滿足各種法規(guī)和標準的要求。
2單點登錄技術
單點登錄(single signon,SSO)是解決統(tǒng)一身份認證問題的關鍵技術,它允許用戶通過一次登錄就可以訪問所有的系統(tǒng)。目前,常用的單點登錄技術有中央身份服務(central authentication service, CAS)、安全斷言標記語言(security assertion markup language, SAML)和開放授權(open authorization, OAuth)等[1-2]。
2.1 CAS單點登錄技術
CAS是一種開源的單點登錄解決方案,它提供了一個用于身份驗證的中心服務器和一套客戶端庫。當用戶首次訪問任何一個系統(tǒng)時,CAS會將用戶重定向到中心服務器進行身份驗證,并生成一個由身份認證服務授予的票據(ticket granting ticket, TGT),存儲在用戶瀏覽器的Cookie中。當用戶訪問其他系統(tǒng)時,CAS會檢查用戶Cookie中的TGT,如果存在有效的TGT,CAS將生成一個服務票據(service ticket, ST),并將用戶重定向回該系統(tǒng),該系統(tǒng)再次將ST發(fā)送給CAS進行驗證,確認后用戶便可以訪問該系統(tǒng)[3-4]。CAS技術原理如圖1所示。
2.2SAML單點登錄技術
SAML是一種基于XML的開放標準,用于在安全域之間交換身份驗證和授權數據,從而實現單點登錄功能。SAML定義了主體(用戶)、身份提供者和服務提供者3種角色。在SAML單點登錄過程中,身份提供者對用戶進行身份驗證,服務提供者負責提供服務。當用戶首次訪問服務時,如果用戶還沒有進行身份驗證,服務提供者會將用戶重定向到身份提供者進行身份驗證。這個重定向請求采用SAML請求來進行,它包含了服務提供者的信息和請求的詳細信息。身份提供者接收到SAML請求后,會提示用戶進行身份驗證,如輸入用戶名和密碼。如果身份驗證成功,身份提供者生成一個SAML斷言,這個斷言包含了用戶的身份信息和其他相關屬性。服務提供者接收到SAML響應后,驗證這個響應的有效性,包括驗證SAML斷言的簽名和有效期等。如果驗證成功,服務提供者先提取SAML斷言中的用戶信息,再根據這些信息來進行授權,如創(chuàng)建用戶的會話和設置用戶的權限。
2.3OAuth 單點登錄技術
OAuth是一個開放的授權協議,目前的主流應用版本為2.0,它允許第三方應用在用戶的許可下訪問其存儲在其他服務提供商上的資源。雖然OAuth主要用于授權,但它也可以用于實現單點登錄。在OAuth的流程中,用戶首次訪問應用時,應用將用戶重定向到服務提供者進行身份驗證。身份驗證成功后,服務提供者會生成一個訪問令牌,并將其發(fā)送給應用,應用使用訪問令牌請求訪問服務提供者的資源[5]。OAuth技術原理如圖2所示。
3高校統(tǒng)一身份認證平臺實現
在實現高校統(tǒng)一身份認證平臺時,需根據技術的成熟度、社區(qū)支持、與現有系統(tǒng)的兼容性等選擇適合的單點登錄技術。如果高校的信息系統(tǒng)主要基于Java開發(fā),那么CAS是一個好的選擇;如果系統(tǒng)之間需要頻繁交換身份驗證和授權數據,那么SAML更合適;如果需要接入第三方應用,那么選擇OAuth[6]。結合廣州醫(yī)科大學的實際情況,考慮到所有信息系統(tǒng)的歷史沿革,采用以CAS為主要方式,搭配OAuth的協議;同時考慮到企業(yè)微信,采用多種單點登錄技術融合,進行高校統(tǒng)一身份認證平臺的建設。
首先,搭建CAS服務器,并在服務器端準備Java的運行環(huán)境。因為CAS是基于Java開發(fā)的,需要安裝JDK和Maven,同時還需要Servlet容器,用于管理和加載類,采用了Apache Tomcat。
然后,下載安裝CAS服務器端(CASwar文件),采用Maven構建并配置CAS,如CAS與用戶目錄(LDAP)進行集成、配置SSL證書。
接著,將CAS war文件部署到Tomcat中,將war文件復制到Tomcat的webapps目錄下,啟動Tomcat,CAS就會啟動。
最后,通過訪問https://www.gzhmu.edu.cn/cas來驗證CAS是否正常工作,同時需要為每一個應用設置一個CAS客戶端,并進行配置,啟用CAS保護并進行對接。
本文以學校繼續(xù)教育學院網絡教學系統(tǒng)對接為例,確定系統(tǒng)對接地址為http://fysso.chaoxing.com/ cassso/gzhmujxjy。當瀏覽器訪問該地址時,該地址內部需要檢查訪問該地址時是否攜帶統(tǒng)一認證信息。若攜帶,訪問CAS認證的校驗接口,校驗認證信息正確性后,攜帶認證的賬號信息跳轉到學校統(tǒng)一身份認證平臺,完成業(yè)務方自己的登錄認證,流程結束。若沒攜帶,帶著自己的回調地址https://sso.gzhmu.edu.cn/cas/login?service=http://fysso.chaoxing.com/cassso/gzh-mujxjy重定向到CAS認證登錄頁面。如果用戶在沒有攜帶統(tǒng)一認證信息的登錄頁面輸入賬號后,CAS統(tǒng)一認證會繼續(xù)訪問http://fysso.chaoxing.com/cassso/gz-hmujxjy,并追加統(tǒng)一認證的參數,再跳轉,從而實現單點登錄。
考慮到企業(yè)微信的廣泛應用,將企業(yè)微信的單點登錄功能對接到高校統(tǒng)一身份認證平臺。
首先,需要在企業(yè)微信的管理后臺創(chuàng)建一個應用,并獲取該應用的唯一標識(AgentId)和密鑰(Secret)。
然后,當用戶訪問學校的應用系統(tǒng)時,如果用戶沒有登錄,那么應用系統(tǒng)可以重定向用戶到企業(yè)微信的登錄頁面進行登錄。
其次,若登錄成功,企業(yè)微信生成一個臨時的登錄票據并重定向用戶回到應用系統(tǒng),同時在重定向的URL中附帶這個登錄票據。
再次,應用系統(tǒng)收到重定向請求后,先從URL中獲取登錄票據,再利用這個登錄票據和應用系統(tǒng)的密鑰調用企業(yè)微信接口,獲取用戶的唯一標識。
最后,應用系統(tǒng)根據用戶的唯一標識在高校統(tǒng)一身份認證平臺中創(chuàng)建一個會話,再將用戶認為已登錄,并允許用戶訪問應用資源[7]。
4" 高校統(tǒng)一身份認證平臺的測試
高校統(tǒng)一身份認證平臺實現了學校辦公類、教學類、科研類、學生管理類、財務類、其他類等40多個系統(tǒng)統(tǒng)一身份認證的單點登錄。
為驗證高校統(tǒng)一身份認證平臺單點登錄的可行性,采用Postman進行功能測試,Apache Jmeter進行性能測試。測試條件包括不同的瀏覽器等,測試數據包括用戶數據和應用數據。
4.1" 功能測試
首先,根據系統(tǒng)的CAS設置環(huán)境變量;創(chuàng)建一個GET請求到CAS的登錄頁面(https://cas.gzhmu. edu.cn/cas/login);發(fā)送請求并在響應中查找“execution”參數,用于驗證登錄請求。
然后,創(chuàng)建一個POST請求到URL(https://www.gzhmu.edu.cn//cas/login);POST請求的body中包含username、password和在上一步獲取的execution等參數;請求返回一個ticket-granting ticket (TGT)。
接著,創(chuàng)建一個新的POST請求到TGT的URL(https://www.gzhmu.edu.cn//cas/api/v1/tickets/TGTid);POST請求的body中包含要訪問的服務的URL,該請求返回一個ST。
最后,創(chuàng)建一個GET請求到ST的URL(https://www.gzhmu.edu.cn//cas/p3/serviceValidate?ticket=ST-idamp;service=service-url);該請求返回用戶的身份信息,證明用戶已經成功登錄。
4.2" 性能測試
首先,啟動Apache JMeter 應用程序并創(chuàng)建一個新的測試計劃。在測試計劃中添加一個線程組,其決定了并發(fā)用戶的數量和測試的持續(xù)時間。
然后,在線程組中添加HTTP請求采樣器,并設置請求類型為GET,服務器名稱和路徑設置為https://www.gzhmu.edu.cn/cas/login。在GET請求采樣器下添加一個正則表達式提取器,用于從響應中獲取“execution”參數。
接著,添加第二個HTTP請求采樣器,設置請求類型為POST,在參數列表中,添加username、password和execution參數。
最后,添加一個查看結果樹偵聽器,用于查看請求和響應的詳細信息。
測試結果表明,用戶通過單點登錄后,所有系統(tǒng)均能同步登入,功能和性能滿足要求。
5結論
統(tǒng)一身份認證平臺是高校信息化建設的重要部分,可以促進高校信息系統(tǒng)的集成。它提供了一個中心化的用戶數據庫,所有系統(tǒng)都可以從這個數據庫中獲取用戶數據,使系統(tǒng)間更容易共享用戶數據。本文通過選擇合適的單點登錄技術,設計和實現身份驗證中心,對各個系統(tǒng)進行對接改造,并進行全面的測試,實現高校信息系統(tǒng)的統(tǒng)一身份認證,提高了用戶體驗感和系統(tǒng)安全性。
參考文獻
[1] 龔歡歡.改進的CAS多Web應用單點登錄[D].南京:南京大學,2021.
[2] 莫竣成,田秀云.基于Java的網上購物平臺系統(tǒng)設計[J].機電工程技術,2021,50(1):103-105.
[3] 肖桂霞.基于B/S架構的Web單點登錄協議綜述[J].軟件,2023,44(1):1-5.
[4] 童世華.基于SM4算法的移動終端接入車間信息系統(tǒng)的安全性設計與驗證[J].機床與液壓,2019,47(7):105-109.
[5] 李強.基于CAS和OAuth的統(tǒng)一認證授權系統(tǒng)設計[J].信息技術與網絡安全,2021,40(6):83-88.
[6] 張黎娜,童敏.基于SSO的開放大學智慧化校園建設的探索與實踐[J].電腦知識與技術,2022,18(4):48-50.
[7] 梁方勇,陳桂強.數字校園下基于單點登錄的企業(yè)微信無感登錄系統(tǒng)實現[J].中國新技術新產品,2023(1):49-52.
作者簡介:
柯家海,男,1981年生,高級工程師,碩士,主要研究方向:教育信息化、網絡與多媒體技術、教學數據分析。E-mail: kejiahai@gzhmu.edu.cn
黃勁榮,女,1972年生,高級工程師,碩士,主要研究方向:校園信息化、智慧醫(yī)療。
杜嶺,女,1987年生,高級工程師,碩士,主要研究方向:校園信息化、大數據分析與應用、智慧醫(yī)療。
程湛,男,1982年生,高級工程師,碩士,主要研究方向:智慧教學、人工智能、教育資源開發(fā)。