摘 要:本文介紹了單點登錄技術的基礎理論,分析了三種單點登錄方案,并在基于CAS協(xié)議單點登錄方案基礎上加以改進,設計了符合某信息門戶實際需求的單點登錄模型,該模型實現(xiàn)了統(tǒng)一用戶管理,集中認證和單點登錄。
關鍵詞:單點登錄;Web應用;CAS協(xié)議
0 引言
近年來隨著企業(yè)信息化建設的不斷進步以及互聯(lián)網(wǎng)技術的發(fā)展,企業(yè)在不同階段開發(fā)出了多個應用系統(tǒng),這些應用系統(tǒng)可能是基于不同技術實現(xiàn)的,它們有著獨立的安全認證和用戶管理機制。在門戶系統(tǒng)中集成這些應用時,這些機制就成了集成的阻礙,增加了用戶登錄出錯的可能性,降低了用戶訪問資源站點的安全性,加重了管理員的負擔。所以非常必要對門戶系統(tǒng)和接入到其中的資源站點建立統(tǒng)一身份認證,實現(xiàn)單點登錄。
1 單點登錄技術及其分類
單點登錄(Single Sign-On,SSO),即用戶在訪問多個系統(tǒng)和多種受限資源時,只需進行一次登錄和身份驗證,不用重復登錄,用戶安全信息轉換為電子身份后自動地傳遞到多個系統(tǒng),從而提高工作效率和安全性[1]。
1.1 根據(jù)應用系統(tǒng)結構分類
應用系統(tǒng)可以分為客戶端/服務器(C/S)和瀏覽器/服務器(B/S)結構,單點登錄技術也可分為針對C/S的基于Windows窗體的單點登錄和針對B/S結構的基于Web的單點登錄技術。從理論上說,這兩種技術能夠使用相同的認證和授權框架結構,區(qū)別在于基于Web的單點登錄在實現(xiàn)方式上更多的采用了Web相關的技術。
1.2 根據(jù)實現(xiàn)技術分類
按照實現(xiàn)技術分類,可分為基于腳本(Script)的單點登錄和基于票據(jù)(Ticket)的單點登錄。
基于腳本的單點登錄技術,一般使用自動化技術,通過一些腳本在客戶端自動為用戶輸入口令和用戶名。用戶ID和密碼大都以明文方式存放在客戶端,存在安全隱患。
基于票據(jù)的單點登錄技術,其主要目標是通過要求目標系統(tǒng)進行改造接受訪問票據(jù)來實現(xiàn)SSO,對用戶的驗證工作由SSO服務器負責,目標系統(tǒng)的責任只是向SSO服務器驗證訪問票據(jù)的有效性。根據(jù)使用票據(jù)類型的不同,基于票據(jù)的單點登錄可分為基于Cookie的單點登錄、基于Kerberos的單點登錄和基于SAML的單點登錄三種。
2 三種單點登錄方案
一直以來,產(chǎn)業(yè)界和理論界紛紛提出了各自的單點登錄解決方案。對單點登錄的研究和開發(fā)工作一直在不斷深入。目前的單點登錄方案主要有Yale-CAS(Central Authentication Service)、Microsoft的Passport和Sun領導下的自由聯(lián)盟(Liberty Alliance)。
2.1 基于CAS協(xié)議的單點登錄方案[2]
CAS協(xié)議是一個獨立于平臺的,易于理解的用JAVA實現(xiàn)的開源協(xié)議,支持多方認證和代理功能。它能為多個應用提供單點登錄基礎架構。它將用戶身份認證集中于單一的Web應用,讓用戶簡化他們的密碼管理,從而提高安全性,開發(fā)者可以很容易的修改驗證邏輯。CAS協(xié)議的基礎思想都是基于Kerberos的票據(jù)方式。
基于CAS協(xié)議的單點登錄方案在安全性上,保證用戶信息不在應用系統(tǒng)間傳遞,使用具有更高安全性的票據(jù)驗證用戶和應用服務。在適用性上,它支持多種客戶端,如Java、Perl、Jsp、Asp、Php、Apache和PAM模塊,方便應用程序集成。它應用范圍很廣,在北美和歐洲的大部分高校和科研院所都采用了CAS,不少企業(yè)也在CAS協(xié)議的基礎上開發(fā)自己的單點登錄產(chǎn)品。
2.2 微軟Passport單點登錄方案
Passport是微軟推出的基于Web的統(tǒng)一身份認證系統(tǒng)。其核心的身份認證服務器以及用戶個人信息服務器都由微軟集中控制,其技術細節(jié)不對外公開,因此人們一直對其安全性持懷疑態(tài)度,用戶擔心其個人資料被泄漏。微軟的Passport系統(tǒng)曾被黑客多次入侵。這些都限制了微軟Passport服務的進一步推廣。
2.3 自由聯(lián)盟單點登錄方案
自由聯(lián)盟規(guī)范依據(jù)了OASIS產(chǎn)業(yè)標準,它不是中央集中式的單一登錄模式,而是一種相對開放的模式,在其信任圈中可以存在多個相互獨立的身份提供者。但目前自由聯(lián)盟規(guī)范仍處于研究階段,且其本身的協(xié)議比較復雜,實現(xiàn)起來具有一定難度,沒有成型的應用服務。
3 單點登錄系統(tǒng)的設計
本文為某信息門戶設計單點登錄方案。某信息門戶集成了包含論壇、博客、新聞評論、房產(chǎn)信息等應用系統(tǒng),用戶在使用多個應用系統(tǒng)時需要多次輸入用戶名和密碼獲得各應用系統(tǒng)的服務,給用戶的使用帶來極大不便。與此同時系統(tǒng)管理員需要維護多個用戶數(shù)據(jù)庫,加重了工作負擔,也造成了資源的浪費。
在選取方案時,要考慮到安全性高、易實現(xiàn)、登錄方案成熟等要求。通過對前面三種單點登錄方案的比較,為了解決信息門戶的這些問題,使用基于CAS協(xié)議單點登錄方案,并在此基礎上對其加以改進。信息門戶中用戶群體呈現(xiàn)多樣化,有一般的注冊用戶,也有不同等級的管理人員,并且應用系統(tǒng)也會不斷增加,要求新系統(tǒng)在加入信息門戶時,修改較小,最好有通用的接口供其調用。無論用戶通過門戶登錄,還是通過各個應用系統(tǒng)登錄,都能做到單點登錄,全網(wǎng)通行。通過以上分析,提出一個以集中認證服務器為中心的單點登錄系統(tǒng)模型。整個系統(tǒng)的結構如圖1所示。
圖1 單點登錄系統(tǒng)模型
集中認證服務器實現(xiàn)統(tǒng)一用戶管理、集中認證和單點登錄功能。統(tǒng)一用戶管理包括注冊用戶管理、管理員管理、角色管理、權限管理、應用系統(tǒng)管理、日志管理和基于角色的訪問控制。基于CAS協(xié)議實現(xiàn)集中認證和單點登錄,每個應用系統(tǒng)在認證用戶時都通過重定向到集中認證服務器進行集中身份認證。
單點登錄系統(tǒng)只解決用戶認證和用戶是否有權限進入某個應用系統(tǒng)的問題,而用戶在應用系統(tǒng)的權限(業(yè)務權限)則由各應用系統(tǒng)進行控制。其原因是應用系統(tǒng)都擁有自己的權限和資源管理策略。如果采用統(tǒng)一集中的權限管理策略,雖然用戶權限管理起來比較方便,但是對應用系統(tǒng)的修改比較大,這樣導致應用系統(tǒng)集成成本增加,并且各個系統(tǒng)都有自己不同的業(yè)務邏輯,對應用系統(tǒng)的修改可能破壞掉其業(yè)務邏輯的完整性。統(tǒng)一集中的權限控制策略對于所有的系統(tǒng)都是自己開發(fā)時比較合適,而對于第三方系統(tǒng)以及以后新的應用系統(tǒng)的加入,都會帶來非常多的不方便?;谝陨峡紤],本文單點登錄系統(tǒng)采用集中認證分級授權的策略。
參考文獻
[1]張挺,耿繼秀. Web環(huán)境下的SSO實現(xiàn)模式研究[J].計算機仿真,2005,22(8):128-129.
[2]羅時飛.Acegi CAS—構建安全的Java系統(tǒng)[M].北京:電子工業(yè)出版社,2007.
作者簡介
宋洪娟(1983-),女,山東泰安人,碩士,研究方向:網(wǎng)絡工程與管理信息系統(tǒng)?,F(xiàn)擔任第二炮兵工程大學士官學院教員。