1 引言
隨著網(wǎng)絡(luò)技術(shù)和企業(yè)信息化的發(fā)展,企業(yè)建設(shè)了門戶平臺(tái)、企業(yè)資源管理系統(tǒng)、產(chǎn)品數(shù)據(jù)管理系統(tǒng)、財(cái)務(wù)管理系統(tǒng)、資產(chǎn)管理系統(tǒng)、人力資源管理系統(tǒng)等眾多的業(yè)務(wù)系統(tǒng)。企業(yè)用戶在門戶平臺(tái)和各業(yè)務(wù)系統(tǒng)間訪問(wèn),需要多次認(rèn)證,用戶感知度差。目前迫切需要在企業(yè)門戶平臺(tái)和各業(yè)務(wù)系統(tǒng)之間進(jìn)行統(tǒng)一身份認(rèn)證,實(shí)現(xiàn)用戶的單點(diǎn)登錄。
2 單點(diǎn)登錄概述
2.1 單點(diǎn)登錄的定義
單點(diǎn)登錄(SSO:Single Sign On)是一種目前較流行的企業(yè)業(yè)務(wù)整合解決方案。SSO的定義是:在多個(gè)應(yīng)用系統(tǒng)中用戶只需要登錄一次就可以訪問(wèn)所有相互信任的應(yīng)用系統(tǒng)。
企業(yè)應(yīng)用集成可以在不同層面上進(jìn)行:如在數(shù)據(jù)存儲(chǔ)層面上的“數(shù)據(jù)大集中”;在傳輸層面上的“通用數(shù)據(jù)交換平臺(tái)”;在應(yīng)用層面上的“業(yè)務(wù)流程整合”;用戶界面上的“通用企業(yè)門戶”等等。事實(shí)上還有一個(gè)層面上的集成變得越來(lái)越重要,那就是“身份認(rèn)證”的整合,也就是“單點(diǎn)登錄”。
2.2 實(shí)現(xiàn)機(jī)制
當(dāng)用戶第一次訪問(wèn)應(yīng)用系統(tǒng)1的時(shí)候,因?yàn)檫沒(méi)有登錄,會(huì)被引導(dǎo)到認(rèn)證系統(tǒng)中進(jìn)行登錄。根據(jù)用戶提供的登錄信息,認(rèn)證系統(tǒng)進(jìn)行身份效驗(yàn)。如果通過(guò)效驗(yàn),應(yīng)返回給用戶一個(gè)認(rèn)證的憑據(jù)--ticket,當(dāng)用戶再訪問(wèn)別的應(yīng)用時(shí),就會(huì)將這個(gè)ticket帶上,作為自己認(rèn)證的憑據(jù),應(yīng)用系統(tǒng)接受到請(qǐng)求之后會(huì)把ticket送到認(rèn)證系統(tǒng)進(jìn)行效驗(yàn),檢查ticket的合法性。如果通過(guò)效驗(yàn),用戶就可以在不用再次登錄的情況下訪問(wèn)應(yīng)用系統(tǒng)2和應(yīng)用系統(tǒng)3了。
2.3 實(shí)現(xiàn)SSO 的前提條件
實(shí)現(xiàn)SSO的前提條件是:(1)所有應(yīng)用系統(tǒng)均可信任一個(gè)身份認(rèn)證系統(tǒng);(2)所有應(yīng)用系統(tǒng)能夠識(shí)別和提取ticket 信息;(3)應(yīng)用系統(tǒng)能夠識(shí)別已經(jīng)登錄過(guò)的用戶,能自動(dòng)判斷當(dāng)前用戶是否登錄過(guò),從而完成單點(diǎn)登錄的功能。其中,統(tǒng)一的身份認(rèn)證系統(tǒng)最重要,認(rèn)證系統(tǒng)的主要功能是將用戶的登錄信息和用戶信息庫(kù)相比較,對(duì)用戶進(jìn)行登錄認(rèn)證;認(rèn)證成功后,認(rèn)證系統(tǒng)應(yīng)該生成統(tǒng)一的認(rèn)證標(biāo)志(ticket),返還給用戶。另外,認(rèn)證系統(tǒng)還應(yīng)該對(duì)ticket 進(jìn)行效驗(yàn),判斷其有效性。整個(gè)系統(tǒng)可以存在兩個(gè)以上的認(rèn)證服務(wù)器,這些服務(wù)器甚至可以是不同的產(chǎn)品。認(rèn)證服務(wù)器之間要通過(guò)標(biāo)準(zhǔn)的通訊協(xié)議,互相交換認(rèn)證信息,就能完成更高級(jí)別的單點(diǎn)登錄。
3 技術(shù)實(shí)現(xiàn)方式
3.1 SSO 結(jié)構(gòu)
單點(diǎn)登錄的Web 平臺(tái),用戶只要登錄一次,就可以訪問(wèn)在其權(quán)限內(nèi)的所有業(yè)務(wù)系統(tǒng),包括本地的Windows 應(yīng)用系統(tǒng)和服務(wù)器端的Web 應(yīng)用系統(tǒng),通過(guò)訪問(wèn)數(shù)據(jù)庫(kù)中的用戶SSO 表實(shí)現(xiàn)用戶驗(yàn)證。
圖1 SSO 技術(shù)框架圖
注:SOAP--簡(jiǎn)單目標(biāo)協(xié)議;HTTP--超文本傳輸協(xié)議;LDAP--輕量級(jí)目錄訪問(wèn)協(xié)議
圖2 SSO 實(shí)現(xiàn)方式
3.2 SSO 流程
單點(diǎn)登錄(SSO)的流程(如圖3 所示)如下:
圖3 SSO 流程圖
(1)用戶先與統(tǒng)一登錄系統(tǒng)進(jìn)行交互,使用唯一的帳號(hào)密碼進(jìn)行登錄,此時(shí)不涉及任何子系統(tǒng);(2)用戶登錄成功后,統(tǒng)一登錄系統(tǒng)將信任的應(yīng)用子系統(tǒng)列表呈現(xiàn)給用戶;(3)用戶根據(jù)需要,選擇子系統(tǒng)連接訪問(wèn)子系統(tǒng),用戶與子系統(tǒng)的交互開(kāi)始;(4)由于用戶與子系統(tǒng)此時(shí)還沒(méi)有建立認(rèn)證關(guān)系,所以子系統(tǒng)將用戶重定向到統(tǒng)一登錄系統(tǒng);(5)統(tǒng)一登錄系統(tǒng)驗(yàn)證用戶的登錄信息,發(fā)現(xiàn)用戶已經(jīng)登錄,便將登錄信息插入到數(shù)據(jù)庫(kù),再將驗(yàn)證信息發(fā)給用戶,即返回一個(gè)等待頁(yè)面;(6)用戶將等待頁(yè)面中的驗(yàn)證信息(自動(dòng))提交到子系統(tǒng),子系統(tǒng)獲取認(rèn)證信息;(7)子系統(tǒng)通過(guò)一定的辦法和等待頁(yè)面中的驗(yàn)證信息進(jìn)行驗(yàn)證,并與用戶建立了信任關(guān)系。
流程的交互實(shí)現(xiàn)過(guò)程都是可控的,各個(gè)系統(tǒng)之間傳遞的信息內(nèi)容及傳遞時(shí)間都可以限制和約定,并且能夠?qū)⒚恳淮蜗到y(tǒng)之間的交互記錄都進(jìn)行登記,這才是我們需要的。至于煩碎,其實(shí)對(duì)用戶來(lái)說(shuō),增加的步驟就是出現(xiàn)自動(dòng)提交的等待登錄頁(yè)面,如果兩個(gè)系統(tǒng)都能正常運(yùn)行,網(wǎng)絡(luò)也沒(méi)有出現(xiàn)堵塞,用戶等待的時(shí)間將及其短暫,甚至沒(méi)能看到等待頁(yè)面,并且我們能夠?qū)Φ却?yè)面做一定的美化,使用戶就算看到等待頁(yè)面,也不會(huì)感到厭煩。
3.3 Web SSO 功能
系統(tǒng)通過(guò)門戶平臺(tái)提供Web 方式的單點(diǎn)登陸界面,以Web 服務(wù)的方式提供用戶認(rèn)證接口。
外部系統(tǒng),包括門戶平臺(tái)的單點(diǎn)登錄系統(tǒng)均調(diào)用用戶認(rèn)證接口實(shí)現(xiàn)用戶認(rèn)證。將業(yè)務(wù)系統(tǒng)納入到我們的單點(diǎn)登錄平臺(tái)中,應(yīng)該按照以下步驟實(shí)現(xiàn):
·對(duì)所有業(yè)務(wù)系統(tǒng)進(jìn)行分析,確定其登錄方式,使其能夠自動(dòng)通過(guò)統(tǒng)一用戶驗(yàn)證服務(wù)來(lái)驗(yàn)證用戶和更改用戶密碼;
·使用Windows 集成驗(yàn)證方式,從活動(dòng)目錄用戶密碼表中取出當(dāng)前用戶的域用戶密碼(密文),然后通過(guò)HTTP post 的方式將用戶名和加密的密碼傳遞給SharePoint Server 單點(diǎn)登錄服務(wù);
·將登錄頁(yè)面嵌入SharePoint Server 2007 作為組件形式存在。
針對(duì)內(nèi)部系統(tǒng)完成統(tǒng)一用戶管理的部署和活動(dòng)目錄(AD:Actire Directory)用戶數(shù)據(jù)聚合,需要在AD 部署完成的前提下,形成“一處修改,全部同步”的自動(dòng)管理模式。單點(diǎn)登錄實(shí)現(xiàn)后,用戶的身份信息將在Windows 活動(dòng)目錄(域用戶登錄名、域用戶密碼、組織結(jié)構(gòu)等)和基于SQL Server的SSO 數(shù)據(jù)庫(kù)(活動(dòng)目錄對(duì)應(yīng)業(yè)務(wù)系統(tǒng)用戶加密存儲(chǔ),域用戶登錄名及其加密后的密碼)兩個(gè)地方集中存儲(chǔ)。
3.4 SSO 的兩種技術(shù)解決方案
對(duì)于單點(diǎn)登錄的難點(diǎn)在于,企業(yè)內(nèi)部是否有一個(gè)所有系統(tǒng)均可信任的身份認(rèn)證系統(tǒng)。這是所有企業(yè)都面臨的一個(gè)挑戰(zhàn),目前從技術(shù)上來(lái)看,主要的解決方案有兩種:通用認(rèn)證方式+憑證和通用認(rèn)證方式+ 完整的認(rèn)證機(jī)構(gòu)(CA :Certification Authority)。
通用認(rèn)證方式實(shí)際上是絕大多數(shù)的軟件廠商和應(yīng)用軟件供應(yīng)商都支持并具備技術(shù)可行性的認(rèn)證方式,目前只有輕量級(jí)目錄訪問(wèn)協(xié)議(LDAP:LightWeight DirectoryAccess Protocol)才可以視為通用,因?yàn)槭袌?chǎng)上幾乎所有成熟的服務(wù)器端軟件均可支持該協(xié)議,而針對(duì)LDAP,微軟的活動(dòng)目錄無(wú)疑是最常用且應(yīng)用范圍最廣的一個(gè)產(chǎn)品,為此對(duì)AD+憑證和CA 中心兩個(gè)解決方案進(jìn)行比較。
(1)AD+憑證
-- 優(yōu)勢(shì):當(dāng)我們?cè)谄髽I(yè)內(nèi)部建立了AD,且所有企業(yè)內(nèi)部PC 均加入AD 后,AD 服務(wù)器會(huì)為每個(gè)用戶管理用戶名和密碼,以及相關(guān)的所有信息。同時(shí),在AD 服務(wù)器端,從Windows NT 時(shí)代開(kāi)始,微軟就提供了憑證服務(wù),因此,我們可以直接使用微軟提供的該憑證來(lái)進(jìn)行SSO 的技術(shù)實(shí)現(xiàn),而無(wú)需考慮額外的任何投入。當(dāng)然,我們可以為了用戶信息的安全性增加一些措施,如將私鑰保存于一個(gè)獨(dú)立的外部設(shè)備中(如USB Key),以防止密碼泄露等安全風(fēng)險(xiǎn)的存在。這個(gè)應(yīng)用方案在已實(shí)施AD 的企業(yè)內(nèi)部無(wú)疑是最經(jīng)濟(jì)、最快捷的一個(gè)方式,且可適用于各種架構(gòu)的應(yīng)用系統(tǒng)(B/S和C/S均可實(shí)施)。
-- 缺陷:AD+憑證的模式完全依賴于Windows服務(wù)器和桌面操作系統(tǒng),即一旦有某些桌面操作系統(tǒng)非Windows 平臺(tái),該部分功能就無(wú)法實(shí)現(xiàn)。同時(shí),假設(shè)某一個(gè)應(yīng)用系統(tǒng)平臺(tái)不支持https(即以安全套接層(SSL:Secure Socket Layer)方式加密傳輸?shù)膆ttp 協(xié)議),那么其傳輸過(guò)程就會(huì)有一定的安全風(fēng)險(xiǎn)。
(2)CA 認(rèn)證機(jī)構(gòu)
-- 優(yōu)勢(shì):不依賴于Windows 平臺(tái),可支持任何操作系統(tǒng)。傳輸過(guò)程完全使用https 協(xié)議,傳輸過(guò)程風(fēng)險(xiǎn)大大降低,如應(yīng)用系統(tǒng)平臺(tái)不支持https,所存在的風(fēng)險(xiǎn)也僅局限于CA 服務(wù)器與應(yīng)用系統(tǒng)軟件服務(wù)器之間的網(wǎng)絡(luò)傳輸,而通常我們可以認(rèn)為該部分的網(wǎng)絡(luò)傳輸從外界條件來(lái)說(shuō)已經(jīng)具有足夠的安全性,因此基本可以忽略其風(fēng)險(xiǎn)。
-- 缺陷:由于CA認(rèn)證機(jī)構(gòu)本身的價(jià)格比較高,且該機(jī)制具有局限性,幾乎每個(gè)應(yīng)用系統(tǒng)都需要針對(duì)CA 認(rèn)證單獨(dú)訂制認(rèn)證接口,因此實(shí)施CA 機(jī)構(gòu)的成本比較高。
3.5 基于AD 的單點(diǎn)登錄
由于CA 認(rèn)證機(jī)構(gòu)的成本較高,因此內(nèi)部實(shí)施該解決方案的企業(yè)并不普遍,而基于AD 的單點(diǎn)登錄技術(shù)將為企業(yè)實(shí)現(xiàn)統(tǒng)一認(rèn)證機(jī)制提供廣泛的應(yīng)用前景。下面我將針對(duì)該技術(shù)的實(shí)現(xiàn)進(jìn)行論述。
首先,當(dāng)一個(gè)用戶以AD 身份登錄到Windows操作系統(tǒng)后,操作系統(tǒng)會(huì)為本次登錄在AD 服務(wù)器端創(chuàng)建一個(gè)憑據(jù),用于對(duì)各項(xiàng)內(nèi)容的訪問(wèn)(如Exchange 郵件服務(wù)器、Windows 共享目錄、IIS 網(wǎng)站等),基于.NET 和Java 兩部分的應(yīng)用程序均有技術(shù)手段獲取到該信息(當(dāng)然,.NET 要方便許多)。其次,假設(shè)我們使用的是桌面應(yīng)用軟件,則在軟件啟動(dòng)時(shí),直接讀取該數(shù)據(jù)即可進(jìn)行登錄。如果是B/S應(yīng)用系統(tǒng),則可以在瀏覽器中對(duì)驗(yàn)證方式進(jìn)行設(shè)置。該設(shè)置使瀏覽器會(huì)自動(dòng)向應(yīng)用服務(wù)器發(fā)送認(rèn)證請(qǐng)求,如請(qǐng)求通過(guò)則登錄成功。而應(yīng)用服務(wù)器端的IIS 可設(shè)置為“集成Windows 身份驗(yàn)證”。設(shè)置為該項(xiàng)后,應(yīng)用服務(wù)器即可自動(dòng)識(shí)別用戶登錄Windows的AD 身份,并在服務(wù)器端建立Identity 憑據(jù),使開(kāi)發(fā)人員可以應(yīng)用系統(tǒng)中使用該憑據(jù)。IE 配置說(shuō)明如圖4 所示。
圖4 IE 配置說(shuō)明
IIS 應(yīng)用服務(wù)器針對(duì)AD 身份單點(diǎn)登錄成功后,即可在服務(wù)器端長(zhǎng)期保留該信息,作為門戶平臺(tái),可以以該憑據(jù)為基礎(chǔ),在向其他應(yīng)用系統(tǒng)定向時(shí),提供該憑據(jù)或直接通知應(yīng)用服務(wù)器使用Windows集成身份嚴(yán)正模式進(jìn)行登錄。IIS 配置說(shuō)明如圖5所示。
圖5 IIS 配置說(shuō)明
最后,基于AD機(jī)制的SSO可提供以下功能:
(1)多系統(tǒng)單點(diǎn)登錄入口。可配置的多系統(tǒng)單點(diǎn)登錄入口,允許用戶自行添加或刪除入口鏈接,允許用戶在第三方系統(tǒng)中修改密碼后重新登錄。
圖6 示例界面1
(2)多系統(tǒng)單點(diǎn)登錄的管理。提供用戶對(duì)于每個(gè)業(yè)務(wù)系統(tǒng)單點(diǎn)登錄的獨(dú)立設(shè)置,提供管理員對(duì)每個(gè)用戶憑證的添加和刪除操作。
圖7 示例界面2
(3)單點(diǎn)登錄擴(kuò)展及相關(guān)規(guī)范。可以提供一般情況下的單點(diǎn)登錄方案和規(guī)范,供今后新建立的Web 應(yīng)用遵循。基于AD 域身份單點(diǎn)登錄的方式共分為:
-- 直接使用AD 身份登錄:應(yīng)用于C/S 結(jié)構(gòu)應(yīng)用程序、MS 服務(wù)器端產(chǎn)品以及部分第三方的應(yīng)用,實(shí)施后提供接口類庫(kù),開(kāi)發(fā)包和相應(yīng)文檔。
-- Web SSO 登錄:用于絕大多數(shù)B/S 結(jié)構(gòu)應(yīng)用程序,實(shí)施后提供接口標(biāo)準(zhǔn)和相應(yīng)文檔。
-- Web Services 登錄:用于松耦合的系統(tǒng)間的信任關(guān)系,主要針對(duì)一些非MS 技術(shù)開(kāi)發(fā)的應(yīng)用(如JAVA),由第三方應(yīng)用提交Web Services 請(qǐng)求并由AD 身份驗(yàn)證,通過(guò)后獲得登錄憑證。
4 技術(shù)展望
雖然基于AD的SSO 技術(shù)實(shí)現(xiàn)較為簡(jiǎn)便且成本低廉,但其從本質(zhì)上來(lái)說(shuō)無(wú)法脫離完全依賴Windows 操作系統(tǒng)的現(xiàn)狀。因此,要真正的在企業(yè)內(nèi)部實(shí)現(xiàn)完善的SSO 解決方案,CA 中心是更加理想且具有前瞻性的選擇。
5 結(jié)束語(yǔ)
實(shí)現(xiàn)企業(yè)信息門戶平臺(tái)中的單點(diǎn)登錄,解決了企業(yè)用戶需要在門戶平臺(tái)和業(yè)務(wù)系統(tǒng)間反復(fù)登陸和注銷的尷尬局面,從某種意義上說(shuō),整合了企業(yè)內(nèi)部的信息資源,使企業(yè)管理者和普通用戶都身受其益。本文對(duì)企業(yè)信息門戶平臺(tái)中的單點(diǎn)登錄機(jī)制和技術(shù)實(shí)現(xiàn)方式進(jìn)行了探討,對(duì)于企業(yè)信息門戶平臺(tái)的建設(shè)有一定的借鑒意義。
核心關(guān)注:拓步ERP系統(tǒng)平臺(tái)是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://m.hanmeixuan.com/
本文標(biāo)題:論企業(yè)門戶平臺(tái)中的單點(diǎn)登錄技術(shù)
本文網(wǎng)址:http://m.hanmeixuan.com/html/consultation/1083935676.html