張 政
(中國廣核集團有限公司信息技術(shù)中心,廣東 深圳 518026)
企業(yè)信息化建設(shè)涉及辦公系統(tǒng)、人事系統(tǒng)、財務(wù)系統(tǒng)、CRM系統(tǒng)、SRM系統(tǒng)、設(shè)備管理系統(tǒng)、信息管理系統(tǒng)等,由于各應(yīng)用系統(tǒng)之間割裂或者數(shù)據(jù)之間通信的割斷,每一個系統(tǒng)都需要用戶輸入用戶名和口令才能登錄,增加了工作人員使用信息系統(tǒng)的不方便性和操作的復(fù)雜性。因此經(jīng)常會有一些用戶將多個系統(tǒng)設(shè)置成同一口令或是將記不住的口令寫在紙上貼在桌子上,這樣應(yīng)用系統(tǒng)的終端接入存在極大的安全隱患,使一些別有用心的工作人員有機會利用他人密碼登錄系統(tǒng)進行非法操作,給發(fā)生重大信息安全事故后的責(zé)任追查帶來困難。面對用戶的重復(fù)登錄、系統(tǒng)管理員繁瑣的賬號管理工作和系統(tǒng)設(shè)置工作,單點登錄技術(shù)提供了解決方案,它能夠在多個應(yīng)用系統(tǒng)中,使得用戶只需要登錄一次就可以訪問所有相互信任的應(yīng)用系統(tǒng),這種技術(shù)是目前比較流行的企業(yè)業(yè)務(wù)整合的解決方案之一。
所謂單點登錄技術(shù)(SSO)是當(dāng)用戶第一次訪問應(yīng)用系統(tǒng)1的時候,因為還沒有登錄,會被引導(dǎo)到認(rèn)證系統(tǒng)中進行登錄;根據(jù)用戶提供的登錄信息,認(rèn)證系統(tǒng)進行身份校驗,如果通過校驗,應(yīng)該返回給用戶一個認(rèn)證的憑據(jù)——ticket;用戶再訪問其他應(yīng)用的時候就會將這個ticket帶上,作為自己認(rèn)證的憑據(jù),應(yīng)用系統(tǒng)收到請求之后會把ticket送到認(rèn)證系統(tǒng)進行校驗,檢查ticket的合法性。如果通過校驗,用戶就可以在不用再次登錄的情況下訪問應(yīng)用其他系統(tǒng)[1]。
目前,國外支持身份認(rèn)證的產(chǎn)品已經(jīng)很多,如SUN的 Liberty Alliance(自由聯(lián)盟)協(xié)議、微軟的Passport和 MIT的 Kerberos協(xié)議。
(1)Liberty協(xié)議[2]是基于 SAML(Security Assertions Markup language,安全斷言標(biāo)記語言)的開放協(xié)議,主要面向Web應(yīng)用的統(tǒng)一身份認(rèn)證。Liberty協(xié)議的核心思想是身份聯(lián)盟,各Web應(yīng)用系統(tǒng)保留原有的身份認(rèn)證機制,不同的應(yīng)用系統(tǒng)之間建立身份映射表,當(dāng)用戶通過某一站點的身份認(rèn)證后,該認(rèn)證站點會把用戶重定向到與其有關(guān)聯(lián)的合作站點,合作站點通過身份映射表查詢身份信息進行登錄,從而達(dá)到單點登錄的目的,在不同站點間傳遞的用戶認(rèn)證票據(jù)是通過重定向或Cookie的方式實現(xiàn)的。
(2)Passport[3]是微軟提供的用于統(tǒng)一身份認(rèn)證服務(wù)的公共Web Service,以Cookie的形式存儲個人票據(jù)及Profile(配置)信息,由Passport服務(wù)器負(fù)責(zé)統(tǒng)一的身份認(rèn)證,登錄用戶一旦通過認(rèn)證后,就可訪問所有合作站點,無需多次登錄。Passport的具體流程是用戶進入 Web頁面,輸入用戶名、口令;Passport服務(wù)器對用戶名、口令進行認(rèn)證,并以Cookie的形式向用戶發(fā)送認(rèn)證票據(jù),將用戶重定向到要訪問的Web站點;Web站點收到認(rèn)證票據(jù)后,認(rèn)證身份信息。Passport通過運用重定向機制和Cookie,實現(xiàn)了單點登錄和統(tǒng)一身份認(rèn)證服務(wù)。
(3)Kerberos[4]身份認(rèn)證協(xié)議是目前較為成熟且相對著名的一種身份認(rèn)證機制,它是一個可信的第三方認(rèn)證協(xié)議,它使用對稱密鑰加密方式,主要通過密鑰分配中心分配的票據(jù)進行身份認(rèn)證,用戶獲得票據(jù)后,若要訪問其他的應(yīng)用服務(wù)時,無需再次提供身份認(rèn)證信息,因此可以利用該協(xié)議來實現(xiàn)單點登錄和統(tǒng)一身份認(rèn)證。Kerberos系統(tǒng)主要由用戶端、服務(wù)器端、密鑰分配中心、認(rèn)證服務(wù)器、票據(jù)分配服務(wù)器、票據(jù)和時間戳等幾個部分組成[5]。
目前在企業(yè)內(nèi)部,都是將Windows域作為系統(tǒng)的唯一入口,沒有單獨的一個身份認(rèn)證系統(tǒng),所以使用集成Windows域身份驗證這種安全的驗證形式是比較常見的做法。集成Windows域身份驗證是一種安全的驗證形式,因為在通過網(wǎng)絡(luò)發(fā)送用戶名和密碼之前,先將它們進行哈希計算。當(dāng)啟用集成 Windows域身份驗證時,用戶的瀏覽器通過與Web服務(wù)器進行密碼交換(包括哈希)來證明其知曉密碼[2]。
Windows域身份驗證對客戶端進行身份驗證過程:
(1)與基本身份驗證不同,集成Windows域身份驗證開始時并不提示用戶輸入用戶名和密碼??蛻魴C上的當(dāng)前Windows用戶信息可用于集成 Windows域身份驗證。
(2)如果開始時的驗證交換無法識別用戶,則瀏覽器提示用戶輸入 Windows域用戶名和密碼,并使用集成Windows域身份驗證進行處理。
(3)Internet Explorer將繼續(xù)提示用戶,直到用戶輸入有效的用戶名和密碼或關(guān)閉提示對話框為止[6]。
Windows域可以用來管理企業(yè)內(nèi)部的人員信息,使用的協(xié)議是 LDAP,LDAP是輕量目錄訪問協(xié)議(Lightweight Directory Access Protocol, LDAP)。LDAP是一種得到關(guān)于人或者資源的集中、靜態(tài)數(shù)據(jù)的快速方式,一種用來發(fā)布目錄信息到許多不同資源的協(xié)議。LDAP目錄服務(wù)在統(tǒng)一身份認(rèn)證系統(tǒng)平臺的架構(gòu)中所應(yīng)用的核心技術(shù),其實質(zhì)是通過存儲管理、權(quán)限管理以及認(rèn)證管理等功能,并使用目錄服務(wù)技術(shù)來協(xié)助完成用戶身份信息認(rèn)證[7]。
在了解相關(guān)基本知識以后,需要了解SAP門戶(Portal),Portal它的目標(biāo)就是整合企業(yè)所有的信息資源,為用戶提供一個集成、統(tǒng)一的訪問點[8]。SAP的優(yōu)勢就是它的Portal可以更好地和它旗下的各種ERP還有商業(yè)智能(BI)結(jié)合起來,以實現(xiàn)統(tǒng)一性和便捷性。SAP Portal包括3部分,分別是Portal、KM、Collaboration[9]。Portal用來集成各種內(nèi)容,KM(Knowledage Management)是知識管理,Collaboration是協(xié)作。SAP Netweaver的架構(gòu)圖[10]如圖1所示。
圖1 SAP Netweaver架構(gòu)
SAP Portal系統(tǒng)單點登錄的實現(xiàn)方法有2種:SAP Logon Ticket(SAP登錄票)和User Mapping(用戶映射)[11]。
SAP Logon Ticket策略是采用存放在用戶瀏覽器端的Cookie來實現(xiàn)認(rèn)證信息的存放。一旦在瀏覽器中存放了Cookie以后,Cookie會隨著用戶訪問Portal中的各個業(yè)務(wù)系統(tǒng)轉(zhuǎn)發(fā)到各個后臺系統(tǒng)中,但這里有個前提,就是Portal和各個后臺系統(tǒng)是分布在同一個域里面的。當(dāng)后臺Web應(yīng)用獲取到Cookie信息以后,它必須知道如何來處理認(rèn)證信息。如果后臺是SAP系統(tǒng),那么兩者的集成是有先天的優(yōu)勢的,SAP系統(tǒng)之間已經(jīng)內(nèi)建了相互的認(rèn)證機制,可以很方便地解析這些加密的認(rèn)證信息。如果是non-SAP系統(tǒng),SAP也提供了多種可以處理加密認(rèn)證信息的工具和管理 SAP Logon Ticket Cookie的框架[12]。其策略優(yōu)點:降低企業(yè)IT系統(tǒng)的維護成本:使用SAP Logon Ticket后,后臺系統(tǒng)完全“信任”SAP Portal的認(rèn)證信息,Portal不在Cookie中傳遞用戶的密碼給后端Web應(yīng)用。所以后端系統(tǒng)就不需要手工管理用戶密碼,也不需要在各個業(yè)務(wù)系統(tǒng)之間同步密碼,大大降低了系統(tǒng)的維護成本。
SAP登錄票據(jù)代表著用戶的有效令牌,它在用戶成功登錄Portal之后產(chǎn)生。它是以Cookie的形式存在于客戶機的瀏覽器端,客戶機的每一次請求都會被發(fā)送。SAP登錄票據(jù)存儲了登錄用戶的驗證信息,但是并不存儲用戶的密碼。SAP Logon Ticket包含以下信息:有效期、發(fā)布系統(tǒng)、發(fā)布系統(tǒng)的數(shù)字簽名、Portal ID、User ID。
圖2 Logon Ticket方式實現(xiàn)登錄過程
Logon Ticket方式實現(xiàn)登錄過程如圖2所示,登錄流程如下:
(1)用戶憑用戶名、密碼登錄Portal,Portal用戶管理引擎在存儲用戶的數(shù)據(jù)庫或LDAP服務(wù)器上驗證用戶的登錄信息。
(2)驗證成功后,Portal生成票據(jù)(Logon Ticket),并存儲到用戶的瀏覽器的Cookie中。
(3)用戶憑票登錄SAP或非SAP系統(tǒng)、SAP系統(tǒng)和某些非SAP系統(tǒng)提供Logon Ticket的解析機制,某些不提供Logon Ticket解析機制的非SAP系統(tǒng)需要編程來解析出用戶名,并到自己的用戶中去查詢是否有這個用戶,如果有這用這個用戶登錄,若沒有,則登錄失敗,顯示登錄界面。
User Mapping(用戶映射)是另外一種單點登錄的實現(xiàn)方式,其策略是Portal服務(wù)器向后臺系統(tǒng)傳遞用戶名和密碼,從而完成登錄信息校驗過程[12]。當(dāng)連接到Web應(yīng)用系統(tǒng)時,用戶映射意味著通過請求的POST或GET方法傳遞用戶名和密碼。有2種主要的用戶映射實現(xiàn)方法:單獨的用戶映射和一般的用戶映射。單獨的用戶映射中每個Portal用戶被指定到一個唯一的后臺系統(tǒng)用戶。用戶自己或管理員都可以完成指定。一般的用戶映射中多個用戶被映射到一個后臺系統(tǒng)的用戶。用這種方法時,為了避免多個用戶用同一個后臺系統(tǒng)用戶而產(chǎn)生沖突,通常由管理員來維護用戶名和密碼的映射。
用戶映射的好處和優(yōu)點:
(1)最小的技術(shù)調(diào)整:只要后臺系統(tǒng)能從請求中接受用戶名和密碼,就不需要在后臺系統(tǒng)上做任何配置。在Portal端,也只需很少的配置,只需要創(chuàng)建一個系統(tǒng)對象并選好用戶映射類型(“UIDPW”代表用戶名和密碼)。
(2)簡化后臺用戶管理(用一般用戶映射時):用憑票方式實現(xiàn)單點登錄,需要后臺系統(tǒng)管理所有可能登錄進該系統(tǒng)的用戶。這可能需要在后臺系統(tǒng)中創(chuàng)建成千上萬個與Portal系統(tǒng)對應(yīng)的用戶。在 User Mapping單點登錄這種情況下,用后臺系統(tǒng)中的幾個一般性的用戶來代表幾種不同訪問權(quán)限,而不需要為每個Portal用戶建立單獨的用戶將更方便。
單點登錄配置過程如下:
(1)以管理員身份登錄SAP Portal進入系統(tǒng)管理頁面,調(diào)整用戶信息的存儲方式,由原來的SAP數(shù)據(jù)庫切換到LDAP數(shù)據(jù)源(如圖3所示)。
圖3 數(shù)據(jù)源修改
(2)修改完成數(shù)據(jù)源以后,需要添加域服務(wù)器的信息,并修改SAP Portal服務(wù)器信息。例如:域服務(wù)器地址、端口、通訊用戶名、通訊用戶密碼、用戶的目錄結(jié)構(gòu)、用戶組的目錄結(jié)構(gòu)、連接池信息、緩存信息、需要凍結(jié)的賬號信息等信息(如圖4所示)。
圖4 修改配置信息
(3)進入System Management頁面關(guān)聯(lián) Windows域服務(wù)器地址信息(如圖5所示)。
圖5 關(guān)聯(lián)Windows域服務(wù)器
(4)登錄Portal服務(wù)器修改默認(rèn)的登錄驗證方式為自動驗證(如圖6所示)。
圖6 修改登錄驗證方式
(5)在域服務(wù)器上面創(chuàng)建通訊用戶(如圖7所示)。
圖7 創(chuàng)建用戶
(6)使用 Windows dos命令注冊通訊用戶[13](如圖8所示),再將產(chǎn)生的KEYTAB文件導(dǎo)入到Portal文件系統(tǒng)中。
圖8 用戶注冊
完成上述配置信息以后,重新關(guān)聯(lián)SAP Portal權(quán)限和用戶信息,然后重新啟動SAP Portal服務(wù)器,完成配置。
通過對LDAP、Kerberos服務(wù)技術(shù)的研究,實現(xiàn)了統(tǒng)一認(rèn)證管理,能便捷地管理用戶信息,將認(rèn)證功能交給Kerberos,節(jié)約系統(tǒng)資源,提高工作效率,可以滿足網(wǎng)絡(luò)日益擴張的需求,隨著目錄服務(wù)技術(shù)的不斷發(fā)展和認(rèn)證技術(shù)的不斷完善,保證了系統(tǒng)的良好持續(xù)發(fā)展。
[1]張苗苗.單點登錄和統(tǒng)一身份認(rèn)證的研究與實現(xiàn)[D].太原:太原科技大學(xué),2013.
[2]Jan De Clercq,Guido Grillenmeier.Microsoft Windows Security Fundamentals:For Windows 2003 SP1 and R2[M].Digital Press,2011:26-28.
[3]黃寶君.基于Web Service的單點登錄系統(tǒng)的設(shè)計與實現(xiàn)[D].北京:北京交通大學(xué),2012.
[4]Boldyreva A,Kumar V.Provable-security analysis of authenticated encryption in Kerberos[C]//IEEE Symposium on Security and Privacy.2007:92-100.
[5]Garman J.Kerberos:The Definitive Guide[M].O’Reilly Media,2010.
[6]薛質(zhì),王軼駿,李建華.Windows系統(tǒng)安全原理與技術(shù)[M].北京:清華大學(xué)出版社,2005.
[7]Pohlman M.LDAP Metadirectory Provisioning Methodology:A Step by Step Method to Implementing Ldap Based Metadirectory Provisioning&Identity Management Systems[M].iUniverse,2003.
[8]Gmelch O.User-Centric Application Integration in Enterprise Portal Systems[M].Josef Eul Verlag GmbH,2012.
[9]Woods D,Mattern T.Enterprise SOA:Designing IT for Business Innovation[M].O’Reilly Media,2008.
[10]Nicolescu V,Klappert K,Krcmar H.SAP SNetWeaver Portal[M].Galileo Press,2007.
[11]Jay R.SAP NetWeaver Portal Technology:The Complete Reference[M].Mcgraw-hill,2008.
[12]Naoum J.Sap Logon Ticket[M].Duc,2012.
[13]Balladelli M,Clercq De J.Mission-Critical Active Directory:Architecting a Secure and Scalable Infrastructure[M].Digital Press,2001.