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