菅銳
摘要:面對(duì)高校信息化建設(shè)步伐的加快,各種應(yīng)用系統(tǒng)應(yīng)運(yùn)而生,該文分析了獨(dú)立開發(fā)和建設(shè)的應(yīng)用系統(tǒng)在使用各自身份認(rèn)證方式進(jìn)行認(rèn)證的種種弊端,介紹了統(tǒng)一身份認(rèn)證體系的優(yōu)越性和CAS中央身份認(rèn)證優(yōu)秀的開發(fā)特性,結(jié)合高校現(xiàn)狀和系統(tǒng)開發(fā)成本,提出利用CAS來實(shí)現(xiàn)SSO統(tǒng)一身份認(rèn)證體系,實(shí)現(xiàn)統(tǒng)一的用戶管理、資源管理和權(quán)限控制的設(shè)計(jì)目標(biāo)。
關(guān)鍵詞:高校;統(tǒng)一身份認(rèn)證;CAS應(yīng)用
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2018)15-0065-02
1 高校目前軟件體系的身份認(rèn)證現(xiàn)狀
隨著新時(shí)代鐘聲的響起,第三次工業(yè)革命的完成,幾十年的發(fā)展,放眼當(dāng)下,網(wǎng)絡(luò)技術(shù)在人們心里有了越來越高的地位,互聯(lián)網(wǎng)已經(jīng)大大影響人們的生活,互聯(lián)網(wǎng)+已經(jīng)成為時(shí)代的潮流,不可逆轉(zhuǎn)。從衣食住行到教育醫(yī)學(xué),互聯(lián)網(wǎng)已經(jīng)發(fā)展到各個(gè)領(lǐng)域,而對(duì)教育行業(yè)而言,高校教育則是重中之重,也是新時(shí)代人才培養(yǎng)的關(guān)鍵所在。高校對(duì)互聯(lián)網(wǎng)+的顯著成果比較有代表性的則是“數(shù)字校園”,將高校教育與互聯(lián)網(wǎng)相結(jié)合,節(jié)省工作時(shí)間,提高工作效率。在建設(shè)“數(shù)字校園”的過程中,廣大高校中的各個(gè)部門紛紛推出了相對(duì)應(yīng)的管理系統(tǒng)。教務(wù)部推出了教師管理系統(tǒng),人事部推出了教職工信息管理系統(tǒng),學(xué)生部推出了學(xué)生管理系統(tǒng),這些系統(tǒng)各自獨(dú)立,也有著各自不同的數(shù)據(jù)庫。
在多部門多系統(tǒng)的情況下,用戶擁有多個(gè)用戶名,需要設(shè)置多個(gè)密碼,這樣不僅影響了用戶體驗(yàn),還存在很大的安全問題。多身份驗(yàn)證在加重系統(tǒng)負(fù)擔(dān)的同時(shí)還會(huì)提高系統(tǒng)維護(hù)費(fèi)用,影響用戶的工作效率。為了解決這些問題,一個(gè)統(tǒng)一身份驗(yàn)證必不可少。
2 什么是統(tǒng)一身份認(rèn)證
2.1統(tǒng)一身份認(rèn)證簡介
身份認(rèn)證,從本意上來看,就是對(duì)身份按照一定的標(biāo)準(zhǔn)和規(guī)定來進(jìn)行審核的一種活動(dòng)。從安全性方面來看,身份認(rèn)證大致分為三類,從低級(jí)的密碼認(rèn)證到中級(jí)的密碼+信息認(rèn)證,再到高一級(jí)的多重加密算法語句驗(yàn)證。從應(yīng)用程序的角度來看,身份認(rèn)證和權(quán)限設(shè)定都是一體共存的,當(dāng)身份認(rèn)證順利完成之后,系統(tǒng)權(quán)限也隨之授予。而在一個(gè)工作體系當(dāng)中,理應(yīng)有一個(gè)統(tǒng)一的身份認(rèn)證系統(tǒng)來統(tǒng)籌各個(gè)系統(tǒng)的身份認(rèn)證,以此來提高系統(tǒng)的安全性和工作效率。當(dāng)然,為了系統(tǒng)的安全性考慮,授權(quán)控制則由各個(gè)系統(tǒng)據(jù)實(shí)際情況而一一確定。
2.2統(tǒng)一身份認(rèn)證體系簡介
在如今軟件系統(tǒng)的數(shù)量呈爆發(fā)式增長的情況下,當(dāng)系統(tǒng)數(shù)量達(dá)到一定規(guī)模后都會(huì)出現(xiàn)“多對(duì)多”的問題,即多系統(tǒng)多身份,多用戶名多密碼。當(dāng)用戶系統(tǒng)使用數(shù)量達(dá)到一定程度之后,用戶記憶這些系統(tǒng)的用戶名和密碼就會(huì)略顯麻煩,而且多個(gè)系統(tǒng)使用同樣的用戶名和密碼又會(huì)降低安全性。事實(shí)上,這些問題并非是系統(tǒng)開發(fā)帶來的問題,而是缺少一個(gè)統(tǒng)一的用戶信息管理體系。
SSO——統(tǒng)一身份認(rèn)證體系(單點(diǎn)登錄),它能很好地處理好這個(gè)問題,經(jīng)一個(gè)應(yīng)用為媒介,登錄后就能夠用一套用戶名和密碼來實(shí)現(xiàn)多個(gè)應(yīng)用程序、系統(tǒng)的身份認(rèn)證,將多系統(tǒng)多用戶的問題進(jìn)行妥善的處理。在統(tǒng)一身份認(rèn)證體系之下,用戶只需要進(jìn)行一次登錄就可以將登錄信息映射到整個(gè)體系下的所有系統(tǒng)中,它簡單實(shí)用的特性讓它成為目前環(huán)境下統(tǒng)一身份認(rèn)證的一個(gè)較為簡單也較為流行的處理方法。在完善的SSO體系中一般會(huì)有三個(gè)必有的對(duì)象,第一個(gè)對(duì)象是多個(gè)用戶身份,第二個(gè)對(duì)象是多個(gè)系統(tǒng)和多個(gè)驗(yàn)證,最關(guān)鍵的第三個(gè)對(duì)象就是SSO認(rèn)證中心。SSO體系的核心是將所有的身份認(rèn)證都在SSO認(rèn)證中心進(jìn)行,然后調(diào)用通用的方法類來判斷當(dāng)前用戶是否合法。SSO體系在解決了用戶多身份驗(yàn)證問題的同時(shí),降低了管理成本,提高了系統(tǒng)安全性,還大大減輕了系統(tǒng)開發(fā)人員和維護(hù)人員的工作量。
3 統(tǒng)一身份認(rèn)證的幾種實(shí)現(xiàn)方案
3.1常用身份認(rèn)證體系
3.1.1統(tǒng)一身份認(rèn)證之Kerberos
Kerberos是一個(gè)采用共享密鑰的方式來實(shí)現(xiàn)SSO的一款第三方協(xié)議,它能在網(wǎng)絡(luò)安全不能保證的情況下實(shí)現(xiàn)客戶端和服務(wù)器端的通信服務(wù)。Kerberos的一大優(yōu)勢(shì)是可以在不保證網(wǎng)絡(luò)安全的前提下正常工作,利用它雙向認(rèn)證和時(shí)間戳特性來保證Server和Client的正確運(yùn)行。在實(shí)際的應(yīng)有場(chǎng)景中通常有三個(gè)角色,即需要訪問服務(wù)的Client,提供服務(wù)的Application Server,以及提供安全認(rèn)證的第三方Kerberos服務(wù)器KDC(Key Distribution Center)。它們彼此之間的認(rèn)證、通信的數(shù)據(jù)流如下圖所示。
Kerberos的優(yōu)勢(shì)在于身份認(rèn)證方式更安全、更具彈性、更有效率,但在Kerberos 服務(wù)與服務(wù)器連接結(jié)束之前,其余服務(wù)都會(huì)連接不上服務(wù)器。另外,Kerberos對(duì)于客戶端的時(shí)鐘還會(huì)有嚴(yán)格的要求,如若客戶端時(shí)鐘有誤,那么將會(huì)影響到Kerberos的認(rèn)證,導(dǎo)致其不能成功。并且,Kerberos的相關(guān)協(xié)議沒能做到標(biāo)準(zhǔn)化,在服務(wù)器實(shí)現(xiàn)工具中會(huì)有一些不同。從安全性方面來講,Kerberos的所有用戶信息都存儲(chǔ)在它的中心服務(wù)器之中,當(dāng)服務(wù)器出現(xiàn)安全問題時(shí),所有用戶的密鑰都會(huì)出現(xiàn)問題。
3.1.2統(tǒng)一身份認(rèn)證之CAS
CAS中央認(rèn)證服務(wù),它是一個(gè)應(yīng)用面非常廣的一個(gè)單點(diǎn)登錄系統(tǒng),具有獨(dú)立于平臺(tái)的,易于理解,支持代理功能。CAS由CAS服務(wù)器和CAS客戶端構(gòu)成,它的單點(diǎn)登錄認(rèn)證就是一個(gè)向服務(wù)器發(fā)送請(qǐng)求,服務(wù)器在SSL安全協(xié)議下經(jīng)過檢查再響應(yīng)請(qǐng)求跳轉(zhuǎn)到身份認(rèn)證頁面的一個(gè)過程。很多時(shí)候,我們可以用用戶去游樂場(chǎng)的一個(gè)游玩全程來解釋CAS的工作原理。在門口,門衛(wèi)檢查用戶的門票,這代表用戶名和密碼,當(dāng)用戶通過檢查之后,就可以領(lǐng)到一張憑證,那就是登錄票據(jù)(TGC)。這個(gè)票據(jù)便是用戶合法性的證明,當(dāng)用戶要求坐一下過山車的時(shí)候,過山車的管理員(Client)就會(huì)要檢查用戶的過山車票據(jù)(ST),這時(shí)用戶可以通過登錄票據(jù)(TGC)來向售票處(TGS)拿一張關(guān)于過山車的票據(jù)(ST),這樣用戶就可以享受過山車的樂趣了。同理,用戶想享受另外的服務(wù),那么就必須去相應(yīng)的售票機(jī)(TGS)通過登錄憑據(jù)(TGC)來一一領(lǐng)取。當(dāng)用戶離開游樂場(chǎng),那么用戶手中的登錄票據(jù)(TGC)也就作廢了,CAS也就完成了一次完整的工作流程,它的工作流程如下圖所示。
從體系結(jié)構(gòu)上來看,CAS分為Server 和 Client 兩個(gè)部分。Server和Client分工明確,前者在獨(dú)立部署之后將給用戶發(fā)送兩個(gè)重要的票據(jù),以此來完成用戶的身份評(píng)定。而后者則是將用戶受保護(hù)的資源進(jìn)行安全性保護(hù),對(duì)閱覽調(diào)用權(quán)限進(jìn)行邏輯判定,向前者再次發(fā)生認(rèn)證邀請(qǐng)。準(zhǔn)確地來說,它以Filter 方式保護(hù)受保護(hù)的資源。對(duì)于訪問受保護(hù)資源的每個(gè) Web 訪問請(qǐng)求,Client 會(huì)分析該請(qǐng)求的 Http 請(qǐng)求中是否包含ServiceTicket(服務(wù)票據(jù),由 Server發(fā)出用于標(biāo)識(shí)目標(biāo)服務(wù)),Client與受保護(hù)的客戶端應(yīng)用部署在一起。簡單來說,CAS是一個(gè)支持多種認(rèn)證機(jī)制,提供高可用性且適用于多平臺(tái)的統(tǒng)一身份認(rèn)證解決方案。
3.2章末總結(jié)
綜上所述,認(rèn)證都是對(duì)用戶的真實(shí)身份與其所稱身份是否是一致的一個(gè)過程,而在認(rèn)證過程中會(huì)有認(rèn)證的憑證和一個(gè)認(rèn)證的方式,認(rèn)證的憑據(jù)具有唯一性,舉例(id,身份證,動(dòng)態(tài)口令),認(rèn)證的方式為單向驗(yàn)證,主要由服務(wù)器來承擔(dān)驗(yàn)證的功能。相比較Kerberos和Shiro而言,CAS顯得更為優(yōu)秀。
4 CAS的開發(fā)成本
4.1軟件成本
CAS是一款開源項(xiàng)目,與大型企業(yè)所使用專有軟件相比較,使用CAS的預(yù)算更低。作為一款開源項(xiàng)目,基本軟件包是免費(fèi)的,即使有付費(fèi)的附加功能和服務(wù),花費(fèi)仍然會(huì)較少。也可以對(duì)其進(jìn)行二次開發(fā),這對(duì)預(yù)算比較敏感的各大高校而言,大有裨益。而且CAS項(xiàng)目免去了除了購買軟件的成本以外,商業(yè)軟件還會(huì)產(chǎn)生諸如防病毒、支持、繼續(xù)升級(jí)以及相關(guān)的鎖定成本等費(fèi)用,很多成本是你沒有意識(shí)到的。而CAS呢,當(dāng)然獲得更好的質(zhì)量,你只要支付商業(yè)軟件成本的一小部分而已。
4.2時(shí)間成本
CAS作為一個(gè)開源項(xiàng)目,它已經(jīng)有比較成熟的代碼結(jié)構(gòu),項(xiàng)目開發(fā)時(shí)間相對(duì)較低,比較容易上手,所以相對(duì)而言實(shí)現(xiàn)CAS項(xiàng)目的功能就會(huì)比較簡單,這就可以讓開發(fā)人員和用戶之間有更多的時(shí)間進(jìn)行深度溝通,最終導(dǎo)致CAS的開發(fā)周期較短,成本大大降低。
4.3硬件成本
從項(xiàng)目運(yùn)行平臺(tái)來看,CAS適用于Linux這個(gè)免費(fèi)平臺(tái),對(duì)硬件需求相對(duì)較低,如果本項(xiàng)目是使用商業(yè)軟件開發(fā),那樣就不得不停地去更新軟件和硬件。利用CAS原理來開發(fā)這個(gè)項(xiàng)目,因?yàn)樗_源特性和適用于免費(fèi)平臺(tái),所以使用CAS項(xiàng)目來完善統(tǒng)一身份認(rèn)證體系對(duì)硬件的要求也就沒有商業(yè)軟件對(duì)硬件的要求高,那就意味著你可以允許你有點(diǎn)過時(shí)的硬件之上,這對(duì)許多高校來說,都是一張降低開發(fā)成本的王牌。
4.4優(yōu)越性
首先,CAS運(yùn)行的Linux平臺(tái)本身就很安全,而且CAS只提供ticket,其本身不存儲(chǔ)任何用戶的信息,這就對(duì)用戶的安全起到了一定的保護(hù)作用。其次,CAS整體是b/s結(jié)構(gòu),支持多平臺(tái)開發(fā),且無需客戶端,免去了更新客戶端的麻煩,CAS使用Ticket來實(shí)現(xiàn)支持的認(rèn)證協(xié)議,服務(wù)端驗(yàn)證成功后會(huì)給客戶端一個(gè)ticket(重定向的方式),客戶端根據(jù)ticket從服務(wù)端獲取用戶名等信息,然后客戶端將用戶信息放到自己session就可以了。
5 高校的統(tǒng)一身份認(rèn)證體系建設(shè)需求
面對(duì)各高校的多應(yīng)用系統(tǒng)的現(xiàn)狀來看,一個(gè)統(tǒng)一的身份認(rèn)證體系已經(jīng)必不可少。單從部門的角度出發(fā),多系統(tǒng)并存似乎問題不大,但從學(xué)校全局出發(fā),這樣各自發(fā)展會(huì)隨著時(shí)間的流逝而出現(xiàn)各種各樣的問題。當(dāng)管理系統(tǒng)多起來后,從財(cái)務(wù)部門來看,從前期軟件開發(fā)到后續(xù)系統(tǒng)維護(hù),多系統(tǒng)就意味著多開支,這無疑需要學(xué)校多付出一大筆經(jīng)費(fèi)開支,這于各高校提倡的低成本預(yù)算不符;以教師的視角來看,學(xué)校的硬件設(shè)備性能可能參差不齊,多系統(tǒng)會(huì)致使運(yùn)行并非很流暢的電腦上下載更多的客戶端,并設(shè)置多套用戶名和密碼,往往處理一件事就需要登錄操作很多個(gè)不同的系統(tǒng),讓沐浴在信息化時(shí)代的春風(fēng)下的教師們吹得并非那么舒心。從安全性的角度來看,各個(gè)系統(tǒng)的數(shù)據(jù)庫也會(huì)因?yàn)楦鱾€(gè)系統(tǒng)部分功能模塊重疊,進(jìn)而使各個(gè)系統(tǒng)數(shù)據(jù)庫都會(huì)存儲(chǔ)教師和學(xué)生的數(shù)據(jù),這就使信息泄露的可能性大大提升。針對(duì)這些各方面存在的問題,實(shí)現(xiàn)多個(gè)系統(tǒng)間統(tǒng)一身份認(rèn)證和資源共享的需求已經(jīng)迫在眉睫。
6 結(jié)束語
在互聯(lián)網(wǎng)+時(shí)代的環(huán)境下,要想奮勇爭先,先人一步,務(wù)必要跟緊時(shí)代潮流,善于利用互聯(lián)網(wǎng)工具提高工作效率,減少人力開支,使用各式各樣的應(yīng)用系統(tǒng)來幫助我們減輕工作的壓力。在高等院校之中,如今高校各個(gè)部門也大都各自開發(fā)了各個(gè)部門的應(yīng)用系統(tǒng),而多系統(tǒng)多身份問題也擺到人們面前,那么一個(gè)統(tǒng)一的身份認(rèn)證體系必不可少。綜上而言,SSO統(tǒng)一身份認(rèn)證體系中,CAS中央認(rèn)證服務(wù)相比Kerberos這個(gè) Java框架而言各方面的成本顯然更加低廉,使用CAS解決方案來解決高校的統(tǒng)一身份認(rèn)證問題顯然更加合情合理。當(dāng)然,項(xiàng)目建設(shè)還存在一些問題,認(rèn)證系統(tǒng)與子系統(tǒng)的接口問題難以解決,后續(xù)開發(fā)就需要子系統(tǒng)開發(fā)者提供認(rèn)證系統(tǒng)的接口了。在統(tǒng)一身份認(rèn)證體系建立成功后,必將提高多個(gè)系統(tǒng)的工作效率,也能為用戶提供更好更優(yōu)的用戶體驗(yàn)。