文/夏凌云 田愛寶 宋文文
?
利用JA-SIG CAS實現(xiàn)Cacti的數(shù)字校園單點登錄集成
文/夏凌云田愛寶宋文文
隨著高校信息化建設(shè)的發(fā)展,數(shù)字化校園的構(gòu)建成為重要的研究方向,關(guān)于數(shù)字化校園的CAS集成方案是一個值得探討的話題。Cacti是一個常用的開源網(wǎng)絡(luò)管理監(jiān)測圖形分析工具,在很多高校的網(wǎng)絡(luò)日常管理和運維中被廣泛運用。中國石油大學(xué)(華東)使用的是CactiEZ中文漢化版,其基于CentOS6,整合了Spine,RRDTool,集成了Monitor、Syslog、Weathermap等等插件以及Apache,Squid,MySQL等等必要軟件環(huán)境,是一個功能很強大的完整Cacti中文解決方案。近來遇到了一個新需求,就是需要嘗試為CactiEZ集成數(shù)字校園的SSO(Single Sign On,單點登錄)功能。
中國石油大學(xué)(華東)采用的數(shù)字校園系統(tǒng)支持CAS(Central Authentication Service,中央認(rèn)證服務(wù)),部署了專門的CAS Server為相關(guān)業(yè)務(wù)系統(tǒng)提供SSO登錄認(rèn)證服務(wù)。CAS是由JA-SIG開發(fā)的一套基于Apache協(xié)議的開源系統(tǒng),在教育行業(yè)運用很廣泛,很多高校均采用了CAS作為數(shù)字校園的單點登錄解決方案。Cacti主要采用的是php語言開發(fā),幸運地是,JA-SIG 提供了開源的CAS phpClient,同時Cacti也提供了相關(guān)的用戶登錄接口,可以利用這些接口實現(xiàn)兩個系統(tǒng)的對接和集成。具體對接方法如下:
1.首先到JA-SIG官網(wǎng)下載最新版本的CAS php客戶端(下載地址:https:// developer.jasig.org/cas-clients/php/ current/),現(xiàn)在的最新版本為1.3.4;
2.CAS phpClient需要依據(jù)DOM標(biāo)準(zhǔn)(Document Object Model,文檔對象模型)對返回的web文件進(jìn)行xml解析,因此需要php-dom安裝包,在CactiEZ的安裝鏡像里是沒有默認(rèn)安裝的,所以首先需要通過yum install php-dom來安裝該功能;
3.解壓第一步下載的CAS-1.3.4.tgz文件,將里面的接口文件(CAS.php文件和/CAS文件夾)放到CactiEZ的Apache發(fā)布文件夾內(nèi),默認(rèn)為/var/www/html/,以便后續(xù)調(diào)用;
4.在該文件夾下再建立一個ssoLogin. php文件,主要代碼段和注釋內(nèi)容如下:
5.重啟httpd服務(wù)后,訪問fttp:// CactiEZ-Server/ssoLogin.php頁面,將自動跳轉(zhuǎn)至CAS認(rèn)證頁面,輸入統(tǒng)一身份認(rèn)證用戶名密碼并通過驗證后,用戶將獲得CactiEZ的權(quán)限,并跳轉(zhuǎn)至代碼里指定的graph_view. php頁面,單點登錄成功!
由于cacti對用戶權(quán)限控制劃分非常細(xì)致,所以僅僅使用CAS的統(tǒng)一身份信息并不能對cacti用戶權(quán)限進(jìn)行細(xì)分,所以在cacti系統(tǒng)里,還是需要預(yù)先建立一個和CAS中欲訪問用戶名相同的本地用戶,并為其預(yù)先設(shè)置好訪問權(quán)限,否則將會提示“無此用戶,請在CactiEZ中新建該用戶并配置權(quán)限”的錯誤。因此從這方面看,可能利用CASphpClient與CactiEZ對接僅僅能起到用戶名密碼的單點登錄,對CactiEZ的用戶管理并沒有更多的幫助。但是JA-SIG除了PHP接口,還提供了.NET和JAVA等等的類似CAS接口,利用這些接口和本文思路,我們可以方便得實現(xiàn)各種自制或開源系統(tǒng)與CAS的集成,從而為這些系統(tǒng)實現(xiàn)校園統(tǒng)一身份認(rèn)證功能。
作者單位為中國石油大學(xué)(華東)網(wǎng)絡(luò)及教育技術(shù)中心