采用CAS原理構(gòu)建單點登錄 企業(yè)的信息化過程是一個循序漸進的過程,,在企業(yè)各個業(yè)務(wù)網(wǎng)站逐步建設(shè)的過程中,根據(jù)各種業(yè)務(wù)信息水平的需要構(gòu)建了相應(yīng)的應(yīng)用系統(tǒng),,由于這些應(yīng)用系統(tǒng)一般是在不同的時期開發(fā)完成的,,各應(yīng)用系統(tǒng)由于功能側(cè)重,、設(shè)計方法和開發(fā)技術(shù)都有所不同,也就形成了各自獨立的用戶庫和用戶認證體系,。隨著新的業(yè)務(wù)網(wǎng)站不斷的增加,,用戶在每個應(yīng)用系統(tǒng)中都有獨立的賬號,這樣就造成在訪問不同的應(yīng)用系統(tǒng)時,,需要記錄對應(yīng)的用戶名和密碼,,多個用戶名密碼極易記混,如果忘記或記錯了某一個業(yè)務(wù)網(wǎng)站的用戶名或密碼就無法進行登錄,,耽誤工作,,影響工作效率,隨著局內(nèi)信息化進程的推進還會有新的應(yīng)用系統(tǒng)產(chǎn)生,,如果不引入單一用戶登錄的解決方案,,全公司工作人名特別是承擔審批權(quán)限的各級領(lǐng)導(dǎo)很難記清各類應(yīng)用系統(tǒng)的用戶名和密碼,嚴重影響由信息化帶來快捷性和高效性,。此外,,多個應(yīng)用平臺就有多個用戶管理,這也為系統(tǒng)管理員維護人員系統(tǒng)帶來巨大的工作量,,例如,,一次變更10個人員,即使只有5個應(yīng)用系統(tǒng),,也需要重復(fù)維護50個人員信息,,而企業(yè)的每次人員調(diào)整遠不至10人,這種幾何增長的維護工作量,,會浪費大量的精力和時間,,減弱了信息化系統(tǒng)帶來方便快捷,為此,,需建立一套統(tǒng)一的,、完善的、科學(xué)的單點登錄系統(tǒng),,每個用戶只需記錄一個用戶名密碼,,登錄一個平臺后即可實現(xiàn)各應(yīng)用系統(tǒng)的透明跳轉(zhuǎn),而且實行統(tǒng)一的用戶信息管理系統(tǒng),,系統(tǒng)管理員只需維護一套人員信息,,更改信息通過平臺接口同步更新至各個應(yīng)用系統(tǒng),實現(xiàn)人員系統(tǒng)單次維護全公司同步變更,,大大提高工作效率,。 新的應(yīng)用系統(tǒng)在不斷開發(fā),早一天規(guī)劃設(shè)計出單點登錄的規(guī)范接口,就可以為新開發(fā)的系統(tǒng)提出的一種整合的標準,,在開發(fā)初期無論哪個開發(fā)商,,無論采用哪種技術(shù)開發(fā),只要遵循單點登錄的規(guī)范標準,,新的系統(tǒng)開發(fā)完成之后即可無縫整合的到單點登錄平臺中,,從而減少了系統(tǒng)開發(fā)完成后再整合到單點登錄改動而造成資源的浪費。 從信息共享角度看現(xiàn)有的各個業(yè)務(wù)系統(tǒng)都使用各自的數(shù)據(jù)存儲方式,,不經(jīng)過基礎(chǔ)的用戶名和密碼認證后,,相互之間無法傳遞有效信息。為避免信息孤島的產(chǎn)生,,因此需要建立一個連接各個業(yè)務(wù)系統(tǒng)的技術(shù)架構(gòu)和標準,,實現(xiàn)平臺統(tǒng)一化整合;通過對業(yè)務(wù)處理和異常處理實現(xiàn)監(jiān)管透明,;通過將業(yè)務(wù)流程從應(yīng)用中抽離,,實現(xiàn)業(yè)務(wù)流程的靈活安排,這樣就需要一套可以整合現(xiàn)有各個業(yè)務(wù)網(wǎng)站的信息共享平臺,。 單點登錄的英文名稱為Single Sign-On,,簡寫為SSO,它是一個用戶認證的過程,,允許用戶一次性進行認證之后,,就訪問系統(tǒng)中不同的應(yīng)用;而不需要訪問每個應(yīng)用時,,都重新輸入密碼,。IBM對SSO有一個形象的解釋“單點登錄、全網(wǎng)漫游”,。 SSO將一個企業(yè)內(nèi)部所有域中的用戶登錄和用戶賬號管理集中到一起,SSO的好處顯而易見:
對于內(nèi)部有多種應(yīng)用系統(tǒng)的企業(yè)來說,,單點登錄的效果是十分明顯的,。很多國際上的企業(yè)已經(jīng)將單點登錄作為系統(tǒng)設(shè)計的基本功能之一。 公司第一個版本的單點登陸系統(tǒng)從2005年運行以來,,從幾十個應(yīng)用系統(tǒng)擴展到現(xiàn)在的幾百個系統(tǒng),。在應(yīng)用的過程中沒有很好的解決跨域名的問題,單點登陸客戶端代碼使用問題,,應(yīng)用系統(tǒng)的訪問規(guī)則問題等都沒有很好的解決,。 SSO的實現(xiàn)機制不盡相同,大體分為Cookie機制和Session機制兩大類,。
目前大部分SSO產(chǎn)品采用的是Cookie機制,,公司第一個版本的單點登陸系統(tǒng)也是如此,,目前能夠找到的最好的開源單點登錄產(chǎn)品CAS也是采用Cookie機制。 CAS http://www./products/cas/,,CAS單點登錄系統(tǒng)最早由耶魯大學(xué)開發(fā),。2004年12月,CAS成為JA-SIG中的一個項目,。JA-SIG的全稱是Java Architectures Special Interest Group,,是在高校中推廣和探討基于Java的開源技術(shù)的一個組織。CAS的優(yōu)點很多,,例如設(shè)計理念先進,、體系結(jié)構(gòu)合理、配置簡單,、客戶端支持廣泛,、技術(shù)成熟等等。這也是我們這次SSO改造的參照產(chǎn)品,。 以CAS為例,,使用Cookie實現(xiàn)單點登錄的原理圖如圖1所示。
圖 1 使用Cookie實現(xiàn)單點登錄的原理圖
這樣,,就不再需要用戶繼續(xù)輸入用戶名和密碼,,從而實現(xiàn)了單點登錄。 注意,,這種單點登錄體系中,,并沒有通過http進行密碼的傳遞(但是有用戶名的傳遞),因此是十分安全的,。 CAS被設(shè)計為一個獨立的Web應(yīng)用,,目前是通過若干個Java servlets來實現(xiàn)的。CAS必須運行在支持SSL的web服務(wù)器至上,。應(yīng)用程序可以通過三個URL路徑來使用CAS,,分別是登錄URL(login URL),校驗URL(validation URL)和登出URL(logout URL),。
采用.NET 來實現(xiàn)CAS原理的SSO系統(tǒng),,在第一個版本的SSO系統(tǒng)基礎(chǔ)上羅列一些問題,有的已經(jīng)是第一個版本的SSO系統(tǒng)中采用的方式,。有些問題需要澄清的,, 很多人談?wù)搯吸c登錄時,常常和統(tǒng)一用戶,,以及單一用戶管理混淆了,,要么誤認為單點登錄自然實現(xiàn)了單一用戶管理;要么誤認為統(tǒng)一用戶或者單一用戶管理就是單點登錄,。實際上,,這三個概念是有明確的區(qū)別的。 統(tǒng)一用戶就是指不同的系統(tǒng),,使用同一套用戶處理的機制,。
很顯然,統(tǒng)一用戶是單點登錄的基礎(chǔ),,但是統(tǒng)一用戶并不意味著實現(xiàn)了單點登錄,。 單一用戶管理則指所有的用戶管理工作都在唯一的地方進行處理,,而每個應(yīng)用程序不再保留自己的用戶管理功能。單一用戶管理和統(tǒng)一用戶管理的最大區(qū)別在于,,統(tǒng)一用戶管理之后,,每個應(yīng)用程序仍然保留自己的用戶管理功能,用于額外的屬性設(shè)置,;而單一用戶管理時,,每個應(yīng)用程序不再保留自己的用戶管理功能。 在企業(yè)應(yīng)用場景下,,所有的用戶信息來自HR系統(tǒng),,HR系統(tǒng)中包含的戶信息和部門信息,同時這些信息會存在于公司的活動目錄中,。公司采用的是LDAP和數(shù)據(jù)庫連接方式相結(jié)合,正式員工登陸OA系統(tǒng)并不采用LDAP方式認證,,采用的RSA的token方式認證,也就是數(shù)據(jù)庫方式認證,。對于忘記帶token卡和客戶服務(wù)部的外聘人員沒有token卡的,,通過白名單方式允許他們通過LDAP方式認證。第一個版本的單點登陸系統(tǒng)使用的HTTP,,新版本的集成子系統(tǒng)使用https方式通訊,。
術(shù)語解釋:
簡單說來,,LDAP是一個得到關(guān)于人或者資源的集中,、靜態(tài)數(shù)據(jù)的快速方式。LDAP協(xié)議是跨平臺的和標準的協(xié)議,,因此應(yīng)用程序就不用為LDAP目錄放在什么樣的服務(wù)器上操心了。實際上,,LDAP得到了業(yè)界的廣泛認可,,因為它是Internet的標準。產(chǎn)商都很愿意在產(chǎn)品中加入對LDAP的支持,,因為他們根本不用考慮另一端(客戶端或服務(wù)端)是怎么樣的,。LDAP服務(wù)器可以是任何一個開發(fā)源代碼或商用的LDAP目錄服務(wù)器(或者還可能是具有LDAP界面的關(guān)系型數(shù)據(jù)庫),因為可以用同樣的協(xié)議,、客戶端連接軟件包和查詢命令與LDAP服務(wù)器進行交互 |
|