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