張剛剛
(首都師范大學數字校園建設中心,北京 100048)
在“互聯網+”概念的背景下,為進一步提升高校治理體系的現代化水平,各高校都在積極推進智慧校園建設。通過建設滿足各種應用場景的業務系統,以提升管理、教學的效率與便捷性。在諸多業務系統建成后,以往的線下業務轉為在線辦理后產生了大量業務數據。業務系統建設早期大多以獨立的賬號密碼作為系統登錄方式,用戶在使用不同系統時可能設置不同的登錄密碼,因此需要記住大量的用戶名和登錄密碼,而且獨立的系統認證入口很容易成為整個網絡環境的安全短板。因此,在智慧校園總體框架中,身份認證成為支撐平臺層的重要組成部分,為上層應用層提供統一的認證入口。在各業務系統獨立認證用戶身份的情況下,會因人員在職狀態更新不及時、部門信息更新不準確及人員角色授權不統一等數據一致性問題嚴重影響業務系統對工作效率的提升效果。為改善這一問題,王群等[1]提出基于LDAP 的實驗室統一身份認證方案,以解決實驗室中多個系統的身份認證問題;谷寧靜[2]提出基于系統原有賬號的跨域SSO 單點登錄系統設計方案,從而實現各業務系統進行統一身份認證、分層靈活授權管理的工作機制。這些研究者從多個業務系統共享身份認證的角度提出統一認證解決方案,一定程度上解決了身份共享、多系統單點登錄問題,但未對統一身份認證的方便性與安全性作進一步研究。
本文在智慧校園總體框架下,將企業微信的身份認證功能與統一身份認證相關技術相結合,提出管理統一、方便易用、安全可靠的統一身份認證中心,從而為高校內各業務系統的身份認證提供技術支撐。用戶可在企業微信客戶端“無感知”地完成身份認證,改善了傳統統一身份認證登錄的體驗,提高了智慧校園中業務系統的身份認證效率及安全防護水平。
在高校信息化建設早期,各應用系統身份認證普遍采用獨立維護賬號密碼的方式。隨著學校業務系統的不斷增多,極端情況下用戶在訪問每個業務系統時都需要輸入不同賬號和密碼。為降低記憶賬號、密碼的難度,用戶通常會設置非常容易破解的簡單密碼,從而導致信息泄露的安全隱患。在智慧校園框架的平臺支撐層,統一身份作為最重要的支撐設施,為整個智慧校園的應用層提供了統一的身份認證保障。在典型的身份認證過程中,業務系統應當完成包括消息完整性、發送方與接收方的不可否認性等業務邏輯。為保證所有業務系統在身份認證過程中業務邏輯的一致性與完整性,通過統一的身份認證入口進行系統登錄成為智慧校園框架下的必然選擇。
如圖1 所示,統一身份認證中的角色可分為身份提供者(Identity Provider,IdP)和服務提供者(Service Provider,SP)兩種。IdP 存儲用戶的身份信息與憑證信息,為SP 提供身份驗證、會話保持等技術支持,SP 依賴IdP 提供的身份信息并結合SP 中的身份關聯配置為有效用戶提供授權服務。用戶在IdP 完成身份認證后,訪問SP 提供的授權資源服務。
Fig.1 Unified identity authentication role圖1 統一身份認證角色
如圖2 所示,在實現方式上,身份認證主要分為3 種模型,分別是獨立認證模型(Isolated Model,IM)、中心認證模型(Centralized Model,CM)與聯合認證模型(Federated Model,FM)[3]。本文簡要闡述這3 種認證模型,并提出適用于高校內部進行身份認證的模型。
Fig.2 Unified identity authentication model圖2 統一身份認證模型
(1)獨立認證模型(IM)。該模型是高校信息化發展初期應用的模型,即身份認證模塊完全耦合于業務系統中,用戶使用不同系統時輸入不同登錄憑證完成身份認證。這種模型雖然簡單,但在便利性與安全性方面存在諸多問題[4]。
(2)集中式認證模型(CM)。該模型包含中心化的認證服務,為其他業務系統提供統一的身份認證服務,同時為同一身份域內的各個業務系統提供單點登錄(SSO)服務。該模型解決了獨立認證模型中身份一致性差及不同業務系統重復登錄的問題。
(3)聯合認證模型(FM)。該模型在集中式認證模型基礎上給出了跨系統、跨身份域的認證方案。用戶在訪問身份域A 中的SP1 服務時,SP1 可根據用戶所在組織身份域B中IdP 提供的身份信息完成資源的訪問授權。國內的中國教育科研網統一認證與資源共享基礎設施(CARSI)就是聯合認證模型的一個典型應用[5]。
智慧校園中的業務系統主要在校園網這一身份域中,若相同身份域內的業務系統使用相同賬號、密碼進行身份認證,可提高用戶使用系統的效率及便利性。同時,為提高賬號的安全性,不同業務系統在進行身份認證時,均應滿足相同的安全約束。因此,在智慧校園框架下,采用集中式認證模型(CM)為各業務系統提供統一的身份管理、身份鑒權及安全策略,既解決了用戶在使用多系統時記憶不同賬號、密碼的問題,又從業務系統的登錄入口統一了身份認證安全級別。
單點登錄(Single Sign On,SSO)是指用戶通過統一身份認證后,在訪問同一身份域的不同業務系統時無需進行重復的身份認證過程。用戶將已獲得的票據提交給統一身份認證即可完成身份驗證,該過程通常由統一身份認證系統自動完成。目前應用較廣泛的單點登錄技術方案有Cookie、Shibboleth、CAS、RADIUS 及OAuth 等,本文簡要闡述適用于高校的單點登錄方案CAS。
CAS(Central Authentication Service)是由耶魯大學發起,之后由多所大學共同開發完善的。CAS 主要為Web 應用系統提供單點登錄功能,采用集中式認證模型提供身份認證服務[6]。其在交互過程中使用https 協議,通信過程具有很高的安全性。該協議使用了兩種票據:TGT(Ticket Granting Ticket,票據授予票據),對用戶的單次登錄會話有效;ST(Service Ticket,服務票據),僅對用戶本次訪問的目標業務系統有效。CAS 方案發源于高校,之后又由多所高校共同改進,能夠更好地貼合高校應用場景。CAS 的安全性與擴展性可滿足智慧校園架構對于身份認證系統及認證模型的要求,本文將CAS 作為統一身份認證的單點登錄方案。
企業微信是騰訊公司在2015 年推出的企業級微信平臺,具有與微信一致的使用體驗,可為用戶提供豐富的API(Application Program Interface)以及全面、可靠的安全保障[7-9]。基于企業微信生態構建《智慧校園總體框架GB/T 36342-2018》標準中的應用平臺層,可為智慧校園上層應用提供通訊錄、消息會話及身份識別等基礎功能。目前,國內已有較多高校結合自身實際情況,基于企業微信構建了管理服務與智慧教學相關應用[10-13]。企業微信在身份認證體系構建方面提供了以下基礎功能接口[14]:
(1)通訊錄管理接口。提供用戶信息同步、組織架構同步等功能,基于該接口將數據中心中的教職工、學生、訪客等信息同步至企業微信通訊錄,從而構建實名制的通訊錄。師生的學號、工號與企業微信通訊錄的賬號一致,用戶登錄企業微信即可使用企業微信的身份信息進行身份識別。
(2)身份驗證接口。企業微信通過OAuth 協議提供了網頁授權登錄與企業微信APP 掃碼登錄兩種身份驗證方式。第三方應用可通過企業微信的身份驗證接口獲取當前登錄企業微信的用戶信息,從而免去了用戶輸入賬號、密碼的環節。企業微信采用OAuth 授權碼方式提供身份驗證服務。企業微信身份驗證流程如圖3 所示,具體流程為:①用戶點擊開發者構造的OAuth 鏈接;②企業微信客戶端從后臺獲取攜帶授權碼(CODE)的鏈接;③企業微信后臺檢查用戶請求的參數合法性;④企業微信后臺返回攜帶有授權碼的鏈接;⑤企業微信客戶端將攜帶有授權碼的鏈接重定向至開發者后臺;⑥開發者后臺使用授權碼通過企業微信的開放API 獲取當前用戶賬號等信息;⑦開發者后臺根據用戶賬號建立會話;⑧企業微信客戶端將授權的內容呈現給用戶。
Fig.3 Enterprise Wechat OAuth authentication process圖3 企業微信OAuth 身份驗證流程
通過以上流程,第三方應用即可通過企業微信的接口獲取當前用戶信息,從而完成系統登錄。
基于“企業微信+CAS”的統一身份認證方案總體架構如圖4 所示,系統由運行環境層、數據存儲層、業務邏輯層及表示層組成。
(1)運行環境層。系統采用Docker 的Kubernetes 集群進行部署,通過Docker 運行時環境降低了異構環境下系統部署的難度,通過集群化系統部署提高系統的穩定性。
(2)數據存儲層。采用MySQL 主從部署架構作為數據庫,記錄用戶賬號、接入系統白名單及操作日志等信息,該數據庫是統一身份認證系統的數據基礎。采用MySQL 作為數據層,相較于LDAP 具有擴展性強、數據結構靈活及功能迭代效率高等優勢。
(3)業務邏輯層。通過擴展CAS 協議,為用戶提供身份管理、認證、授權及審計服務,為終端用戶提供統一身份認證賬號的激活、密碼重置等功能。
(4)表示層。系統通過表示層提供身份認證服務,以及CAS 認證接口、Restful 接口與LDAP 認證接口。
系統在業務邏輯層與表示層的全生命周期中設計了用戶操作的詳細審計日志,以保證用戶在系統中的所有操作都有痕跡,提高身份認證過程的安全性及認證結果的不可抵賴性。
Fig.4 System overall architecture圖4 系統總體架構
隨著信息技術的不斷發展,研究者不斷嘗試將新技術、新手段作為身份認證的雙因子以提升登錄的安全性。相關方法主要概括為3 類:令牌(如手機短信驗證碼)、生物信息(如人臉、虹膜、體態等)、智能硬件(如U 盾、校園卡等)[15]。企業微信APP 作為一款具有極高安全級別的移動應用,在用戶完成登錄后能夠長時間保持登錄狀態,且用戶一般不會將具有高度私人屬性的手機出借給他人。因此,可將企業微信作為身份認證的一種方式,用戶可方便地通過企業微信掃碼或企業微信內置瀏覽器完成身份認證。同時,借助企業微信很好的安全防護基礎,在提升便捷性的同時,不會降低安全性。用戶在非可信環境中通過企業微信掃碼登錄,能夠有效降低用戶通過鍵盤輸入賬號、密碼導致密碼泄露的風險。
“企業微信+CAS”的統一身份認證方案思路為:用戶首次訪問業務系統時,請求會被重定向至CAS 服務器,CAS 服務器通過判斷用戶當前訪問的客戶端User-Agent 頭信息來構造不同的企業微信登錄鏈接。如圖5 所示,具體流程描述為:①用戶首次訪問業務系統A;②業務系統A 將用戶請求重定向至CAS 服務器進行身份驗證;③CAS 服務器檢查用戶請求的Agent 頭部信息,如果User-Agent 中包含wxwork,則構造企業微信OAuth2 登錄鏈接,否則構造企業微信掃碼登錄鏈接;④將用戶請求重定向至構造好的鏈接;⑤用戶通過企業微信APP 完成掃碼登錄;⑥企業微信將Code 返回CAS 服務器,并向用戶的企業微信推送一條賬號登錄提醒;⑦CAS 通過Code 從企業微信服務器獲取當前用戶身份信息;⑧CAS 服務器針對業務系統A 簽發有效的TGT 和ST;⑨CAS 服務器將ST 信息返回給用戶;⑩用戶攜帶ST 信息訪問業務系統A;?業務系統A 通過CAS 服務器驗證ST 的有效性;?業務系統授權用戶完成系統登錄,并返回會話票據;?用戶后續使用業務系統返回的會話票據完成系統操作。
通過以上流程,用戶通過企業微信的身份認證接口授權CAS 獲取其賬號后完成系統登錄。企業微信與CAS 服務之間使用OAuth 方式完成身份驗證,業務系統通過CAS返回的ST 完成身份驗證。特別地,在步驟④中,用戶使用企業微信客戶端的內置瀏覽器進行身份驗證時,系統會構造OAuth 授權鏈接,免去了掃碼操作,從而“無感知”地完成身份驗證。當用戶訪問相同身份域中的業務系統B 時,由于用戶已攜帶了用于標識用戶身份的TGC 票據,CAS 服務會直接簽發用于業務系統B 的ST 票據,業務系統B 直接通過ST 票據驗證用戶的有效性,從而實現單點登錄。
Fig.5 Enterprise Wechat+ CAS login process圖5 企業微信+CAS 登錄流程
方案部署環境配置信息如表2 所示。
Table 2 Scheme deployment environment configuration information表2 方案部署環境配置信息
本文通過設計兩個實驗驗證方案的并發處理能力與系統性能,每個實驗均執行10 輪并取實驗結果的平均值。實驗采用賬號、密碼的方式進行認證。
(1)多客戶端的并發實驗。通過運行1~200 個客戶端對系統進行壓力測試以驗證系統的并發能力,每次實驗時均并發運行客戶端請求,每個客戶端均獨立對系統發送身份驗證請求。
(2)單獨客戶端的性能實驗。通過實驗分析用戶在短時間內頻繁訪問相同身份域內多個業務系統時的響應速度等情況。
筆者所在單位將企業微信作為移動門戶,在企業微信中置入了全員組織架構信息及用戶基本身份信息,并分別與學籍信息庫及人事系統庫進行數據聯動,企業微信日活人數覆蓋在校總人數的98%以上。采用本文設計方案改造統一身份認證系統,并接入智慧校園中的全部業務系統。與之前LDAP 統一認證登錄方式相比,通過本文方案為Web 應用提供身份認證與單點登錄功能,通過Restful 及LDAP 接口層為學校VPN 及網絡登錄提供身份認證功能,補充了用戶登錄系統的方式,提高了智慧校園環境下各業務系統登錄入口的安全性。
采用更加標準、通用的CAS 協議與企業微信開放接口,可減少第三方廠商對接的難度,提高對接效率。通過認證中心中的弱密碼檢測功能,在用戶輸入密碼時檢測密碼強度,并通過企業微信的消息接口通知用戶修改密碼為符合要求的強密碼。在筆者單位,用戶訪問統一身份認證系統時需經過入侵檢測、防火墻、WAF 防火墻等安全設備,并使用HTTPS 協議加密交互全過程,結合企業微信完備的安全防護能力,全方位提升了業務系統登錄入口的安全性。
圖6 的分析結果顯示,“企業微信+CAS”統一身份認證系統方案上線一個月后,用戶總體登錄習慣由賬號密碼登錄方式轉變為企業微信登錄方式(本方案占比80%以上)。其中,學生賬號與總體習慣趨勢一致,而教職工賬號很大程度上保留了賬號密碼的登錄方式(本方案占比20%左右)。通過對訪問日志的進一步分析及用戶調研后發現,教職工通常使用瀏覽器的記住密碼功能以減少頻繁輸入賬號、密碼的頻率,學生群體更容易接受使用企業微信授權登錄方式完成身份認證。基于良好的用戶反饋,一方面可加強企業微信登錄方式在保障用戶隱私、提高賬號安全性優勢方面的宣傳,另一方面需進一步挖掘企業微信的用戶身份鑒權相關接口,為用戶提供更好的登錄體驗,以進一步提高用戶對企業微信身份認證功能的使用率。
Fig.6 Proportion of different login methods圖6 不同登錄方式占比情況
“企業微信+CAS”方案在安全性與便捷性之間取得了一定程度上的平衡,基于企業微信完善的安全防護體系,該方案具備了較高安全水平。筆者單位在實施本文方案后,通過弱密碼檢測功能識別出10 000 余人使用了常見的弱口令,并鎖定了5 000 余個長期閑置的賬號,以提前預防賬號風險。利用企業微信結合CAS 的賬號安全機制,智慧校園下各個業務系統可具有統一的安全入口,使建設方能夠更專注于自身業務的打磨,提升智慧校園建設的整體效能。通過分析用戶登錄日志后得出,用戶在掃碼完成或輸入正確的賬號、口令后到跳轉到業務系統完成身份認證的響應時間在800ms 以內(平均響應時間為498ms),具有較理想的響應效率。
本文在智慧校園總體框架下,探討了智慧校園中統一身份認證與單點登錄相關概念及模型,提出“企業微信+CAS”的統一身份認證系統設計方案。通過融合應用廣泛的CAS 協議及具有可信身份環境的企業微信,實現校園內各業務系統的統一身份認證與單點登錄功能,并通過企業微信掃碼登錄和“無感知”登錄方式免去了用戶記憶密碼的煩惱,提升了校園網絡環境的安全性及信息化水平。今后將進一步深入研究智慧校園框架下統一身份認證系統的優化運用。