文/夏凌云 田愛寶 宋文文
?
利用JA-SIG CAS實現Cacti的數字校園單點登錄集成
文/夏凌云田愛寶宋文文
隨著高校信息化建設的發展,數字化校園的構建成為重要的研究方向,關于數字化校園的CAS集成方案是一個值得探討的話題。Cacti是一個常用的開源網絡管理監測圖形分析工具,在很多高校的網絡日常管理和運維中被廣泛運用。中國石油大學(華東)使用的是CactiEZ中文漢化版,其基于CentOS6,整合了Spine,RRDTool,集成了Monitor、Syslog、Weathermap等等插件以及Apache,Squid,MySQL等等必要軟件環境,是一個功能很強大的完整Cacti中文解決方案。近來遇到了一個新需求,就是需要嘗試為CactiEZ集成數字校園的SSO(Single Sign On,單點登錄)功能。
中國石油大學(華東)采用的數字校園系統支持CAS(Central Authentication Service,中央認證服務),部署了專門的CAS Server為相關業務系統提供SSO登錄認證服務。CAS是由JA-SIG開發的一套基于Apache協議的開源系統,在教育行業運用很廣泛,很多高校均采用了CAS作為數字校園的單點登錄解決方案。Cacti主要采用的是php語言開發,幸運地是,JA-SIG 提供了開源的CAS phpClient,同時Cacti也提供了相關的用戶登錄接口,可以利用這些接口實現兩個系統的對接和集成。具體對接方法如下:
1.首先到JA-SIG官網下載最新版本的CAS php客戶端(下載地址:https:// developer.jasig.org/cas-clients/php/ current/),現在的最新版本為1.3.4;
2.CAS phpClient需要依據DOM標準(Document Object Model,文檔對象模型)對返回的web文件進行xml解析,因此需要php-dom安裝包,在CactiEZ的安裝鏡像里是沒有默認安裝的,所以首先需要通過yum install php-dom來安裝該功能;
3.解壓第一步下載的CAS-1.3.4.tgz文件,將里面的接口文件(CAS.php文件和/CAS文件夾)放到CactiEZ的Apache發布文件夾內,默認為/var/www/html/,以便后續調用;
4.在該文件夾下再建立一個ssoLogin. php文件,主要代碼段和注釋內容如下:


5.重啟httpd服務后,訪問fttp:// CactiEZ-Server/ssoLogin.php頁面,將自動跳轉至CAS認證頁面,輸入統一身份認證用戶名密碼并通過驗證后,用戶將獲得CactiEZ的權限,并跳轉至代碼里指定的graph_view. php頁面,單點登錄成功!
由于cacti對用戶權限控制劃分非常細致,所以僅僅使用CAS的統一身份信息并不能對cacti用戶權限進行細分,所以在cacti系統里,還是需要預先建立一個和CAS中欲訪問用戶名相同的本地用戶,并為其預先設置好訪問權限,否則將會提示“無此用戶,請在CactiEZ中新建該用戶并配置權限”的錯誤。因此從這方面看,可能利用CASphpClient與CactiEZ對接僅僅能起到用戶名密碼的單點登錄,對CactiEZ的用戶管理并沒有更多的幫助。但是JA-SIG除了PHP接口,還提供了.NET和JAVA等等的類似CAS接口,利用這些接口和本文思路,我們可以方便得實現各種自制或開源系統與CAS的集成,從而為這些系統實現校園統一身份認證功能。
作者單位為中國石油大學(華東)網絡及教育技術中心