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