◆劉占文 李瑞山
基于CARSI平臺構(gòu)建統(tǒng)一認(rèn)證和資源共享服務(wù)
◆劉占文 李瑞山
(沈陽農(nóng)業(yè)大學(xué) 信息中心 遼寧 110866)
本文分析了當(dāng)前高校普遍使用的認(rèn)證和資源共享模式,尤其以圖書館電子資源數(shù)據(jù)庫認(rèn)證共享模式為例進(jìn)行了分析;詳細(xì)闡述了基于Shibboleth中間件建設(shè)的CARSI平臺實(shí)現(xiàn)原理;然后分別從系統(tǒng)對接、屬性釋放、系統(tǒng)安全等方面詳細(xì)介紹了CARSI平臺部署的難點(diǎn)和解決辦法;結(jié)合學(xué)校師生使用情況,從SP接入和短網(wǎng)址等角度對系統(tǒng)進(jìn)行了優(yōu)化;最后介紹了平臺整體運(yùn)行情況和效果。
CARSI;Shibboleth;認(rèn)證
目前,隨著高校智慧校園建設(shè)不斷深入發(fā)展,學(xué)校統(tǒng)一身份認(rèn)證系統(tǒng)與校內(nèi)外各類信息服務(wù)對接認(rèn)證和共享資源成為常態(tài)。本文以沈陽農(nóng)業(yè)大學(xué)基于CARSI平臺構(gòu)建的認(rèn)證系統(tǒng)和資源共享服務(wù)平臺為例,該系統(tǒng)目前服務(wù)于全校2萬名師生,對接了12家國內(nèi)外服務(wù)提供商,每日提供約1500余人次認(rèn)證,使用人數(shù)增長趨勢明顯,系統(tǒng)運(yùn)行安全穩(wěn)定。本文介紹了以基于Shibboleth中間件建設(shè)的CARSI平臺的原理、部署、調(diào)試和優(yōu)化,為其他高校信息化建設(shè)提供參考。
當(dāng)前,國內(nèi)多數(shù)高校都在進(jìn)行智慧校園建設(shè),身份認(rèn)證是智慧校園建設(shè)的基礎(chǔ)組成部分。身份認(rèn)證形式也是多樣化的,比如基于統(tǒng)一認(rèn)證系統(tǒng)的LDAP、CAS,或基于學(xué)校校園網(wǎng)絡(luò)IP地址/電子郵箱地址,或基于學(xué)校微信/QQ等公眾平臺,或基于生物特征的指紋識別、人臉識別等等。
但是,多數(shù)高校的統(tǒng)一身份認(rèn)證僅限應(yīng)用于學(xué)校自有的信息系統(tǒng)的對接,對于校外的服務(wù),多數(shù)采取粗放形式的認(rèn)證,認(rèn)證手段往往體驗(yàn)不佳,不能精細(xì)化的管理,還存在手工交換數(shù)據(jù)的方式,存在信息安全風(fēng)險(xiǎn)。甚至有一些校外服務(wù)廠商要求師生提供證件照片和信息進(jìn)行身份鑒別和審核,導(dǎo)致師生個人信息具有嚴(yán)重的泄露風(fēng)險(xiǎn)和安全隱患。
以學(xué)校圖書館電子資源數(shù)據(jù)庫校外訪問為例:
學(xué)校購買的電子資源數(shù)據(jù)庫大都以學(xué)校的IP地址為主要的認(rèn)證依據(jù),師生必須使用學(xué)校IP地址才能訪問電子資源,學(xué)校變更IP地址必須及時通知服務(wù)商;一些高校校園網(wǎng)出口采用NAT地址轉(zhuǎn)換技術(shù),全校電腦終端對外訪問使用有限的幾個IP地址,經(jīng)常被服務(wù)商認(rèn)定為非法下載,封禁IP地址,造成短時間大量用戶無法訪問;VPN代理模式雖然解決了校外訪問問題,但賬號借用、濫用導(dǎo)致信息安全問題日益增多,校園內(nèi)網(wǎng)不再安全;用戶終端的多樣化,造成了VPN代理的兼容性差;學(xué)校難于對電子資源服務(wù)商的訪問進(jìn)行統(tǒng)計(jì)和分析,缺少采購決策和建議。
CARSI是中國教育科研計(jì)算機(jī)網(wǎng)統(tǒng)一認(rèn)證與資源共享基礎(chǔ)設(shè)施(CERNET Authentication and Resource Sharing Infrastructure),2008年由北京大學(xué)計(jì)算中心發(fā)起建設(shè),2019年正式成為eduGAIN會員。CARSI是在國內(nèi)高校已經(jīng)普遍建設(shè)完成的校園網(wǎng)統(tǒng)一用戶管理和身份認(rèn)證系統(tǒng)基礎(chǔ)上,面向中國高校和科研機(jī)構(gòu)提供跨域身份認(rèn)證和資源共享服務(wù)。
CARSI基于美國下一代互聯(lián)網(wǎng)組織Internet2 主導(dǎo)的Shibboleth中間件建設(shè),該中間件被國際上國家級教育科研網(wǎng)NREN(National Research and Education Network)普遍采用。Shibboleth是一種基于標(biāo)準(zhǔn)的開源軟件包,可用于跨組織邊界或在組織邊界內(nèi)進(jìn)行SSO(Single Sign On)單點(diǎn)登錄,實(shí)現(xiàn)資源的授權(quán)訪問。Shibboleth主要使用SAML(Security Assertion Markup Language)聯(lián)合身份標(biāo)準(zhǔn),并實(shí)現(xiàn)聯(lián)合的單點(diǎn)登錄和屬性交換框架。通過Shibboleth軟件,身份提供者IdP(Identity Provider)提供必要的屬性信息給服務(wù)提供者SP(Service Provider),以便服務(wù)提供者啟用資源訪問授權(quán)。
圖1 Shibboleth信息交互示意圖
Shibboleth基本工作原理如圖1所示:
① User訪問SP提供的需要授權(quán)訪問的資源。
② SP提出身份驗(yàn)證請求,并發(fā)送到用戶的IdP。
③ IdP向User推送身份驗(yàn)證請求。
④ User提供身份驗(yàn)證信息,提交至IdP。
⑤ IdP驗(yàn)證User通過后,攜帶用戶屬性信息至SP。
⑥ SP授權(quán)訪問資源。
Shibboleth的metadata元數(shù)據(jù)文件提供了每個IdP或SP的詳細(xì)信息,包括互聯(lián)網(wǎng)網(wǎng)址、簽名、聯(lián)系人、聯(lián)系方式等等。IdP與SP之間通過彼此識別、驗(yàn)證metadata元數(shù)據(jù)才能完成相互通信。CARSI聯(lián)盟提供了加入其聯(lián)盟的所有IdP和SP的metadata元數(shù)據(jù),并將該文件在聯(lián)盟成員之間實(shí)現(xiàn)實(shí)時共享。聯(lián)盟內(nèi)成員在更改其元數(shù)據(jù)時不需要聯(lián)系每個成員,而只需將其提供給CARSI審核驗(yàn)證。
從學(xué)校信息化規(guī)劃角度來看,學(xué)校的IdP服務(wù)是學(xué)?,F(xiàn)有認(rèn)證系統(tǒng)的延伸和擴(kuò)展,所以IdP一般應(yīng)基于學(xué)校的統(tǒng)一身份認(rèn)證系統(tǒng)構(gòu)建。對接成功后,用戶的增刪改都在統(tǒng)一身份認(rèn)證系統(tǒng)內(nèi)進(jìn)行,保證了學(xué)校數(shù)據(jù)的權(quán)威性;學(xué)校用戶只需記憶一套賬號密碼,提高了用戶的便捷性。
CARSI提供了標(biāo)準(zhǔn)的虛擬機(jī)鏡像文件,這使得部署平臺系統(tǒng)變得非常的容易。IdP服務(wù)需要從學(xué)校認(rèn)證系統(tǒng)中提取用戶ID、用戶身份等多個字段信息。IdP服務(wù)支持多種認(rèn)證數(shù)據(jù)的對接,常用的本地認(rèn)證方式有LDAP、CAS和OAuth2。多數(shù)高校統(tǒng)一身份認(rèn)證系統(tǒng)是支持LDAP和CAS認(rèn)證的,文檔較多,容易配置。對于尚未建設(shè)認(rèn)證系統(tǒng)的學(xué)校來說,可直接搭建LDAP服務(wù),導(dǎo)入學(xué)校師生認(rèn)證數(shù)據(jù),支撐IdP服務(wù)建設(shè)。
IdP和SP之間屬性傳遞是CARSI聯(lián)盟區(qū)分用戶身份認(rèn)證方和用戶身份使用方、在應(yīng)用系統(tǒng)資源中實(shí)現(xiàn)基于用戶的訪問控制的技術(shù)基礎(chǔ)。每個SP都想獲得盡量多的用戶數(shù)據(jù),如圖2所示,那么釋放哪些屬性,怎么保護(hù)用戶隱私,是一個值得思考的問題。根據(jù)“CARSI資源共享服務(wù)屬性要求”,CARSI IdP目前需要定義四個屬性,分別是eduPersonScopedAffiliation、eduPersonTargetedID、eduPersonEntitlement、eduPersonPrincipalName,可根據(jù)SP實(shí)際需求,酌情釋放前三個屬性。eduPersonPrincipalName是一個帶有學(xué)號或者工號的用戶身份屬性,信息比較敏感;此屬性值可經(jīng)IdP加密后,生成可讀性不強(qiáng),能唯一標(biāo)識用戶身份的eduPersonTargetedID屬性,釋放給SP,實(shí)現(xiàn)在保護(hù)用戶隱私的前提下支持SP區(qū)分用戶。
圖2 釋放屬性與保護(hù)隱私示意圖
通常情況下,Shibboleth會話基于cookie,因此建議在所有IdP和SP的系統(tǒng)上部署使用SSL技術(shù),保障信息傳輸安全。SSL數(shù)字證書能實(shí)現(xiàn)網(wǎng)站HTTPS化,加密用戶與服務(wù)器之間的交互訪問,防劫持、防篡改、防監(jiān)聽。采用通配符SSL證書可以保護(hù)同一主域名下同一級所有的子域名,不限個數(shù),性價(jià)比較高。
由于采用了https協(xié)議傳輸數(shù)據(jù),傳統(tǒng)方式部署WAF設(shè)備,分析攔截功能受到限制。部署HTTP 反向代理服務(wù)是一個較好的辦法,用戶通過HTTPS 協(xié)議連接代理服務(wù)器,代理服務(wù)器向后端的真實(shí)IdP服務(wù)器發(fā)送 HTTP 協(xié)議請求,調(diào)整WAF設(shè)備部署位置識別HTTP協(xié)議,精確感知用戶操作行為,保障IdP系統(tǒng)安全。充分利用好校園網(wǎng)或數(shù)據(jù)中心出口防火墻等安全設(shè)備,做好Linux自身的安全策略,僅保留必要的端口和服務(wù),動態(tài)調(diào)整iptables規(guī)則,攔截頻繁掃描與攻擊行為,及時修復(fù)操作系統(tǒng)與應(yīng)用軟件的漏洞。
每個學(xué)校都有眾多的服務(wù)提供商SP,對于已經(jīng)加入到CARSI聯(lián)盟的SP來說,對接是十分簡單的事情;而某些SP可能尚未加入CARSI聯(lián)盟,與這些SP互連,則需要學(xué)校IdP與SP互相交換metadata數(shù)據(jù)。交換過程中,要保證數(shù)據(jù)的準(zhǔn)確性,尤其是要仔細(xì)核對metadata的有效期、互聯(lián)網(wǎng)網(wǎng)址和簽名數(shù)據(jù)等等。在學(xué)校IdP服務(wù)中正確加載metadata文件,即可互連成功。
在使用過程中,用戶在SP網(wǎng)站登錄過程往往比較復(fù)雜。為了簡化操作,避免用戶在采用Shibboleth認(rèn)證時必須先選擇自己所在機(jī)構(gòu),一些高校提出了WAYFless方法,即通過將IdP地址組合在 URL中,精簡了用戶復(fù)雜認(rèn)證步驟,提高了認(rèn)證使用效率。我校在此基礎(chǔ)上,一是將大多數(shù)SP的WAYFless網(wǎng)址鏈接到學(xué)校的資源列表網(wǎng)頁上;二是構(gòu)造短網(wǎng)址進(jìn)行跳轉(zhuǎn),比如:https://idp.xxx.edu.cn/sp/?examle鏈接能跳轉(zhuǎn)到examle資源認(rèn)證頁面,這樣極大方便了用戶保存網(wǎng)址和資源網(wǎng)址變更。用戶可根據(jù)自己的習(xí)慣選擇使用最便捷的方法。
圖3 SP訪問數(shù)據(jù)分析圖
自2020年學(xué)校CARSI平臺部署應(yīng)用以來,學(xué)校相繼對接了中國知網(wǎng)、Nature、Web of Science等國內(nèi)外12家電子資源服務(wù)提供商,日均認(rèn)證人次達(dá)1500余人次,增長趨勢明顯。學(xué)校部署CARSI平臺后,無論校內(nèi)外,學(xué)校師生訪問電子資源數(shù)據(jù)庫,全程瀏覽器操作,比VPN便捷,不需要插件和軟件,不關(guān)注瀏覽器版本;大大降低使用門檻,提升用戶體驗(yàn)。訪問過程中嚴(yán)格落實(shí)用戶實(shí)名制,所有數(shù)據(jù)能溯源可查;少數(shù)用戶行為不當(dāng),能夠及時發(fā)現(xiàn)和處理,減少對其他用戶影響。CARSI平臺系統(tǒng)提供各類應(yīng)用服務(wù)的訪問分析(如圖3所示),為學(xué)校的各類資源決策提供了數(shù)字依據(jù)。
學(xué)?;贑ARSI平臺構(gòu)建統(tǒng)一認(rèn)證和資源共享服務(wù),為跨域、跨國、跨校身份認(rèn)證和資源共享服務(wù)提供了平臺基礎(chǔ),身份認(rèn)證更安全,提供服務(wù)更便捷,開發(fā)時間更短,維護(hù)成本更低;隨著CARSI聯(lián)盟國內(nèi)外成員數(shù)量的不斷增加,學(xué)校共享全球范圍內(nèi)的教育科研資源將更加規(guī)范、便利,資源更加豐富,學(xué)校國際化辦學(xué)水平也將不斷提升。
[1]CARSI[EB/OL]. https://www.carsi.edu.cn/.
[2]Shibboleth[EB/OL]. https://www.shibboleth.net/.
[3]WAYFless[EB/OL]. https://github.com/szulwm/WAYFless.