武興華 孫雨
(國家開放大學(xué)信息化部,北京 100039)
在中國共產(chǎn)黨第十九次全國代表大會上,習(xí)近平總書記提出——“善于運(yùn)用互聯(lián)網(wǎng)技術(shù)和信息化手段開展工作?!盵1]雖然只有短短十九個(gè)字,其內(nèi)容卻極大體現(xiàn)出黨和國家領(lǐng)導(dǎo)人對新興科技發(fā)展成果的深切關(guān)注和敏銳觀察,對互聯(lián)網(wǎng)、信息技術(shù)等發(fā)展規(guī)律及其對社會發(fā)展影響的高瞻遠(yuǎn)矚,凝聚著全黨智慧結(jié)晶。作為我國繼續(xù)教育領(lǐng)域不可或缺的組成部分,國家開放大學(xué)(以下簡稱“國開”)以提升我國遠(yuǎn)程教育水平為歷史使命,時(shí)刻緊扣教育信息化2.0 建設(shè)目標(biāo),積極探索新興信息技術(shù)與開放教育的深度融合,加速實(shí)施信息化建設(shè)工程,全力推進(jìn)“互聯(lián)網(wǎng)+大學(xué)”健康發(fā)展,助力我國教育信息化邁入智能時(shí)代。
隨著國開教育教學(xué)業(yè)務(wù)不斷拓展,信息化與學(xué)校業(yè)務(wù)日趨融合。越來越多的信息系統(tǒng)服務(wù)于開放教育事業(yè),國家開放大學(xué)學(xué)習(xí)網(wǎng)、教務(wù)管理系統(tǒng)、學(xué)分銀行、國家開放大學(xué)研修網(wǎng)、圖書館管理等眾多系統(tǒng)保障學(xué)校各項(xiàng)業(yè)務(wù)平穩(wěn)運(yùn)行,為三百多萬師生提供優(yōu)質(zhì)教育教學(xué)資源。由于每個(gè)信息系統(tǒng)的身份認(rèn)證方式和安全策略不同,導(dǎo)致用戶訪問不同系統(tǒng)時(shí)需要使用不同賬號提供認(rèn)證信息,師生在使用上存在諸多不便,系統(tǒng)管理困難且安全系數(shù)低,系統(tǒng)運(yùn)維支出居高不下。對用戶賬號進(jìn)行統(tǒng)一管理、統(tǒng)一認(rèn)證已經(jīng)成為國開亟待解決的問題。
針對上述問題,為進(jìn)一步厘清國開統(tǒng)一身份認(rèn)證的具體需求及建設(shè)目標(biāo),國開信息化部通過查閱文獻(xiàn)、訪談、窮舉試驗(yàn)、網(wǎng)絡(luò)問卷等方式開展調(diào)研活動(dòng),最終確定了基于單點(diǎn)登錄(SSO,Single Sign-On)的統(tǒng)一認(rèn)證平臺方案。單點(diǎn)登錄是指用戶只需一次登錄便可任意訪問所有信息系統(tǒng)[2]。該平臺旨在簡化師生登錄操作,提升用戶工作、學(xué)習(xí)效率,提高系統(tǒng)易用性和安全性,降低系統(tǒng)運(yùn)維成本,最終實(shí)現(xiàn)國開信息系統(tǒng)的互聯(lián)互通,打通信息孤島。
根據(jù)信息系統(tǒng)的登錄方式,單點(diǎn)登錄可分為基于票據(jù)和基于腳本的解決方案。前者較后者的優(yōu)點(diǎn)在于擴(kuò)展性強(qiáng)、安全性高且易于實(shí)現(xiàn)。基于票據(jù)的單點(diǎn)登錄模型大致又分為六種,即Broker-based(基于經(jīng)紀(jì)人)、Agent-based(基于代理人)、Tokenbased(基于令牌)、Agent and Broker-based(基于網(wǎng)關(guān))、基于SAML和共享cookies,不同登錄模型各有適用場景。由于國開亟須統(tǒng)一管理所有信息系統(tǒng)的身份認(rèn)證,因此選擇基于經(jīng)紀(jì)人的單點(diǎn)登錄模型,搭建專業(yè)的身份認(rèn)證服務(wù)器承擔(dān)所有系統(tǒng)的用戶登錄模塊,實(shí)現(xiàn)單點(diǎn)登錄功能[3]。對市面常見的若干基于經(jīng)紀(jì)人模型的單點(diǎn)登錄實(shí)現(xiàn)方式進(jìn)行匯總介紹。
微軟設(shè)計(jì)的Passport 是服務(wù)于.NET 平臺的單點(diǎn)登錄實(shí)現(xiàn)方式,該協(xié)議便于用戶登錄微軟相關(guān)系統(tǒng)進(jìn)行交易。Passport 協(xié)議主要包括用戶、目標(biāo)站點(diǎn)和Passport 登錄服務(wù)器三個(gè)主體,目標(biāo)站點(diǎn)經(jīng)用戶授權(quán)后方可從Passport 登錄服務(wù)器獲得用戶信息[4]。Passport協(xié)議的身份認(rèn)證流程引用了Kerberos認(rèn)證機(jī)制,在重定向信息中對用戶認(rèn)證信息進(jìn)行三重加密,Passport 登錄服務(wù)器和目標(biāo)站點(diǎn)共同決定加密秘鑰,用戶僅需一次登錄便可獲取所有系統(tǒng)的訪問權(quán)限。由于該協(xié)議只服務(wù)于微軟系統(tǒng),因此其應(yīng)用范圍有限且無開源資源。
Liberty Alliance(自由聯(lián)盟)協(xié)議旨在創(chuàng)建一個(gè)開放性的、聯(lián)合性的、統(tǒng)一身份識別的,且任何器件隨時(shí)都能與Internet 相連的單點(diǎn)登錄解決方案。該協(xié)議采用SAML 認(rèn)證機(jī)制,支持多種技術(shù)實(shí)現(xiàn)單點(diǎn)登錄服務(wù)[5]。Liberty Alliance協(xié)議與Passport協(xié)議的身份認(rèn)證流程類似,但二者的本質(zhì)區(qū)別在于Passport 采用集中認(rèn)證方式,而Liberty Alliance 為用戶提供身份認(rèn)證的服務(wù)器并不唯一?;贚iberty Alliance協(xié)議實(shí)現(xiàn)的單點(diǎn)登錄可以對用戶訪問過程進(jìn)行加密,成熟且標(biāo)準(zhǔn)化的SAML 認(rèn)證機(jī)制完全滿足企業(yè)級的單點(diǎn)登錄功能需求,但該協(xié)議也未開源,不支持定制化需求。
CAS(Central Authentication Service)是一個(gè)由耶魯大學(xué)發(fā)起的旨在提供企業(yè)級單點(diǎn)登錄解決方案的開源項(xiàng)目,其框架基于Java 實(shí)現(xiàn)。CAS在結(jié)構(gòu)上分為 CAS Server 和 CAS Client 兩部分,CAS Server需要獨(dú)立部署,負(fù)責(zé)將用戶提交的驗(yàn)證信息拿到數(shù)據(jù)庫進(jìn)行認(rèn)證。CAS Client處理對客戶端受保護(hù)資源的訪問請求,當(dāng)需要對請求方提交身份時(shí),即重定向到CAS Server 進(jìn)行認(rèn)證,這種系統(tǒng)結(jié)構(gòu)支持多種開發(fā)語言實(shí)現(xiàn)的客戶端[6]。CAS 是開源協(xié)議,支持多種認(rèn)證機(jī)制和授權(quán),滿足個(gè)性化定制需求。作為單點(diǎn)登錄解決方案,它對Web 應(yīng)用源碼改動(dòng)極少,可以做到應(yīng)用無關(guān)性。CAS 因具有易用性、廣泛性和安全性而深受開發(fā)人員青睞。
綜上,從認(rèn)證方式、可擴(kuò)展性、應(yīng)用范圍、安全性、優(yōu)化提升等方面對上述3 種基于經(jīng)紀(jì)人模型的單點(diǎn)登錄解決方案進(jìn)行比較,對比結(jié)果如表1所示。
表1 常見物聯(lián)網(wǎng)接入技術(shù)匯總
由表1可知,由于 Passport 協(xié)議和 Liberty 協(xié)議未開源,僅服務(wù)于各自平臺,因此二者的應(yīng)用范圍不如CAS 協(xié)議廣泛。CAS 協(xié)議支持多種認(rèn)證機(jī)制及客戶端,較Passport 協(xié)議和Liberty 協(xié)議可擴(kuò)展性強(qiáng)。Passport屬于一種有償服務(wù)且存在單點(diǎn)失效風(fēng)險(xiǎn),Liberty 協(xié)議技術(shù)復(fù)雜并未成熟,且二者負(fù)責(zé)身份認(rèn)證的服務(wù)器由國外控制[7]。因此選擇靈活可靠、兼容性強(qiáng)的CAS 協(xié)議為基礎(chǔ),根據(jù)實(shí)際業(yè)務(wù)需求對平臺進(jìn)行研究設(shè)計(jì),最終實(shí)現(xiàn)國家開放大學(xué)統(tǒng)一身份認(rèn)證功能。
隨著國開信息化工作的持續(xù)推進(jìn),師生在工作學(xué)習(xí)中接觸到越來越多的信息系統(tǒng)。用戶不得不記憶大量系統(tǒng)的賬號、密碼,訪問不同系統(tǒng)時(shí)要頻繁錄入信息,機(jī)械、枯燥的過程耗費(fèi)用戶精力,也給系統(tǒng)安全性帶來潛在風(fēng)險(xiǎn)。不同信息系統(tǒng)的開發(fā)周期長短不一,各自的特定功能、設(shè)計(jì)方案和開發(fā)技術(shù)不盡相同,系統(tǒng)管理維護(hù)工作日益繁重,運(yùn)維支出日漸增多。系統(tǒng)之間的認(rèn)證體系相互獨(dú)立,數(shù)據(jù)格式不統(tǒng)一導(dǎo)致系統(tǒng)間信息關(guān)聯(lián)困難,用戶信息難以共享,形成信息壁壘。
針對上述問題,將CAS技術(shù)與各信息系統(tǒng)的登錄認(rèn)證流程相結(jié)合,研發(fā)國家開放大學(xué)統(tǒng)一身份認(rèn)證平臺,使用戶只需通過一次身份認(rèn)證便可獲取所有國開信息系統(tǒng)的訪問授權(quán)。平臺著重對以下四點(diǎn)進(jìn)行研究設(shè)計(jì):第一,單點(diǎn)登錄模塊設(shè)計(jì),盡量做到應(yīng)用無關(guān)性,當(dāng)用戶通過身份認(rèn)證后可隨意訪問任何國開信息系統(tǒng);第二,身份映射模塊設(shè)計(jì),將現(xiàn)有信息系統(tǒng)的用戶信息組織規(guī)劃、統(tǒng)一性質(zhì),服務(wù)身份認(rèn)證和權(quán)限劃分;第三,授權(quán)管理模塊設(shè)計(jì),根據(jù)用戶在不同系統(tǒng)中的角色對其進(jìn)行統(tǒng)一授權(quán),便于系統(tǒng)管理員集中運(yùn)維;第四,平臺工作流程設(shè)計(jì),綜合前三點(diǎn)研究成果對統(tǒng)一身份認(rèn)證平臺的工作流程進(jìn)行設(shè)計(jì)。
將CAS技術(shù)應(yīng)用到國開信息系統(tǒng),根據(jù)CAS結(jié)構(gòu)分別對CAS Client 和CAS Server 展開研究設(shè)計(jì)。CAS Client 與現(xiàn)有系統(tǒng)整合部署,為使平臺實(shí)現(xiàn)單點(diǎn)登錄功能的同時(shí)做到應(yīng)用無關(guān)性,不能大量修改原有信息系統(tǒng)的源代碼。對于已經(jīng)投入使用的系統(tǒng),根據(jù)CAS 協(xié)議修改其登錄模塊代碼,將系統(tǒng)集成到單點(diǎn)登錄系統(tǒng)中;對于仍在開發(fā)的系統(tǒng),根據(jù)CAS 協(xié)議為其提供單點(diǎn)登錄系統(tǒng)接口。設(shè)計(jì)平臺登錄界面,按照功能分類將各信息系統(tǒng)入口置于界面顯著位置,便于用戶快速登錄和訪問。CAS Server與現(xiàn)有系統(tǒng)數(shù)據(jù)庫中的用戶信息互聯(lián),負(fù)責(zé)用戶身份信息的認(rèn)證和管理,根據(jù)不同功能職責(zé)下設(shè)定制子模塊。
單點(diǎn)登錄的核心工作就是對用戶信息進(jìn)行身份認(rèn)證和管理,判定其是否有權(quán)限訪問相關(guān)系統(tǒng),用戶信息的同步工作則顯得愈發(fā)重要。基于平臺對穩(wěn)定性、融合性等要求,決定以國開人事管理系統(tǒng)中的用戶信息為基礎(chǔ),在其數(shù)據(jù)庫中增加用戶身份映射表,建立人事管理系統(tǒng)與其他信息系統(tǒng)的用戶身份映射關(guān)系。身份映射模塊既能保留現(xiàn)有系統(tǒng)的用戶信息,又能實(shí)現(xiàn)以人事管理系統(tǒng)為基礎(chǔ)的用戶信息統(tǒng)一管理。CAS Server、人事管理系統(tǒng)與其他信息系統(tǒng)利用中間件對用戶信息實(shí)時(shí)同步,若某一系統(tǒng)中數(shù)據(jù)發(fā)生變化,其余系統(tǒng)在確認(rèn)數(shù)據(jù)有變后對相應(yīng)數(shù)據(jù)進(jìn)行同步。例如,當(dāng)人事管理系統(tǒng)修改某用戶的身份信息時(shí),CAS Server 和其他信息系統(tǒng)將在各自系統(tǒng)修改該用戶信息。
不同信息系統(tǒng)對各自用戶進(jìn)行授權(quán),用戶憑借個(gè)人權(quán)限享有系統(tǒng)內(nèi)部分開放資源。若無統(tǒng)一標(biāo)準(zhǔn),每個(gè)系統(tǒng)都能對用戶授權(quán)則會顯得雜亂無章。可基于用戶在人事管理系統(tǒng)中的詳細(xì)信息,采用角色和權(quán)限管理匹配的方式為用戶統(tǒng)一授權(quán),具體如圖1所示。其中,用戶與角色為依賴關(guān)系,而角色又是權(quán)限的集合,將權(quán)限分配給不同角色,用戶根據(jù)權(quán)限訪問系統(tǒng)資源。根據(jù)職能將用戶劃分為不同組別,不同角色可匹配不同功能組,功能組包含用戶對相應(yīng)系統(tǒng)的訪問權(quán)限。
圖1 基于角色的授權(quán)模型
綜合前三點(diǎn)研究成果,對統(tǒng)一身份認(rèn)證平臺的工作流程進(jìn)行設(shè)計(jì)。用戶進(jìn)入平臺首頁登錄,認(rèn)證服務(wù)器向人事管理系統(tǒng)數(shù)據(jù)庫發(fā)送用戶身份、權(quán)限驗(yàn)證請求,認(rèn)證服務(wù)器將查得信息反饋給用戶。若通過認(rèn)證,用戶登錄系統(tǒng)繼續(xù)向數(shù)據(jù)庫獲取用戶權(quán)限信息,待信息返回后用戶即可訪問應(yīng)用系統(tǒng)。系統(tǒng)管理員負(fù)責(zé)平臺日常運(yùn)維工作。平臺工作流程如圖2所示。
圖2 統(tǒng)一身份認(rèn)證平臺工作流程圖
針對國開亟須對用戶賬號進(jìn)行統(tǒng)一管理、統(tǒng)一認(rèn)證的問題,本文對市面常見的單點(diǎn)登錄實(shí)現(xiàn)方式對比分析,確定開發(fā)基于CAS單點(diǎn)登錄技術(shù)的國家開放大學(xué)統(tǒng)一身份認(rèn)證平臺,根據(jù)實(shí)際業(yè)務(wù)需求對平臺進(jìn)行研究設(shè)計(jì)?,F(xiàn)對平臺有若干建議如下:第一,國開在啟動(dòng)平臺項(xiàng)目之前,務(wù)必要自上而下對平臺進(jìn)行縝密規(guī)劃,做好系統(tǒng)的頂層設(shè)計(jì);第二,平臺項(xiàng)目涉及對現(xiàn)有系統(tǒng)的改造工作,須提前與系統(tǒng)責(zé)任部門做好溝通工作,積極統(tǒng)籌協(xié)調(diào)各部門切實(shí)按照項(xiàng)目的時(shí)間節(jié)點(diǎn)完成任務(wù);第三,平臺務(wù)必充分考慮CAS技術(shù)的單點(diǎn)失效和服務(wù)器入侵等問題,可引入集群技術(shù)和入侵容忍技術(shù)以提升平臺的安全性;第四,加強(qiáng)平臺運(yùn)維工作人員的培訓(xùn)力度,保證平臺提供優(yōu)良的單點(diǎn)登錄服務(wù)。
新疆開放大學(xué)學(xué)報(bào)2018年4期