0、引言
隨著企業(yè)信息化建設(shè)的逐步深入,信息系統(tǒng)已逐步滲透企業(yè)生產(chǎn)經(jīng)營管理的各個領(lǐng)域,包括:ERP、MES、電子商務(wù)平臺、DSS、OA、電子郵件等等 但由于系統(tǒng)建設(shè)的不同步及期初缺乏前瞻性和總體規(guī)劃,這些系統(tǒng)經(jīng)常擁有各自獨(dú)立的用戶管理體系和認(rèn)證方法。這就可能出現(xiàn)同一個用戶在不同系統(tǒng)中使用不同的賬號和密碼,需要記憶眾多的賬號和密碼已成為用戶沉重的負(fù)擔(dān)。此外,由于各系統(tǒng)中用戶信息的格式、命名與存儲方式多種多樣,系統(tǒng)管理員對用戶信息進(jìn)行同步維護(hù)時也將增加額外的工作量。因此,眾多企業(yè)已著手研究建立企業(yè)專門的單點(diǎn)登錄系統(tǒng)。對企業(yè)單點(diǎn)登錄的實(shí)現(xiàn)方案已有眾多研究和討論,本文以云銅集團(tuán)基于企業(yè)門戶的單點(diǎn)登錄解決方案為實(shí)例,探討企業(yè)面對復(fù)雜異構(gòu)應(yīng)用環(huán)境下如何以最小代價柔性地實(shí)現(xiàn)各新老系統(tǒng)的單點(diǎn)登錄。
1、單點(diǎn)登錄概述
1.1 單點(diǎn)登錄定義
單點(diǎn)登錄(SSO:Single Sign On)是一種目前較流行的企業(yè)業(yè)務(wù)整合解決方案。單點(diǎn)登錄是指訪問同一服務(wù)器不同應(yīng)用中的受保護(hù)資源的同一用戶,只需要登錄一次,即通過一個應(yīng)用中的安全驗(yàn)證后,再訪問其他應(yīng)用中的受保護(hù)資源時,不再需要重新登錄驗(yàn)證。
1.2 單點(diǎn)登錄技術(shù)的國內(nèi)外動態(tài)
目前,單點(diǎn)登錄技術(shù)在國內(nèi)的應(yīng)用還不是非常普及,但隨著企業(yè)門戶應(yīng)用的逐漸普及,越來越多的企業(yè)已開始重視單點(diǎn)登錄技術(shù)的實(shí)現(xiàn)。在國外,單點(diǎn)登錄的技術(shù)發(fā)展非常的迅速。從技術(shù)的實(shí)現(xiàn)上,單點(diǎn)登錄的實(shí)現(xiàn)技術(shù)主要有:Cookie、Broker-based、Agent-based、Token-based、Gateway-based等。
1.3 單點(diǎn)登錄技術(shù)比較
2、基于企業(yè)門戶的云銅集團(tuán)單點(diǎn)登錄方案的設(shè)計
2.1 云銅集團(tuán)異構(gòu)應(yīng)用環(huán)境介紹
云銅集團(tuán)經(jīng)過多年的信息化建設(shè)已建成了涵蓋冶金行業(yè)五級系統(tǒng)架構(gòu)的各種應(yīng)用系統(tǒng),且涉及多種技術(shù)平臺,包括:SAP平臺的ERP系統(tǒng)2套,基于domino平臺的分布式OA系統(tǒng)、郵件系統(tǒng)、短信系統(tǒng)、經(jīng)營決策管理系統(tǒng),基于Dotnet平臺的MES系統(tǒng)、生產(chǎn)管理系統(tǒng)、投資管理系統(tǒng)、礦產(chǎn)資源管理系統(tǒng)、HSE管理系統(tǒng)和協(xié)同應(yīng)用系統(tǒng),騰訊的RTX企業(yè)內(nèi)部通訊系統(tǒng)等等,其中有老系統(tǒng)、新建系統(tǒng),有B/S結(jié)構(gòu)、C/S結(jié)構(gòu),部署在不同子域、不同服務(wù)器上。針對云銅集團(tuán)復(fù)雜的異構(gòu)應(yīng)用環(huán)境,采用傳統(tǒng)的單點(diǎn)登錄技術(shù)已經(jīng)很難滿足云銅集團(tuán)的單點(diǎn)登錄需求。
2.2 云銅集團(tuán)單點(diǎn)登錄方案
云銅集團(tuán)單點(diǎn)登錄方案主要由統(tǒng)一用戶管理、認(rèn)證管理和基于Sharepoint企業(yè)門戶的單點(diǎn)登錄三個部分組成。
2.2.1 統(tǒng)一用戶管理
統(tǒng)一用戶管理的目標(biāo)是要建立一個囊括云銅集團(tuán)所有IT應(yīng)用系統(tǒng)的基礎(chǔ)用戶管理平臺,做到一套用戶以及密碼覆蓋所有系統(tǒng),在此基礎(chǔ)之上通過組合認(rèn)證實(shí)現(xiàn)各系統(tǒng)的單點(diǎn)登陸。云銅集團(tuán)統(tǒng)一用戶管理涉及到SAP HR系統(tǒng)、企業(yè)門戶的用戶信息公共數(shù)據(jù)庫、WebAD認(rèn)證巾心(基于微軟AD開發(fā)的web界面管理平臺)、ADSync(Domino平臺自帶的用戶目錄系統(tǒng))。整個用戶數(shù)據(jù)管理如圖1所示:
圖1 統(tǒng)一用戶管理的數(shù)據(jù)同步
(1)統(tǒng)一用戶管理的數(shù)據(jù)源來自于SAP HR模塊,HR模塊中的員工數(shù)據(jù)通過SSIS(Microsoft SQL Server Integration Services)將數(shù)據(jù)同步到企業(yè)門戶公共數(shù)據(jù)庫,供認(rèn)證中心使用。
(2)認(rèn)證中心(web AD)進(jìn)行具體的用戶管理,注冊用戶時選取員工信息,并將用戶信息通過AD LDAP服務(wù)寫入AD。
(3)認(rèn)證中心(web AD)通過web service方式提供對外接口,將用戶數(shù)據(jù)分發(fā)到新老系統(tǒng)中。
(4)對新老系統(tǒng)進(jìn)行用戶數(shù)據(jù)分發(fā)的方式分為兩大類:原有domino系統(tǒng)通過一個ADSync分發(fā):非domino系統(tǒng)直接通過認(rèn)證中心(web AD)提供的web Service服務(wù)分發(fā)。
2.2.2 認(rèn)證管理
云銅集團(tuán)單點(diǎn)登錄涉及sharepoint門戶登錄認(rèn)證、ASP.NET系統(tǒng)認(rèn)證(包含生產(chǎn)管理系統(tǒng)、投資管理系統(tǒng)、礦產(chǎn)資源管理系統(tǒng)、HSE管理系統(tǒng)和協(xié)同應(yīng)用系統(tǒng))、Domino系統(tǒng)認(rèn)證(包含分布式OA系統(tǒng)、郵件系統(tǒng)、短信系統(tǒng)、經(jīng)營決策管理系統(tǒng))、SAP系統(tǒng)認(rèn)證(兩套ERP系統(tǒng))、RTX認(rèn)證等5 大類系統(tǒng)認(rèn)證。
(1)sharepoint門戶登錄認(rèn)證:采用Broker based模式的典型應(yīng)用Kerberos認(rèn)證機(jī)制。
(2)ASP.NET系統(tǒng)認(rèn)證:采用cookie模式的AD認(rèn)證。
(3)Domino系統(tǒng)認(rèn)證:采用Token-based模式的LTPA Token認(rèn)證。
(4)SAP系統(tǒng)認(rèn)證:采用用戶映射的方式進(jìn)行認(rèn)證。
(5)RTX認(rèn)證:采用web serviees方式進(jìn)行認(rèn)證。
2.2.3 單點(diǎn)集成
在統(tǒng)一用戶管理和明確各種類型系統(tǒng)的認(rèn)證方式后,企業(yè)門戶作為各應(yīng)用系統(tǒng)的統(tǒng)一集中入口,用戶在企業(yè)門戶上輸入用戶名和密碼后,個人門戶通過調(diào)用web AD的訪問控制列表把當(dāng)前用戶能訪問的系統(tǒng)羅列在個人門戶常用系統(tǒng)中,采用上述認(rèn)證方式,用戶無需再輸入用戶名和密碼就可以訪問相關(guān)應(yīng)用系統(tǒng)了。
3、云銅集團(tuán)單點(diǎn)登錄技術(shù)的具體實(shí)現(xiàn)
由于云銅集團(tuán)涉及單點(diǎn)登錄的各系統(tǒng)都統(tǒng)一在同樣的一級域名yncic.com之下,因此可以概括來說,各系統(tǒng)的單點(diǎn)登錄都是采用共享cookie信息的方式實(shí)現(xiàn)的。即通過各系統(tǒng)的統(tǒng)一入口(門戶系統(tǒng))登錄后。生成各關(guān)聯(lián)單點(diǎn)系統(tǒng)的驗(yàn)證信息存儲于cookie中,各系統(tǒng)讀取Cookie信息實(shí)現(xiàn)單點(diǎn)登錄。
3.1 實(shí)現(xiàn)與Domino系統(tǒng)單點(diǎn)登錄
與Domino系統(tǒng)的單點(diǎn)登錄采用Lightweight Third-Party Authentication (LTPA)的方式(LTPA是IBM Websphere和Domino產(chǎn)品中使用單點(diǎn)登錄技術(shù))。當(dāng)服務(wù)器配置好LTPA認(rèn)證方式,用戶通過瀏覽器成功登錄后,服務(wù)器會自動發(fā)送一個session cookie給瀏覽器,此cookie中包含一個LTPA Token,獲得cookie后登錄Domino系統(tǒng),Domino系統(tǒng)通過分析該cookie判斷當(dāng)前用戶是否驗(yàn)證通過。這個cookie由以下部分組成:LTPA token版本(4字節(jié))、創(chuàng)建時間(8字節(jié))、過期時間(8字節(jié))、用戶名(可變長度)、Domino LTPA密鑰(20字節(jié)),其中LTPA密鑰采用SHA加密存儲在cookie中。
以下是Domino系統(tǒng)獲取LTPA token信息的核心代碼:
3.2 實(shí)現(xiàn)與ASP.NET系統(tǒng)單點(diǎn)登錄
由于云銅集團(tuán)涉及單點(diǎn)登錄的ASP.NET系統(tǒng)使用相同的主域名,所以采用Form身份驗(yàn)證方式,共用一個Cookie來實(shí)現(xiàn)單點(diǎn)登錄。
具體實(shí)現(xiàn)過程如下:
(1)選用Forms驗(yàn)證
(2)修改各單點(diǎn)系統(tǒng)Web.config文件,加入共用的machineKey節(jié)點(diǎn)和值。
(3)登陸時寫入cookie值
以下是生成ASP.NET系統(tǒng)共享Cookie票據(jù)信息的核心代碼:
3.3 實(shí)現(xiàn)與SAP系統(tǒng)單點(diǎn)登錄
與SAP系統(tǒng)實(shí)現(xiàn)單點(diǎn)登錄主要是通過在SSO WEB服務(wù)器頁面嵌入ActiveX控件,由AetiveX控件從Sharepoint的SSO服務(wù)端獲取用戶映射表中SAP的用戶名和密碼,然后啟動客戶端控件,向客戶端控件傳遞登錄信息,實(shí)現(xiàn)自動登錄。
3.4 實(shí)現(xiàn)與RTX系統(tǒng)單點(diǎn)登錄
與RTX系統(tǒng)實(shí)現(xiàn)單點(diǎn)登錄主要是通過調(diào)用RTX Server SDK獲取Session Key接口獲取該用戶的Session Key,同時調(diào)用客戶端Session Key登錄的腳本登錄RTX。
4、小結(jié)
面對多種異構(gòu)應(yīng)用并存的現(xiàn)狀,云銅集團(tuán)有針對性地將多種單點(diǎn)登錄技術(shù)組合應(yīng)用,有效地解決了基于企業(yè)門戶的單點(diǎn)登錄問題。為其它企業(yè)如何解決復(fù)雜異構(gòu)應(yīng)用環(huán)境下的單點(diǎn)登錄提供了可借鑒的經(jīng)驗(yàn),具有很好的推廣應(yīng)用價值。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:ERP/MES/OA復(fù)雜異構(gòu)應(yīng)用環(huán)境下的單點(diǎn)登錄設(shè)計與實(shí)現(xiàn)
本文網(wǎng)址:http://www.ezxoed.cn/html/consultation/1082009659.html